《测试架构师修炼之道》相关学习1

第4章 软件测试架构师的知识能力模型

软件测试架构师需具备的能力


软件测试架构师需具备的测试技术能力

4.1 软件产品质量模型

4.1.1 软件产品质量六属性

软件产品质量六属性

4.1.2 功能性—软件产品在指定条件下使用时,提供满足明确和隐含要求的功能的能力

4.1.3 可靠性—在特定条件下使用时,软件产品维持规定的性能级别的能力

4.1.4 易用性—用户在指定条件下使用软件产品时,产品被用户理解、学习、使用和吸引用户的能力(易懂、易学、易用、漂亮好看)

4.1.5 效率—在规定条件下,相对于所用资源的数量,软件产品可提供适当的性能的能力。通常,效率就是我们常说的产品性能

4.1.6 可维护性—软件产品可被修改的能力

4.1.7 可移植性—软件产品从一种环境迁移到另一种环境的能力。这里的环境可以理解未硬件、软件或组织等不同的环境。

4.2 测试类型

常见测试类型及其与质量属性关系表

4.3 测试方法

4.3.1 产品测试车轮图

一个软件测试者要从哪些方面(测试类型)用哪些方法(测试方法)去测试产品(质量属性)。

产品测试车轮图

4.3.2 功能测试方法

  • 单运行正常值输入法
  • 单运行边界值输入法
  • 多运行顺序执行法
  • 多运行相互作用法

4.3.3 可靠性测试方法

  • 异常值输入法
  • 故障植入法—把系统放在有问题的环境中,但是输入依然是正常值。
  • 稳定性测试法—稳定性测是是在低于性能值的前提下测试的(多、并、复、异)。
  • 压力测试法—压力测试是在高于性能值的前提下进行测试的,在一段时间内持续使用超过系统规格的负载进行测试的一种可靠性测试方法。
    压力测试的目的:不会因为突发情况导致死机、反复重启等致命问题。
  • 恢复测试法—使用持续超过规格的负载进行了测试后,再将负载降到规格以内的测试方法。

4.3.4 性能测试方法

性能测试的目的是测试产品真实规格是否和说明书中承诺的需求规格一致,我们实测出来的性能值,就是系统真正能够处理的最大容量或者能力。

测试流程

4.3.5 易用性测试法

易用性测试法测试的是用户在理解、使用产品时产品的能力。

  • 一致性测试:关注的是产品的用户界面
  • 可用性测试法:测试对象也是用户界面,但关注的是产品提供的功能(又懂用户又懂测试)

4.4 测试设计技术

4.4.1 测试点不等于测试用例

测试点是测试者在测试时需要关注的地方,而测试用例是在测试点“加工”的基础上得到的。

4.4.2 四步测试设计法

四步测试设计法的四个关键步骤

1. 建模
将测试点分为四类:
流程类------>通过绘制流程图来建立测试模型
参数类------>通过输入输出表来建立测试模型
数据类------>通过等价类分析表来建立测试模型
组合类------>通过因子表来建立测试模型
2. 设计基础测试用例
测试用例:确定了测试条件(在什么情况下,进行什么测试)和测试数据(输入的参数值或数值)
基础测试用例:只确定了测试条件
3. 补充测试数据
4. 扩展

4.4.3 对测试点进行分类

1. 流程类

流程类测试点的流程图


2. 参数类
特点:“参数值”的个数是有限的,可以通过遍历的方式来测试覆盖到;
系统会对不同的“参数值”作出不同的处理或响应
3. 数据类
特点:数据的取值是一个范围,通常不能用遍历的方式来测试覆盖;
系统对允许输入的数据作出的 处理或响应往往是一样的
4. 组合类
在测试设计时,可以把流程类、数据类和参数类的测试点组合在一起进行测试设计

组合类测试点的流程

4.4.4 流程类测试设计:路径分析法

四步测试设计法


路径分析法:都能够覆盖流程的各种路径进行分析,得到一个路径的集合
1. 语句覆盖------覆盖系统中所有判定和过程的最小路径集合
如果测试只按照“语句覆盖”的方式进行测试,就很容易出现遗漏。
2. 分支覆盖------覆盖系统中每个判定的所有分支所需的最小路径数
分支覆盖考虑了流程中的“判定”,但是没有考虑这些“判定”之间的关系。分支覆盖也不是一种很强的覆盖。
3. 全覆盖------100%地覆盖系统所有可能的路径的集合
4. 最小线性无关覆盖------仅保证流程图中每个路径片段能够被至少执行一次,在这种覆盖策略下得到的最少路径组合
一个系统中的线性无关路径数=边数-节点数+2
=判定数+1
=区域数+1
(“流程图”的“入口”和“出口”不作为边数计算;一个“流程图”只有一个“入口点”和一个“出口点”)

