软件测试学习

Day_1测试概念及模型

  • 掌握测试用例包含的基本内容

  • 使用等价类方法设计出测试用例

1. 软件测试分类(复习)

1.1 按阶段划分

  • 单元测试

    • 测试:针对单个功能进行测试,如:登录、购物车等
    • 开发(更多的理解):针对代码进行测试(一般由开发负责、或自动化测试协助)
  • 集成测试

    • 组装测试
  • 系统测试

    • 针对系统进行整体性测试
      • 软件功能
      • 硬件功能
  • 验收测试(用户检验产品是否满足自己预期)

    • α测试:bug比较多、内测版本

    • β测试:bug相对比较少、公测版本

    • γ测试:候选发布版本

    • 负责人(甲乙方):

      • 甲方负责
      • 乙方协助(在甲方的授权及信任基础上)
      • 第三方评测机构

1.2 按是否覆盖源代码划分

  • 黑盒测试:输入和输出

  • 白盒测试:代码内部实现逻辑

  • 灰盒测试

    • 测试关注点
    • 输入
      • 输出
      • 代码逻辑

1.3 按是否运行划分

+ 静态测试

  • 不运行被测试程序
  • 测试对象
  • 文档
    • 代码

+ 动态测试

  • 运行测试程序
  • 测试对象
    • 运行中的程序

1.4 按是否自动化划分

  • 手工测试(功能测试)
  • 自动化测试
    • 通过工具或代码代替人进行测试的过程

1.5 更多

  • 冒烟测试
    • 开发提交测试版本的接收性测试
    • 测试点
      • 最基本功能,如用户正常登陆
      • 最核心的业务流程,如电商购买商品全过程
  • 回归测试
    • 测试点
      + bug回归
      + 旧功能回归
  • 随机测试
  • 探索测试

2. 软件开发流程(软件生命周期)

2.1 瀑布模型(了解)

  • 组成
    • 需求分析==》概要设计==》详细设计==》编码==》软件测试==》软件维护
  • 特点
    • 线性模型
    • 文档驱动
  • 优点
    • 只需要关注当前进行的阶段
  • 缺点
    • 不响应需求变化
  • 典型应用场景
    • 需求清晰的大型项目,如银行、保险、建筑等

3 软件测试流程

3.1 V模型(了解)

  • 组成
    • 需求分析==》概要设计==》详细设计==》编码==》单元测试==》集成测试==》系统测试==》验收测试
  • 优点
    • 只需要关注当前阶段、文档驱动、线性模型
  • 缺点
    • 不响应需求的变化、不灵活

3.2 W模型(了解)——双V模型

  • 绘制

    • 开发V:需求分析==》概要设计==》详细设计==》编码**》集成》实施==》交付**
    • 测试V:**验收测试设计==》系统测试设计==》集成测试设计==》单元测试设计==》**单元测试==》集成测试==》系统测试==》验收测试
  • 优点

    • 测试贯穿软件开发的全生命周期

    • 早参与、早发现、早解决

  • 缺点

    • 技术和管理要求比较高

4. 软件质量模型(了解)

  • 功能性:检查业务功能是否满足需求

  • 可靠性:容错能力(恢复正常的时间、能力)

  • 易用性:看的懂、会使用等

  • 效率性:性能(响应时间、消耗的资源(CPU、内存)等)

  • 维护性:为后续功能的开发与维护提供便利

  • 移植性:软件需要在不同的软件环境和硬件环境下都能正常的工作

5 软件测试用例(重点)

5.1 软件测试用例概念

  • 概念:一个为了特定的目的(检验开发的代码实现是否满足用户的需求)而设计的文档(包含测试输入、执行条件、预期结果),文档的形式可以是xmind、excel等。

  • 案例

标题 测试输入 执行条件 预期结果
验证电脑开机功能 有电 按下开机键 屏幕点亮

5.2 测试用例组成要素与用例模板

  • ID
    • 唯一性
    • 项目-模块-001
  • 模块
  • 优先级
    • 作用:体现用例执行的先后顺序
    • 分类:
  • 用例标题
    • 唯一性
    • 见名知意
  • 预置条件
  • 测试步骤
    • 尽可能详细
  • 测试数据
  • 预期结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Qzt9xMY-1638952681464)(C:\Users\Jack\AppData\Roaming\Typora\typora-user-images\image-20200619113255809.png)]

