1.测试基础
1.软件测试的定义:
软件测试是执行一个过程或者一系列过程,用来确认确认程序完成了其应该完成的功能,并且不执行其不该有的操作。
软件测试是为了发现错误而执行程序的过程。
2.软件测试的特点:
一般来说,即使是一个很小规模的程序,要发现程序中的所有错误也是不切实际的。
3.测试的常用策略:
黑盒测试:将程序视为一个黑盒子,无需了解程序内部结构,完全根据软件规范来进行穷举输入测试,以发现程序中所有错误。
白盒测试:查看程序内部结构,进行穷举路径测试。
穷举输入测试可以发现所有错误,但穷举路径测试不能。
4.软件测试的原则:
(1)测试用例的一个必须部分是对期望输出和结果的定义。
一个测试用例必须包括:对程序的输入数据和程序在此输入下正确输出的精确描述。
(2)程序员应当避免测试自己编写的程序。
(3)编写软件的组织不应当测试自己编写的软件。
(4)应当彻底检查每个测试的执行结果。
要避免在后续测试中发现的错误是由前面测试遗漏造成的。
(5)测试使用的编写不仅应当根据有效和预期的输入情况,还应当根据无效和未预料的输入情况。
(6)检查程序是否“未做其应当做的”仅仅是测试的一半,另一半是检查程序是否“做了不该做的”。
(7)应避免测试用例用后即弃,除非软件本身就是一个一次性的软件。
(8)计划测试工作时不应默许假定程序不会发生错误。
(9)程序某部分存在更多错误的可能性与该部分已发现错误的数量成正比。
(10)软件测试是一个极富创造性,极具智力挑战性的工作。
2.软件测试的环境
越接近用户环境越好
测试环境的备份:
测试过程会遇到很多意外,一旦造成系统崩溃,则会造成测试数据丢失、测试过程中断或者测试环境的重新搭建。
工具:
Ghost
Partimage
恢复:
将对测试环境备份获得的文件复制到其他硬件配置相同的计算机上
利用备份恢复工具进行恢复
实现多台机器同样的测试环境的快速搭建,从而节省搭建测试环境的时间。
3.软件测试的时间
软件在从需求、设计、编码、测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷。随着整个开发过程的时间推移,更正缺陷或修复问题的费用呈几何级数增长。
软件测试要今早开展
软件测试覆盖这个软件生命周期
4.软件测试的对象
软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序、用户文档等都是软件测试的对象