直接答案:
可维护性测试不属于功能测试。 它属于非功能测试(也叫质量属性测试)的范畴。
详细解释
为了理解这个区别,我们只需要问两个问题:
功能测试问的是:“软件做了什么?”
目的:验证软件的功能是否按照需求规格说明书的要求正确实现。
关注点:特性、操作、业务流程的正确性。
示例:
“点击‘登录’按钮,输入正确的用户名和密码,用户能成功进入系统吗?”
“输入错误的金额,支付功能会给出恰当的错误提示吗?”
本质:检验软件的行为是否符合预期。
可维护性测试问的是:“软件做得怎么样?—— 具体在‘容易修改’这方面做得怎么样?”
目的:评估软件产品能够被修改(包括纠正、改进或适应环境变化)的难易程度。
关注点:代码结构、文档质量、可读性、模块化程度等内部质量属性。
示例:
“一个新程序员需要花多长时间才能定位到一个特定缺陷的根源?”
“为系统添加一个新功能,会意外破坏多少现有的、不相关的功能?”
“代码的编写方式是否易于理解和修改?”
本质:评估软件的内部结构和属性,为未来的维护工作降低成本和质量风险。
一个简单的比喻
功能测试就像测试一辆汽车的功能:踩油门能加速吗?刹车能停稳吗?转向灯会亮吗?它关心的是汽车是否能完成其设计的基本操作。
可维护性测试就像评估一辆汽车的“可维护性”:更换机油是否方便?发动机舱的布局是否合理,让机修工容易触及关键部件?维修手册是否清晰易懂?它关心的是当汽车需要保养或修理时,是否省时、省力、省钱。
可维护性测试归属于哪一类?
在标准的软件质量模型(如ISO 25010)中,可维护性被明确定义为一个质量特性,它与功能性、性能效率、可靠性、安全性等特性并列。
因此,测试这些特性的活动,被统称为非功能测试。
可维护性测试的常见子特性包括:
易分析性:诊断缺陷根源的难易程度。
易修改性:对软件进行改动的难易程度。
稳定性:修改后不会引入新缺陷的能力。
易测试性:为验证修改而进行测试的难易程度。
总结:
测试类型-测试焦点-要回答的问题
功能测试-软件的行为和功能-“软件做对了吗?”
可维护性测试 软件的内部结构和属性 “软件容易修改和维护吗?”
所以,当您在进行可维护性测试时,您不是在验证一个按钮的功能,而是在评估代码和设计的长远健康度,这是一种为了降低未来总成本而进行的战略性投资。