5.3 软件测试用例的作用(了解)

  • 便于理清测试思路,确保需覆盖测试的功能点无遗漏

  • 便于测试工作量的评估

  • 便于提前准备测试数据

  • 便于把控测试工作进度

  • 便于回归测试

  • 便于测试工作的组织,提高测试效率,降低测试交接成本

6 等价类(重点)

6.1 等价类划分法

  • 概念:通过科学的方法找到具有共同特性的测试输入的子集,能够从穷举测试中解放(大大减少了测试用例的数量,从而提升测试效率。)

  • 分类

    • 有效等价类:满足需求

    • 无效等价类:不满足需求

+ 设计测试用例的步骤

  • 需求分析

  • 划分等价类

        + 有效
        + 无效
          + 规则(需求本身)
          + 长度
          + 类型
          + 是否为空(必填项)
          + 是否重复
    
  • 设计用例

  • 典型应用场景

    • 输入框

案例1:QQ账号

QQ账号:6——10位自然数

软件测试学习
软件测试学习

案例3:sina邮箱

新浪邮箱登录,要求输入(邮箱名)@sina.cn和(密码)
邮箱名为:4-16位字符,支持英文、数字、下划线(不能全是数字或者下划线)
密码:6-18位字符

软件测试学习

作业

1、梳理今日知识点,结合课上知识讲解补充完善今日总结内容,以xmind形式输出

2、等价类划分法设计测试用例的步骤?

1. 明确需求 (找到所有的输入项)
2. 针对每个输入项分别确定有效和无效等价类 
3. 编写测试用例:
   一条用例尽可能多的覆盖有效等价类;
   无效等价类中每个取值都要使用一条用例来覆盖;

3、写出下面问题的有效等价类、无效等价类。

(1)程序要求输入一个数X,并且X的取值范围为集合{1,3,7,15}。

有效等价类:1,3,7,15
无效等价类:2,4

(2)用户名(昵称)长度为 3-19,以字母开头,字母或数字结尾

有效等价类:
	- 用户名长度为3-19,以字母开头数字结尾
	- 用户名长度为3-19,以字母开头字母结尾
无效等价类:
	- 用户名长度小于3,
	- 用户名长度大于19,
	- 以数字开头
	- 以字母开头,以空格结尾
	- 特殊字符、汉字、为空

4、案例2:城市电话号码

城市电话号码:某城市的电话号码是由3部分组成,分别是:
地区码:空白或是3位数字
前缀:非‘0’且非‘1’开头的三位数字
后缀:4位数字

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AhtRREZy-1638952681466)(C:\Users\Jack\AppData\Roaming\Typora\typora-user-images\image-20200620060949821.png)]

5、TPShop商城注册功能测试用例设计

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WwcNbKrQ-1638952681467)(.\image\注册功能.png)]

tpshop注册功能需求说明:
手机号:第一位为1,第二位非2,的11位自然数
注意:对于邮箱注册,仅验证邮箱格式是否正确
xxxx-长度为4-16,类型为数字,字母,下划线组合(可以是纯字母或者数字,不能以下划线开头)

验证码:字母或者数字,与图片一致,点击刷新按钮可以更新验证码
设置密码:要求同输入框提示,6-16位大小写英文字母,数字或符号的组合 (可以是纯字母,数字,符号)
确认密码:同设置密码
推荐人手机:(非必填,之前注册成功的用户)
我已阅读并同意:勾选之后才可以点击同意协议并注册

今日总结

  • 掌握测试用例包含的基本内容

    • 能够说出测试用例的定义
    • 能够写出测试用例的8要素
    • 能够按照测试用例8要素模板完成1条测试用例描述
  • 使用等价类方法设计出测试用例

    • 能够根据需求划分有效等价类和无效等价类
    • 能够使用等价类方法设计(新浪邮箱登录案例)测试用例
    • 能够说出等价类方法的适用场景

-----------------------------------Day2------------------------------

测试用例设计

