软件测试定义是:使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别
它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域
Grenford J
Myers 曾对软件测试的目的提出过以下观点: (1)测试是为了发现程序中的错误而执行程序的过程; (2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; (3)成功的测试是发现了至今为止尚未发现的错误的测试
然而,这种观点指出测试是以查找错误为中心,而不是为了演示软件的正确功能
但是只从字面意思理解,可能会产生误导,认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有价值的测试,实际上并非如此
(1)测试并不仅仅是为了找出错误
通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者 发现当前软件开发过程中的缺陷,以便及时改进; (2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性; (3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法 软件测试的内容: 软件测试主要工作内容是验证(verification)和确认(validation ),下面分别给出其概念: 验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情
(Do the right thing) 1
确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程; 2
程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程; 3
评市、审查、测试、检查、审计等各类活