获得线性无关路径的算法


一般来说:
{ 单元测试:语句覆盖 / 分支覆盖 集成测试 / 系统测试:最小线性无关覆盖 特别部分:全覆盖 不重要部分:语句覆盖 / 分支覆盖 \left\{ \begin{aligned} &单元测试 :语句覆盖/分支覆盖 \\ &集成测试/系统测试:最小线性无关覆盖\\ &特别部分:全覆盖\\ &不重要部分:语句覆盖/分支覆盖\\ \end{aligned} \right. 单元测试:语句覆盖/分支覆盖集成测试/系统测试:最小线性无关覆盖特别部分:全覆盖不重要部分:语句覆盖/分支覆盖

4.4.5 参数类测试设计:“输入-输出表”分析法

对参数类的测试点进行四步测试设计


“输入-输出表”是一张分析测试点在某种条件下,特定的“输入”会有怎样的“输出”的表。

输入-输出表

4.4.6 数据类测试设计: 等价类和边界值分析法

对数据类测试点进行四步测试设计


等价类是指对输入值按照测试效果进行划分,将测试效果相同的测试数据归为一类,然后在测试时只需要在每类中选择一些测试样本来进行测试,而无需测试所有的值。
边界值是参数在输入边界上的取值。
等价类和边界值常常结合在一起使用:我们首先对“输入”进行等价类划分,然后再将每个等价类的边界值作为测试的样本点。

等价类分析表


无效等价类不可合并,有效等价类可合并。

4.4.7 组合类测试设计:正交分析法

对组合类的测试点进行四步测试设计


“因子表”是一张分析测试点需要考虑哪些方面,并且这些方面需要包含哪些内容的表。

因子表


PICT工具生成测试用例

4.4.8 控制用例粒度:测试点的组合和拆分

1. 控制用例粒度
{ 控制测试点:让测试点不要过粗或者过细 策略覆盖 \left\{ \begin{aligned} &控制测试点:让测试点不要过粗或者过细\\ &策略覆盖\\ \end{aligned} \right. {控制测试点:让测试点不要过粗或者过细策略覆盖

对测试点拆分或组合


集成测试:是在软件系统集成过程中所进行的测试,其主要目的是检查软件单单元之间的接口是否正确。
系统测试:系统测试是基于软件需求说明书的黑盒测试,是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确。

策略覆盖

4.4.9 错误推断法

错误推断法是测试者根据经验来判断产品在哪些地方容易出现问题,然后针对这些地方来设计测试用例的方法。

4.5 探索式测试

探索式测试

CPIE模型

  1. 历史区测试法
    历史区测试法针对的是“老代码”,即在前几个版本就已经存在的软件特性,也包括那些用于修复已知缺陷的代码。

    历史区测试法中包含的探索式测试法

  2. 商业区测试法
    商业区测试法针对的是销售特性。所谓的销售特性,就是指产品的重要功能和特性,是测试时需要重点测试的对象。

    商业区测试法包含的主要测试方法

  3. 娱乐区测试法
    娱乐区测试法针对的是辅助特性,也就是那些并不是那么重要的特性的测试。

    娱乐区测试法包含的主要测试方法

  4. 破旧区测试法
    破旧区测试法针对的是问题高发特性。

    破旧区测试法包含的主要测试方法

  5. 旅馆区测试法
    旅馆区测试法针对的是平台或维护特性。这些特性的特点容易被忽视,而旅馆区测试法就是让我们再回过头去测试一些经常被忽视的或在测试中较少描述的次要及辅助功能的方法。

    旅馆区测试法包含的主要测试方法

  6. 旅游区测试法
    旅游区测试法针对的是噱头特性。

    旅游区测试法包含的主要测试方法

  7. 其它区测试法
    产品的一些可测试行、可维护特性,再比如对当前有代码变动的一些地方的测试等。

    其它区测试法包含的主要测试方法

4.5.3 开展探索式测试

探索式测试


探索式测试是一边学习、一边设计、一边执行的测试,很多测试点都是我们边测试边确定的。
优势:速度快、效果好

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340