程序测试(program testing)是指对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行。软件的正确性尚未得到根本的解决,软件测试仍是发现软件错误和缺陷的主要手段。为了发现系统中的错误,应竭力设计能暴露错误的测试用例。测试用例是由测试数据和预期结果构成的。一个好的测试用例是极有可能发现至今为止尚未发现的错误的测试用例。
程序测试的主要目的是发现程序中的错误和缺陷,确保程序的功能正常运行,并提高代码的质量和可靠性。测试可以包括功能性测试、性能测试、安全性测试、兼容性测试等多个方面。功能性测试是最常见的编程测试类型之一,旨在测试软件程序是否按照规定的功能需求进行操作和输出。
在G.J.Myers的经典著作《软件测试之艺术》(The Art of Software Testing)中,给出了测试的定义:“程序测试是为了发现错误而执行程序的过程”。这个定义被业界所认可,并经常被引用。实际上,程序测试可以分为广义和狭义两种概念。狭义上的测试是指在代码完成后,通过运行程序来发现程序代码或软件系统中的错误。广义上的测试则将测试延伸到需求评审、设计审查活动中去,将“软件质量保证”的部分活动归为测试活动,从而形成一个全过程的、完整的软件测试。
综上所述,程序测试是一个系统的过程,旨在通过执行程序来发现错误和缺陷,确保软件的质量和稳定性。它包括多种测试类型和方法,如黑盒测试、白盒测试、单元测试等,并涉及到需求分析、设计审查等多个阶段。