1.3 软件测试概述
1.软件测试的定义
所谓软件测试,就是项目体系中的一个过程,通过这个过程的计划、执行、总结来确认我们生产的计算机软件是否满足了用户的需求,并且没有做用户不需要的需求。计算机软件应当是可预测、稳定、可靠、高性能的,不会在用户使用过程中发生意外的事件。
软件测试是项目体系中的一个过程,它与项目体系的其他过程是密切相关的。软件测试遍布到软件生命周期的每个部分、每个角落。
2.正确性测试和错误性测试
软件测试分为正确性测试和错误性测试。正确性测试就是通过设计的数据来验证软件是符合用户要求和测试规范,从本质上说,就是证明软件是符合用户的需求,证明软件是正确的;错误性测试是通过设计数据,故意促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现,或者证明软件实现了用户没有要求的事情。从本质上说,就是挖掘软件中的毛病。
例如,软件需求中要求当产品购物车购物总金额在[200,300]的时候,购物车中的产品享受9折优惠。
根据以上需求测试正确性数据,设计产品2个,产品总价格为210,并且价格实现了9折功能,证明软件实现了正确的功能。
根据以上需求测试错误数据,设计产品2个,产品总价格为180,看是否实现9折功能,如果没有实现则是正确的,如果实现了则说明软件存在问题。
3.黑盒测试和白盒测试
软件测试又分为黑盒测试和白盒测试。白盒测试是针对程序代码进行正确性检验的测试工作;黑盒测试独立于程序代码,从用户的角度通过一定的测试步骤与测试案例,验证软件功能、性能等指标是否满足实际应用需求。
例如:软件需求中要求当购买5件以上产品时,购物车中的商品可以享受8折优惠,那么程序实现为
If NUM>5 Then Price = Price * 0.8
对这段代码的检查就是白盒测试的例子,是对程序代码的正确性的检查。
如果我们测试的方法是在软件执行过程中,选择6个产品,发现产品的价格是享受8折优惠的,那么这个测试就是典型的黑盒测试。
4.静态测试和动态测试
静态测试是指不需要运行程序代码而进行的测试,例如测试产品说明书,对此进行检查和审阅。静态方法不运行被测程序本身,仅通过分析或检查源程序的方法、结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处。例如,不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例的选取提供指导。
动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。这种方法由3部分组成:编写测试用例、执行程序、分析程序的输出结果。
例如执行程序,验证软件的正确性就是动态测试的一个过程。