今日目标

  • 使用边界值法设计出测试用例
  • 使用判定表法设计出测试用例

软件测试设计方法

  • 等价类(五星)
  • 边界值(五星)
  • 判定表(五星)
  • 场景法(流程图)(五星)
  • 错误推测法(二星)

1.等价类划分法(五星)——复习知识

  • 作用:从穷举测试中解放出来,找到具有共同特性的测试输入子集。

  • 概念:代表性的测试输入集

  • 分类

    • 有效等价类(满足需求)
    • 无效等价类(不满足需求)
  • 设计测试用例的步骤

    • 需求分析
    • 划分等价类
    • 设计测试用例
  • 典型应用场景

    • 具有典型输入框的场景

2.边界值(五星)

  • 作用:对等价类的补充,统计表明程序最容易出错的地方就是在边界附近。

  • 概念:基于边界值【有效等价类和无效等价类的分界点】设计测试用例的一种【黑盒】方法

  • 边界值

    • 上点:边界之上的点

    • 内点:边界之内的点

    • 离点:离边界最近的左右两点

      软件测试学习

  • 设计测试用例步骤

      			  + 需求分析
      			
      			  + 划分等价类
      			
      			  + 确定边界
      			
      						    + 上点
      						    + 内点
      						    + 离点
      			
      			  + 设计测试用例
    
    
    
      				+ 典型应用场景
      				
      				  + 存在边界 > >= < <= 大于 小于等于 
    

案例1:QQ账号(6——16位自然数)

需求 数学表示 上点 内点 离点 精简5点
6——16位自然数 [6,16] 6 16 10 5 7 15 17

软件测试学习

案例2:添加标题(标题长度>0且标题长度<=30)

需求 数学表示 上点 内点 离点 精简5点
标题长度>0且标题长度<=30 [1,30] 1 30 15 0 2 29 31

软件测试学习

案例3:两位数加法器

需求(两位数加法器取值范围) 数学表示 上点 内点 离点 精简5点
大于等于-99,小于等于99 [-99,99] -99和99 20 -100,-98,98,100
大于-99,小于等于99 (-99,99] ==》[-98,99] -98,99 20 -99,-97,98,100
大于等于-99,小于99 [-99,99)==》[-99,98] -99 98 0 -98 -100 99 97
大于-99,小于99 (-99,99)==>[-98,98] -98 98 0 -99 -97 97 99

案例4:sina邮箱

新浪邮箱登录,要求输入(邮箱名)@sina.cn和(密码)
邮箱名为:4-16位字符,支持英文、数字、下划线(不能全是数字或者下划线)
密码:6-18位字符

扩展知识:

  • 边界值优化【7点变5点】

    软件测试学习

  • 结论:

    • 上点:必选(不考虑区间开闭)

    • 内点:必选(建议选择中间范围)

    • 离点:开内闭外(考虑开闭区间,开区间选择内部离点,闭区间选择外部离点)

3.判定表(五星)

  • 概念:存在多个输入条件、多个输出结果,输入和输入之间有组合关系,输入和输出之间有依赖或制约关系。

+ 判定表组成

			  + 条件桩:所有输入条件,如欠费状态、关机状态
			
			  + 动作桩:所有的可能的输出结果,如允许主被叫、不允许主被叫
			
			  + 条件项:单个条件的取值范围,一般都是有效等价类和无效等价类

				    + 表示方式
				      + 字符:
						        + 真/有效等价类/Y
						        + 假/无效等价类/N
				      + 数字:
						        + 真/有效等价类/1
						        + 假/无效等价类/0
  • 动作项:基于每一种条件的组合,得到确认的结果,如打不通等

  • 设计测试用例的步骤

        1. 明确条件桩(找到所有的输入条件)
        2. 明确动作桩(找到所有的输出结果)
        3. 对条件桩进行全组合
        4. 明确每个组合对应的动作桩(基于每一种条件的组合情况,确定本组合下的输出结果。)
        5. 设计测试用例,每行数据对应一条测试用例
    
  • 真假表示说明:

    表示形式
    数字 1 0
    符号 Y N
  • 使用场景:

    • 多条件组合情况

案例1:用户呼叫

