测试目标包括:功能、性能、界面、易用性、兼容性、安全性、可用性/可靠性、可维护性、可扩展性等
注意:功能之外统称非功能
功能:软件能做什么? 需要做什么? 怎么做是正确的? 哪些功能要测试、哪些功能不需要测试? 哪些功能重要,哪些不重要? 哪些功能先实现或先测试?
性能:反映软件运行时的效率和占用资源情况的能力。
时间特性:时间短、速度快、效率高。
资源特性:占用资源(CPU、内存、硬盘、网络)少。
界面:布局合理;控件位置恰当; 文字没有乱码、字体大小合适; 颜色使用恰当; 图片、表格恰当、舒适、美观;与原型图是否有差别。
易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
兼容性/可移植性:指软件产品从一种环境迁移到另一个环境的能力,反映一个软件与不同的硬件环境、操作平台、其他软件的共同使用的能力。包括与不同硬件、平台、软件自身不同版本、其他软件、数据的兼容。
安全性:指软件产品保护信息和数据的能力。
可靠性/可用性:指系统正常运行的能力或程度,可用性=正常运行时间/(正常运行时间+非正常运行时间)×100%。
可用性指标一般要求达到 4 个 9 即 99.99%(全年 52 分钟不正常工作)或 5 个 9 即99.999%(全年 5 分钟),对一些军事系统,可用性高达 7 个 9(99.99999%(全年失效时间不超过两秒)。
一般测试时间不足,可以采用空间换时间的办法,如在高负载情况下进行为期一周或一个月的测试,以判断其可靠性。
关注 MTTF(平均无故障时间)、MTTR(平均恢复时间)、MTBF(平均失效间隔时间)。
可维护性:指软件产品可被修改的能力。
修改可能包括修正、改进或软件对环境需求和功能规格说明变化的适应。可维护性的软件应该是易改变的、稳定的、易测试的。
可扩展性/可伸缩性:通过很少的改动就能实现整个系统处理能力的增长。
如在部署两台服务器时测试系统性能(容量,即最大负载),再部署四台、八台服务器时分别进行系统容量的测试,看其容量是否为上次(两台、四台)实验值的两倍或接近两倍。如果是,系统就具有良好的可伸缩性。