软件质量是“反映实体满足明确的和隐含的需求的能力的特性的总和”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的和隐含特征相一致的程度。从管理角度对软件质量进行度量, 可将影响软件质量的主要因素划分为三组,分别反应用户在使用软件产品时的三种观点:正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。
软件测试
软件测试方法有多种分类方式,按测试时运不运行代码分为动态测试和静态测试。动态测试需要运行代码而静态测试不需要。按是否关注软件的内部结构分为白盒测试、黑盒测试和灰盒测试。
白盒测试:白盒测试依据LLD设计测试用例,来测试程序的内部逻辑结构,给予软件代码更大的质量保证,对应着测试过程中的单元测试。由于测试在软件工程前期进行,发现问题后解决的成本较低。白盒测试可以完全不顾程序的整体功能实现情况。
黑盒测试:黑盒测试把被测软件看成一个黑盒,只关心整体功能而不关注内部结构,即只关心输入和输出,对应着测试过程中的系统测试。黑盒测试的对象可以是一个系统、一个模块、一个函数等。黑盒测试根据SRS设计测试用例,若需求不清晰,则很难设计用例。由于黑盒测试不关注内部实现路径,所以测试时会有路径没有被测试到。
灰盒测试:介于白盒测试和黑盒测试之间,主要关注程序的接口,对应着测试过程中的集成测试。若是模块与模块之间的结接口,则偏黑盒;若是函数与函数之间的接口则偏白盒。
由于静、动态测试和黑、白、灰盒测试只是分类方法不同而已,所以黑盒、白盒、灰盒测试中都涉及到动态测试和静态测试。如白盒测试中的代码编译、关键字检索属于静态测试;程序插装属于动态测试。通过以上多种方式,全方位保证软件质量。