软件而言,“满足要求”包含两个层次:
一是用户显性需求;
二是满足其隐性需求。
通常情况下,用户容易表述其显性需求,如需要何种功能、何种性能表现等,但无法明确其隐性需求,如软件产品无论在哪种用户需求背景下,都需满足法律法规的限制、行业限制、用户约定俗成习惯,甚至是企业内部的规章制度等。考虑软件质量时,既需考虑用户显性需求,也需考虑其隐性需求,这点测试工程师在分析测试需求时必须考虑。
衡量一个软件系统的好坏,可从过程质量、内部质量、外部质量、使用质量等几个方面考察。
过程质量关注软件产品整个生产流程是否规范;
内部质量关注软件内部设计及静态测度是否合格;
外部质量关注软件产品功能、性能的表现,使用质量则关注软件系统在使用过程中的易用性、满意度表现。
对于测试工程师而言,如果从集成测试角度考虑,需关注内部质量、外部质量及使用质量,如果仅做黑盒测试,则可从外部质量及使用质量考虑。
衡量软件好坏的关键在于检验被测对象“满足要求”的程度。这些“要求”对应的是特性,那么衡量软件好坏的关键点转变为特性的达到程度,如果通过量化指标将这些特性进行量化,便可以根据指标达标情况判断被测对象的优劣。
国标软件质量GB/T16260.1—2006/ISO9126:2001定义了衡量软件质量的6个特性,分别是功能性、可靠性、易用性、效率、可移植、可维护等。
国标GB/T25000.51标准对9126标准做了补充,增加了使用质量评价,关注于用户满意度,特别对COTS(商用现货软件)规定了基本的质量要求及测试方法,以便于软件的供应、选择、采购及测试。
从软件测试角度而言,测试工程师需要了解每个特性及其子特性,以便于在分析测试需求、提取测试需求及评价被测对象时有的放矢,依据标准开展有效的测试活动。