1.7 软件分析方法
软件分析方法主要有:6W2H法则、CPIE模型、SBTM模型、HTSM模型、ACC模型、MFQ模型和PPDCS模型。在这节介绍6W2H法则、CPIE模型、SBTM模型、HTSM模型、ACC模型。对于MFQ模型和PPDCS模型有兴趣者,可以查看《海盗派测试分析:MFQ&PPDCS》一书[26]。
1.7.1 6W2H法则
6W2H法也叫八何分析法、6W2H标准化决策或评价模型,常常被运用到企业战略的决策和制定计划以及对工作的规划与分析,当然也可以运用在软件测试分析中。它能提高工作效率,让工作更加科学有效,同时,对于设定有效的目标、个人行为决策、职业生涯规划等都具有一定的实际意义。6W2H法见图1-9所示。
图1-9 6W2H
1.目标(Which)
通过对Which的思考需要确认哪些是可以做的?而哪些又是不可以做的?即产品的整体开发范围。
2.原因(Why )
通过对Why的思考明确客户为什么要这么做?以及这样做是否正确?
3.对象(What)
通过对What的思考确定要开发那些功能,达到什么样的非功能指标。也就是说产品的具体需求。
4.场所(Where)
通过对Where的思考确定在哪里实施研发,客户处、公司内还是进行外包。
5.时间和程序(When)
通过对When的思考决定何提交产品,如果是迭代开发,确定每隔多长时间提交一个版本。
6.组织或人(Who)
通过对Who的思考决定这个产品的干系人有多少,包括客户代表、项目经理、产品经理、高级经理、开发人员、测试人员、运维人员等。
7.如何做(How to do)
通过对How to do的思考决定采取什么样的模式开发,瀑布还是敏捷?自动化测试覆盖率计划多少?是否采用DevOps?…。
8.价值(How much)
通过对How much的思考主要考虑资金上的问题。
1.7.2 CPIE模型
根据测试专家Erik Petersen对于探索式测试的理解,抽象出测试的思维模型 CPIE(Collation、Prioritization、Investigation、Experimentation),如图1-10所示。该测试分析模型包含迭代的4个阶段:整理、排序、调查和实验。
图1-10 CPIE模型
1.整理(Collation)
尽可能多的去收集关于被测产品的信息,从而更好地理解被测产品。
2.排序(Prioritization)
按照风险等级(风险等级=危害程度×发生概率),确定所有测试任务的优先等级,从而安排测试的顺序。
3.调查(Investigation)
对即将执行的测试任务进行进一步的分析并确定测试的输入和预期输出。
4.实验(Experimentation)
实际地去测试,验证预测是否正确,检查在整理阶段获取到的信息是否正确。根据实验结果,测试人员将收集更多的信息,并重新调整测试任务的优先级。
1.7.3 SBTM模型
SBTM模型又名基于测程的测试,主要针对于探索式测试领域,见图1-11所示。
图1-11 SBTM模型
在这里
•测试分析,设计,执行属于一个测程(Session),一个测程(Session)一般在0.5小时到3小时。如果小于0.5小时进入不了状态,联系工作超过3个小时,容易疲劳,这两个数据是得到心理学家验证的。
•测程(Session)完毕根据测试结果来总结经验。
•根据测程(Session)的反馈信息进一步学习相关业务知识,测试知识及其他知识。
•根据测试结果及其学习情况计划下一个测程(Session)策略。
1.7.4 HTSM模型
启发式测试策略模型(The Heuristic Test Strategy Model:HTSM)是由测试专家JamesBach设计总结的。HTSM是设计测试策略的模型,也可以指导选取测试策略、进行测试用例设计、确定测试的范围以及了解项目背景。在测试人员进行测试用例设计时,通过HTSM可以随时提醒应该如何思考,应该考虑哪些方面。另外也可以帮助总结测试经验,使得每一位测试人员都可以借鉴,也都可以参考。HTSM模型请参考图1-12所示。
图1-12 SBTM模型
包括项目环境、产品元素、测试技术和质量标准。
1.项目环境
就是指项目的背景,可利用的资源,限制的条件等所有可以帮助或者限制的因素。在介入测试的阶段或进行测试分析、测试计划阶段是非常有帮助的。
•使命(Mission)。
•项目信息(Information)。
•与开发的关系(DeveloperRelations)。
•测试团队(TestTeam)。
•设备和工具(Equipment& Tools)。
•进度安排(Schedule)。
•测试模块(TestItems)。
•交付物(Deliverables)。
2. 产品元素
产品元素就是计划要测试的内容。测试人员必须保证覆盖所有的产品元素,而且不仅仅是可以看到的部分。
•Structure结构
•Function功能
•Data数据
•Interfaces接口
•Platform平台
•Operations操作
•Time时间
3. 测试技术
测试技术就是进行测试的策略,常用的测试技术有下面九种。
•Function Testing功能测试
•Claims Testing需求测试
•Flow Testing 流程测试
•Domain Testing领域测试
•Scenario Testing场景测试
•Stress Testing压力测试
•Automatic Checking自动化测试
•Risk Testing安全测试
•User Testing用户测试
4.质量标准
质量标准是测试人员判断一个系统是否测试通过的准则。在测试过程中或测试完成可以通过这些标准验证系统是否符合质量要求。
•Installability可安装性
•Performance性能
•Compatibility兼容性
•Scalability伸缩性
•Security安全性
•Charisma吸引力
•Usability易用性
•Reliability可靠性
•Capability功能性
1.7.5 ACC模型
ACC(AttributesComponents Compatibilities)是谷歌提出的开发模型。这里的ACC分别指属性(Attribute)、部件(Component)以及能力(Capability)。
•属性(Attribute)是系统的形容词,代表产品的品质和特色,是区别于竞争对手的关键。
用词需要简单、精确、变化和短小。
•部件(Component)是系统的名词,是在属性被识别之后确定的。
•能力(Capability)是系统的动词,是系统在用户指令下完成的动作。
案例1-1 某电子商务网站ACC模型。
•属性(Attribute):便利、安全、直观、友好。
•部件(Component)(为了达到这个特质需要具有)登录、注册、搜索…模块。
•能力(Capability)。
Ø增加商品到购物车:购物车(部件)在满足直观(属性)的一个能力。
Ø在线支付已购的商品:商品(部件)在满足便利和安全(属性)的一个能力。
Ø…。
1.8 软件测试设计方法
1.8.1 基于传统的测试设计方法
基于传统的测试测试设计方法包括:等价类/边界值、决策树、决策表、用况、状态图、正交法。详细内容请参考作者写的《软件测试技术实战设计、工具及管理》[1]的第2章。
1.8.2 基于质量的测试设计方法
ISO25102006包括产品质量模型(见图1-13所示)和使用质量模型(见图1-14所示)。
图1-13 ISO2510 2006产品质量模型
图1-14 ISO2510 2006使用质量模型
详细内容请参考作者写的《软件测试技术实战设计、工具及管理》[1]的第1章。。
1.8.3 基于经验的测试设计方法
基于经验的测试方法现在最流行的方法是探索式测试,详细内容请参考第1.2.2节和作者写的《软件测试技术实战 设计、工具及管理》[1]的第4章以及参考文献[5]和[6]。
1.9 项目的质量三角形
图1-15是软件项目三角形。
图1-15 软件项目三角形
下面做如下假设。
•假设质量(Q)与范围(S)不变,时间(T)减少的情形下,必须雇佣高水平的人员或者先进的技术,即增大产品的成本(C)。同理,质量(Q)与范围不变,时间(T)增加的情形下,可以减少成本(C)。
•假设质量(Q)与时间(T)不变,范围(S)增加的情形下,也必须增大成本(C)。同理,质量(Q)与时间(T)不变,范围(S)减少的情形下,可以减少成本(C)。
•假设质量(Q)与成本(C)不变,时间(T)减少的情形下,范围(S)必须减少。同理,质量(Q)与成本(C)不变,时间(T)增加的情形下,可以加大范围(S)。
于是可以得到如下公式:
Q = TC/S
也就是说质量消耗单位模块的时间和金钱的乘积。从这里可以看出,完成一个功能,需要达到一定的质量,必须消耗有效的时间或者增加产品的成本投入。
的。
1.10 本章总结
1.10.1 介绍内容
•软件测试的定义
•软件测试术语
Ø场景测试法
Ø探索式测试
Ø快速测试
Ø基于模型的测试
Ø语境驱动学派
Ø肥皂剧测试
ØDevOps
•软件工程模型
Ø瀑布模型及其衍生模型
u瀑布模型
u快速原型法
u迭代模型和螺旋模型
Ø敏捷开发
uScrum
uXP
•软件测试模型
ØV模型
ØW模型
ØX模型
Ø敏捷测试模型
•软件测试方法
•软件测试步骤
•软件测试分析方法
Ø6W2H法则
ØCPIE模型介绍
ØKAET模型
ØSBTM模型介绍
ØHTMS模型介绍
ØACC模型介绍
•软件测试设计方法
Ø基于传统的测试设计方法
Ø基于质量的测试设计方法
Ø基于经验的测试设计方法
•项目的质量三角形
1.10.2 案例
案例 | 所在章节 |
---|---|
案例1-1 某电子商务网站ACC模型。 | 1.7.5 ACC模型 |