软件测试外部质量和内部质量模型通常划分为6个大的特性,27个子特性,如图5-3 所示。接下来我们将对每个特性进行详细的描述。
图5-3 外部质量和内部质量模型
一、功能性(Functionality)
功能性(Functionality)是指当软件在指定条件下使用时,软件产品提供满足明确和隐含需求的功能的能力。功能的特性包含适合性、准确性、互操作性、安全性和功能依从性五个子特性。
(1)适合性(Suitability)
适合性是指产品是否适合我们的客户群,适合性这个词的意思是指A 是否适合B,例如去专卖店买衣服,会对衣服有一个试穿的过程,衣服款式没问题并不代表衣服就一定合适当前买家穿。在软件产品中,适合性是指研发出来的产品是否适合用户,那么如何体现是否适合用户,主要是通过用户的需求来体现,也就是如果产品满足了用户需求,则说明我们的产品适合用户;如果产品不满足用户需求,则说明产品不适合用户。
(2)准确性(Accuracy)
软件产品提供具有所需精确度的正确或相符的结果或效果的能力。即软件除了能实现所要求的功能外,还要求能正确实现所要求的功能。准确性不单有正确性的意思,还有精度的意思,即相对单纯的正确性来说,精度是其强调的一个维度。一般情况下我们可能很少注意到精度的概念,但对于一些行业来说精度显得尤为重要,如军工、医疗等。例如研发导弹,该导弹需要准确地打击到1000 公里外的目标,这个时候就涉及到一个精度的问题,也就是导弹所落下的位置应该是在被打击的一个有效半径范围内,否则就不能精确地打击到目标。而导弹发射时其本身受到天气、环境等因素影响,所以这个时间精度就显得尤为重要。
(3)互操作性(Interoperability)
互操作性(Interoperability)是指软件产品与一个或更多的规定系统进行交互的能力。产品在使用时处于一个大的系统下,在这个大的系统中有三种对象:人、机器、环境。人指的是用户,机器指的是产品。人与机器之间的互操作性更多的是指产品的易用性,当然这个方面又分两个维度的内容,一是如果测试的是纯软件,那么人也软件之间的互操作性是指GUI 的易用性,即图形界面接口;二是如果测试的是纯产品,那么互操作性是指UI 测试,指的是工业设计的易用性。
机器与环境的互操作性指的是兼容性,这也包含两个方面的内容:一是如果纯软件与环境之间的兼容性,如与操作系统间的兼容性,与其他类似操作系统之间的兼容性;二是产品与环境之间的兼容性,如手机受外界环境温度、湿度的影响,冬天手机的续航能力肯定比夏天差。这就是环境对产品的影响,当然环境对产品的影响远不止是温度、湿度,还有很多其他方面的影响。
(4)安全性(Security)
安全性(Security)是指软件产品保护信息和数据的能力。主要包含两方面:
防止未得到授权的人或系统访问相关的信息或数据。
保证得到授权的人或系统能正常访问相关的信息或数据。
不同的系统对于安全性的需求差别很大,通常包括以下几方面:
低:如Word 的文档加密。
中:如论坛登录密码验证、登录次数限制、用户名、IP 限制。
高:如防火墙软件主要是测试功能的安全性测试。
常见的安全性测试如下:
用户验证:登录密码验证、IP 地址访问限制等。
用户权限管理:验证低级别用户是否具有了高级别用户的权限,各级别用户权限都得到了实现。
系统数据的保护:对系统文件、用户密码文件等进行隐藏、密码验证、内容加密、备份。
防DoS 攻击:DoS(Denial of Service)攻击:拒绝服务攻击。
防溢出攻击。
加密、解密:在计算机通信中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输出去,使信息在传输过程中即使被窃取或截获,窃取者也不能了解信息的内容,从而保证信息传输的安全。
防病毒。
关于安全性的测试在后面的章节中会详细介绍。
(5)功能依从性(Functionality Compliance)
功能依从性(Functionality Compliance)是指软件产品遵循与功能性相关的标准、约定或法规以及类似规定的能力。这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等。
二、可靠性(Reliability)
可靠性(Reliability)是指在规定条件下使用时,软件产品维持规定的性能级别的能力。规定条件的三要素,也称“三规”,包括规定的环境、规定的时间、规定的性能。
可靠性可以通过以下三个指标来衡量:
MTTF(Mean time to failure):平均无故障时间。
MTTR(Mean time to restoration):平均恢复时间或平均修复时间(Mean time to repair)。
MTBF(Mean time between failures):平均失效间隔时间,如图5-4 所示。
图5-4 平均失效间隔时间
MTBF 平均失效间隔时间公式如下:
可靠性主要包括:成熟性、容错性、易恢复性和可靠依从性四个子特性。
(1)成熟性(Maturity)
成熟性(Maturity)是指软件产品为避免由软件中错误而导致失效的能力。这里主要是指软件避免自身的错误、自身模块间的错误而导致整个软件失效,如对其他模块传递的指针进行非空检查。
子系统、模块、单元模块的设计人员应该仔细分析与自身有接口关系的子系统、模块、单元模块,识别出这些接口上可能会传递过来的错误,然后在自己子系统、模块、单元模块内部对这些可能的错误预先进行防范,规避这些错误传递到自身而引起自身的失效。
如在研究“神七”载人航天飞船时,一般根据其他国家开展载人航天和舱外活动的经验,航天员上天后一般要3 到4 天才可开展出舱活动,但“神七”的任务是航天员第二天就要出舱活动。这样无论是对航天员的船体还是对飞船、测控都带来一个巨大的挑战。所以为了保证航天员出舱的可靠性,在研究的时候设立了243 个故障模式来应对航天员出舱可能存在的问题。
(2)容错性(Fault Tolerance)
容错性(Fault Tolerance)是指在软件出现故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力(注:规定的性能级别可能包括失效防护能力)。
这里主要是指软件和外部的接口,如用户接口、硬件接口、外部软件接口等,设计人员应该充分分析外部接口可能产生的错误,然后在设计上对这些错误一一予以防范,防止这些外部传入的错误波及自身而失效。
例如:用户登录,要求用户密码小于或等于6 位,则用户接口处要判断大于6 位时要进行的相应处理。
(3)易恢复性(Recoverability)
易恢复性(Recoverability)是指在失效发生的情况下,软件产品重建规定的性能级别并恢复受直接影响的数据的能力,通常包括以下两个方面的指标:
原有能力恢复的程度;
原有能力恢复的速度。
例如路由器中,在交换板故障的情况下,备用板升为主板,经过短暂的平滑时间后能恢复到原来的性能级别,这里可以用恢复时间、恢复期间丢包数等来衡量易恢复性,如图5-5 所示。
图5-5 路由器交换板故障处理
开发人员进行设计时,应该充分分析架构中哪个组件风险最集中、最高,那么应该对这类核心组件采用主备倒换等易恢复机制。
(4)可靠依从性(Reliability Compliance)
可靠依从性(Reliability Compliance)是指软件产品遵循与可靠性相关的标准、约定或法规的能力。
三、易用性(Usability)
易用性(Usability)是指在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。功能性、可靠性和效率的某些方面会影响易用性。用户可能包括操作员、最终用户和受该软件的使用影响或依赖于该软件使用的间接用户。易用性必须针对软件所影响的所有不同的用户环境。
易用性包括五大子特性:易理解性、易学性、易操作性、吸引性和易用依从性。
(1)易理解性(Understandability)
易理解性(Understandability)是指软件产品使用户能理解软件是否合适,以及如何能将软件用于特定的任务和使用环境的能力。用户在使用软件系统的过程中,系统交互给用户的信息是否准确、清晰、易懂,能帮助用户准确理解系统当前真实的状态,指导其进一步的操作。
例如:手机打电话功能,当手机来电时,接电话的一般是绿色的电话图标,挂断电话一般是红色的电话图标,大家使用习惯了,看着就明白了。如果某个手机生产商恰好将这两个图标反过来设计的话,就很容易弄错,所以通常使用一些标准图标更容易被理解。
(2)易学性(Learnability)
易学性(Learnability)是指软件产品使用户能学习其应用的能力。例如用户手册、用户手册是否有中文版,帮助文档是否齐全、是否有在线帮助,控件是否有回显功能,是否简明易懂等是易学性考虑的因素。
一般情况下步骤越少越容易学,当然在实际测试过程中我们会发现易理解的特性也适合易学,因为如果一个功能不易理解就不可能会易学。
(3)易操作性(Operability)
易操作性(Operability)是指软件产品使用户能操作和控制它的能力。
例如:我们平时开汽车,自动化档的车显然比手动档的车容易开,因为其他操作步骤更少。一般情况下,符合易学的功能通常是易操作的,因为如果某个功能用户不容易学会,那更无从谈易操作了。
(4)易吸引性(Attractiveness)
易吸引性(Attractiveness)是指软件产品吸引用户的能力。这主要考虑的是产品的界面等外在美观因素,这也是一个产品质量很重要的组成部分,甚至是关键因素。例如目前手机产品已经成为时尚产品,外观就成了其成败的关键。
(5)易用依从性(Usability Compliance)
易用依从性(Usability Compliance)是指软件产品遵循与易用性相关的标准、约定、风格指南或法规的能力。这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等,例如企业内部的界面规范。
例如:美国康复法案508 条款要求联邦机构的电子和信息技术对残疾人士是可访问的。该标准提供了特定于各类技术的标准,包括:软件应用程序和操作系统、基于Web 的信息或应用程序、电信产品、视频和多媒体产品、自给自足的、保密的产品、台式机和便携式计算机。
本章节主要讲解了关于“软件测试—外部和内部质量模型(上)”的内容,下一章继续跟新“软件测试—外部和内部质量模型(下)部分内容,大家觉得有用的话记得来学习哦。