若用户欠费或关机,则不允许主被叫

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PbFyKvMF-1638961806600)(C:\Users\Jack\AppData\Roaming\Typora\typora-user-images\image-20200620120338374.png)]

案例2:订单状态

订单检查,如果金额大于500元,又未过期,则发出批准单和提货单;
        如果金额大于500元,但过期了,则不发批准单与提货单;
        如果金额小于500元,则不论是否过期都发出批准单和提货单;
        在过期的情况下,不论金额大小还需要发出通知单。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hdiEpQpT-1638961806602)(C:\Users\Jack\AppData\Roaming\Typora\typora-user-images\image-20200620122227859.png)]

案例3:文件修改

如果想对文件进行修改,
   输入的第一列字符必须是A/B,第二列字符必须是一个数字,
   如果第一列字符不正确,则给出信息L;
   如果第二列字符不正确,则给出信息M。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ko7FCGrq-1638961806603)(C:\Users\Jack\AppData\Roaming\Typora\typora-user-images\image-20200620150916188.png)]

4.因果图(扩展)

  • 概念:用图解的方法表示输入的各组合关系,写出判定表,进而设计测试用例的一种【黑盒测试】方法。

  • 适用范围:适用于分析程序输入条件的各种组合情况,以及输入和输出之间的依赖关系。

  • 核心

    • 因:条件
    • 果:结果
  • 基本符号(掌握)

    • 恒等(-):条件成立,结果成立。
    • 非(~)NOT:条件成立,结果不成立;条件不成立,结果成立。
    • 或(V)OR:只要有一个条件成立,结果就成立;所有条件都不成立时,结果才不成立。
    • 与/且(^)AND:多个条件必须同时成立,结果成立;只要有一个不成立,结果就不成立。
  • 设计测试用例的步骤

    • 需求分析

    • 画出因果图

    • 将因果图转换为判定表

    • 生成测试用例

案例1:文件修改

如果想对文件进行修改,
   输入的第一列字符必须是A/B,第二列字符必须是一个数字,
   如果第一列字符不正确,则给出信息L;
   如果第二列字符不正确,则给出信息M。

分析过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PljHOaYY-1638961806606)(C:\Users\Jack\AppData\Roaming\Typora\typora-user-images\image-20200620131752682.png)]

  • 小结
    • 输入条件比较少(2,3,4),推荐直接使用判定表。
    • 输入条件比较多(>4),推荐使用因果图。

5.正交法(扩展)

核心思想

  • 用最小的测试用例获得最大的测试覆盖率。

正交表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1gRdbQYv-1638961806608)(.\Materials\正交表概念.png)]

说明

  • k代表因素(输入参数)

  • m叫水平(输入参数的取值)

  • n代表测试用例数

  • 读法:k因素m水平

基于正交表设计测试用例

  • 步骤
    • 需求分析
    • 确定因素与水平(因素:控件名称;水平:每个控件对应的取值)
    • 确定要采用的正交表
    • 将正交表中的字母用文字代替
    • 设计测试用例(一行就是一条测试用例)

案例1:字符属性设置程序

窗体中有多个控件(字体、字符样式、颜色、字号),每个控件有多个取值
字体:仿宋、楷体、华文彩云
字符样式:粗体、斜体、下划线
颜色:红色、绿色、蓝色
字号:20号、30号、40号
列号 字体 字符样式 颜色 字号
试验号
1 仿宋 粗体 红色 20号
2 仿宋 斜体 绿色 30号
3 仿宋 下划线 蓝色 40号
4 楷体 粗体 绿色 40号
5 楷体 斜体 蓝色 20号
6 楷体 下划线 红色 30号
7 华文彩云 粗体 蓝色 30号
8 华文彩云 斜体 红色 40号
9 华文彩云 下划线 绿色 20号

基于allpairs设计测试用例

  • 步骤
    • 需求分析

    • 确定因素与水平(因素:控件名称;水平:每个控件对应的取值)

    • 将确定的因素与水平复制到txt文件中

    • 打开DOS窗口,进入allpairs目录,运行命令:allpairs.exe test.txt > result.txt

    • 根据生成的新文件编写测试用例(一行就是一条测试用例)

