全栈软件测试工程师宝典连载(3)

简介: 全栈软件测试工程师宝典连载(3)

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所示。

image.png

                         

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对于探索式测试的理解,抽象出测试的思维模型 CPIECollationPrioritizationInvestigationExperimentation),如图1-10所示。该测试分析模型包含迭代的4个阶段:整理、排序、调查和实验。

image.png

1-10 CPIE模型


1.整理(Collation

尽可能多的去收集关于被测产品的信息,从而更好地理解被测产品。


2.排序(Prioritization

按照风险等级(风险等级=危害程度×发生概率),确定所有测试任务的优先等级,从而安排测试的顺序。


3.调查(Investigation

对即将执行的测试任务进行进一步的分析并确定测试的输入和预期输出。


4.实验(Experimentation

实际地去测试,验证预测是否正确,检查在整理阶段获取到的信息是否正确。根据实验结果,测试人员将收集更多的信息,并重新调整测试任务的优先级。


1.7.3 SBTM模型

SBTM模型又名基于测程的测试,主要针对于探索式测试领域,见图1-11所示。

image.png

1-11 SBTM模型

在这里

•测试分析,设计,执行属于一个测程(Session),一个测程(Session)一般在0.5小时到3小时。如果小于0.5小时进入不了状态,联系工作超过3个小时,容易疲劳,这两个数据是得到心理学家验证的。

•测程(Session)完毕根据测试结果来总结经验。

•根据测程(Session)的反馈信息进一步学习相关业务知识,测试知识及其他知识。

•根据测试结果及其学习情况计划下一个测程(Session)策略。


1.7.4 HTSM模型

启发式测试策略模型(The Heuristic Test Strategy ModelHTSM)是由测试专家JamesBach设计总结的。HTSM是设计测试策略的模型,也可以指导选取测试策略、进行测试用例设计、确定测试的范围以及了解项目背景。在测试人员进行测试用例设计时,通过HTSM可以随时提醒应该如何思考,应该考虑哪些方面。另外也可以帮助总结测试经验,使得每一位测试人员都可以借鉴,也都可以参考。HTSM模型请参考图1-12所示。

image.png

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所示)


image.png

1-13 ISO2510 2006产品质量模型


image.png

1-14 ISO2510 2006使用质量模型


详细内容请参考作者写的《软件测试技术实战设计、工具及管理》[1]的第1章。。


1.8.3 基于经验的测试设计方法

基于经验的测试方法现在最流行的方法是探索式测试,详细内容请参考第1.2.2节和作者写的《软件测试技术实战设计、工具及管理》[1]的第4章以及参考文献[5][6]


1.9 项目的质量三角形


1-15是软件项目三角形。

image.png

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模型


—————————————————————————————————


软件安全测试

https://study.163.com/course/courseMain.htm?courseId=1209779852&share=2&shareId=480000002205486

接口自动化测试

https://study.163.com/course/courseMain.htm?courseId=1209794815&share=2&shareId=480000002205486

DevOps 和Jenkins之DevOps

https://study.163.com/course/courseMain.htm?courseId=1209817844&share=2&shareId=480000002205486

DevOps与Jenkins 2.0之Jenkins

https://study.163.com/course/courseMain.htm?courseId=1209819843&share=2&shareId=480000002205486

Selenium自动化测试

https://study.163.com/course/courseMain.htm?courseId=1209835807&share=2&shareId=480000002205486

性能测试第1季:性能测试基础知识

https://study.163.com/course/courseMain.htm?courseId=1209852815&share=2&shareId=480000002205486

性能测试第2季:LoadRunner12使用

https://study.163.com/course/courseMain.htm?courseId=1209980013&share=2&shareId=480000002205486

性能测试第3季:JMeter工具使用

https://study.163.com/course/courseMain.htm?courseId=1209903814&share=2&shareId=480000002205486

性能测试第4季:监控与调优

https://study.163.com/course/courseMain.htm?courseId=1209959801&share=2&shareId=480000002205486

Django入门

https://study.163.com/course/courseMain.htm?courseId=1210020806&share=2&shareId=480000002205486

啄木鸟顾老师漫谈软件测试

https://study.163.com/course/courseMain.htm?courseId=1209958326&share=2&shareId=480000002205486

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能 算法
新时代软件测试工程师的挑战与机遇
随着科技的飞速发展,软件测试在当今信息化社会中扮演着举足轻重的角色。本文将探讨新时代软件测试工程师所面临的挑战和机遇,分析其发展趋势及应对策略,旨在为广大软件测试从业人员提供启示和指导。
|
8月前
|
测试技术 数据库
腾讯游戏测试工程师的经验心得分享
腾讯游戏测试工程师的经验心得分享
289 0
|
8月前
|
测试技术
华为测试工程师面试必备的问题点
华为测试工程师面试必备的问题点
81 0
|
11天前
|
运维 关系型数据库 MySQL
性能分析到底是不是性能测试工程师的能力?
【4月更文挑战第27天】性能分析到底是不是性能测试工程师的能力?
20 2
|
1月前
|
安全 应用服务中间件 网络安全
渗透测试工程师面试题大全
渗透测试工程师面试题大全
|
8月前
|
Kubernetes 测试技术 应用服务中间件
新来的性能测试工程师工资25K,看了他做的性能测试,我砌底服了
新来的性能测试工程师工资25K,看了他做的性能测试,我砌底服了
|
4月前
|
测试技术
软件测试工程师日常工作中需要拒绝哪些工作?
软件测试工程师日常工作中需要拒绝哪些工作?
|
9月前
|
安全 搜索推荐 测试技术
【实测】用chatGPT来完整的走一次测试流程吧,看看它到底相当于我们什么等级的工程师?
【实测】用chatGPT来完整的走一次测试流程吧,看看它到底相当于我们什么等级的工程师?
|
6月前
|
消息中间件 安全 NoSQL
测试工程师如何帮助开发域的质量变好
测试工程师如何帮助开发域的质量变好
60 0
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试|人工智能如何帮助测试工程师解决问题?
软件测试|人工智能如何帮助测试工程师解决问题?
92 0

热门文章

最新文章