软件测试的定义是“为了发现程序中的错误而执行程序的过程”。具体地说,软件测试是根据软件开发的产品设计说明书和程序的内部结构而精心设计出一批测试案例,并利用测试案例来运行程序,以发现程序错误的过程。
软件测试贯穿于整个开发过程中,软件系统的开发过程是一个自顶向下逐步细化的过程,而测试过程则是按相反顺序进行的集成过程,根据测试的阶段、测试的执行人,可划分为:
单元测试(unit testing)、组合测试(incremental integration testing)、集成测试(integration testing)、系统测试(system testing)、用户验收测试。根据测试内容的不同可分为:功能测试(functional testing )、安全性测试(security testing)、恢复测试(recovery testing )、兼容性测试(硬件兼容、版本兼容)、容错性测试、性能/压力/负载测试(performance /stress /load testing )、安装/卸载测试(install/uninstall testing )在本文中,我们使用测试阶段的划分标准。
图一:软件生命周期“台阶”模型图:
三)测试中权衡的三个重要维度
测试时间、测试成本和测试质量构成测试过程中需要关注的三个重要维度,三个维度相互制约、相互影响。在测试中,永远无法实现时间、成本和质量的三赢,为其中任何2个目标所做的努力,都必须以付出第三个目标的损失为代价,此外我们永远都不可能穷尽所有的测试内容。因此必须综合权衡作出取舍。
图二:制约测试的三个要素
考虑到测试时间、测试成本的制约,在不同的测试阶段,对测试精度有不同的要求。从单元测试、集成测试到系统测试、用户验收测试阶段,对测试精度的要求也呈现一个从粗到细的过程。单元测试是发现错误最多、预防质量隐患最重要的测试阶段,需要最大的测试精度,缺少单元测试,直接进行集成和系统测试,缺陷隐患多。
图三:不同测试阶段测试精度模型图
联系客服