案例2:用户筛选按钮

假设有一个用户筛选功能,有3个输入分别是体型、年龄段、性别,
                                       体型有3个取值:胖、适中、瘦;
                                       年龄段有3个取值:老人、青年、儿童;
                                       性别有2个取值:男,女;
请设计测试用例。
TEST CASES
case 体型 年龄段 性别
1 老人
2 青年
3 适中 老人
4 适中 青年
5 儿童
6 老人
7 儿童
8 适中 儿童 ~男
9 青年 ~男

6.场景法(流程图法)

  • 概念:场景法就是模拟用户操作软件时的场景,主要用于测试多个功能之间的组合使用情况。

  • 使用测试阶段

    • 集成测试
    • 系统测试
    • 验收测试
  • 设计测试用例的步骤

    • 需求分析

    • 绘制流程图

    • 设计测试用例(一条流程路径就是一条测试用例)

  • 流程图常用符号

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EolKHMst-1638961806610)(C:\Users\Jack\AppData\Roaming\Typora\typora-user-images\image-20200620132228689.png)]

    • 开始或结束:椭圆

    • 方向或路径:箭头

    • 处理或操作:长方形

    • 判断:菱形

    • 输入或输出:平行四边形

  • 绘制流程图

    • 第1步:确认场景中关键业务步骤

    • 第2步:确定业务之间的先后顺序

    • 第3步:用箭头连接即可

  • 绘制工具

    • Microsoft Visio

    • 软件介绍

    • Visio的安装

      • 以管理员身份运行Visio2003_SP3.exe

      • 默认安装即可,中间不需要修改或填写任何内容

    • Visio的基本使用:

      • 新建
    • 画图

      • 选中—del—删除操作

      • ctrl 鼠标左键 拖拽 画纸边缘 – 扩大画纸

        • ctrl 滚轮 – 放大缩小
        • 组合与取消组合
      • 操作练习

        • 新建一个流程图

        • 熟悉几个主要的组成元素

        • 熟悉visio的两个工具

        • 使用一下Del删除无关元素操作

        • 调整一下纸张大小(Ctrl+鼠标左键)

        • 组合与取消组合操作练习

案例1:电商购物流程

案例2:缺陷跟踪管理流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zUE6odei-1638961806611)(G:/itheima/深圳黑马软件测试就业14期/Day02——测试用例设计/1-课堂资料/image/缺陷跟踪管理流程.png)]


7.错误推测法

  • 概念:利用经验智慧发现程序中可能犯错的地方。

  • 使用场景

    • 重要功能

    • 使用同类型产品

    • 任务急、时间紧、资源少


8.测试用例设计方法总结

  • 具有输入功能,但输入之间没有组合关系==》【等价类】
  • 输入有边界 如长度、类型==》【边界值】
  • 多输入、多输出、输入与输入之间存在组合关系、输入与输出之间存在依赖或制约关系==》【判定表、因果图】
  • 用最少的测试用例获得最大测试覆盖率时 ==》【正交法】
  • 多个功能的组合测试 ==> 【场景法、流程图】
  • 最后推荐使用【错误推测法】来进一步补充测试用例

作业

作业:
1.梳理今日知识点,结合课上知识讲解补充完善今日总结内容,以xmind形式输出
2.继续完善TPShop商城前台【注册】功能测试用例设计并执行编写的测试用例
3.TPShop商城后台【添加会员】功能测试用例设计并执行编写的测试用例
说明:
后台访问地址:http://localhost/Admin/Admin/login
用户名:admin
密码:123456
测试功能:【系统】==》【会员】==》【会员列表】==》点击【添加会员】按钮

今日总结

  • 能够结合案例找出边界值的上点、离点和内点
  • 能够使用边界值方法设计(新浪邮箱登录案例)测试用例
  • 能够说出边界值方法的适用场景
  • 能够使用判定表方法设计(文件修改案例)测试用例
  • 能够说出判定表方法的使用场景
  • 能够说出场景法的应用场景
  • 能够说出错误推断法的应用场景
上一篇:零基础Python完全自学教程15:Python中的列表


下一篇:第二章 计数循环p36_2_3_for_loop_sum.py