学习笔记:软件测试理论7.25小总结_案例:交通一卡通自动充值软件系统,利用因果图法和决策表法完成测试,作业以附-程序员宅基地

技术标签: # 软件测试  

什么是软件测试?*

软件测试是在现有软件中寻找缺陷的过程。

IEEE (1983) 729 软件缺陷一个标准的定义:

从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;

从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。

开发做的事情:

概要设计和详细设计->数据字典->流程图->数据字典

测试要做的事情:

测试计划->测试方案和测试用例->测试执行->测试报告

在这里插入图片描述

  1. 评审会议测试在每个阶段做什么?从哪个阶段开始介入/**

需求分析

文档评审

**测试文档:**测试计划 测试方案 测试用例 测试报告
**其他文档:**安装说明书 用户操作手册

**软件开发和软件测试的关系

在这里插入图片描述
在这里插入图片描述

V模型和W模型

软件测试V模型
在这里插入图片描述

**缺点:**测试进入比较晚(局限性)

**单元测试和集成测试:**检测程序的执行是否满足软件设计的要求

**系统测试:**检测系统功能是否达到系统要求的指标

**验收测试:**确定软件的实现是否满足用户需求或合同要求

软件测试W模型(双V模型)

在这里插入图片描述

测试人员进入阶段:

1.用户需求:了解需求范围、目的、背景,为验收测试做准备

2.需求分析与系统设计:学习并分析需求,编写测试计划,为系统测试做准备

3.概要设计:搭建测试用例框架,细化测试计划,为集成测试做准备

4.详细设计:细化测试用例框架,为单元测试做准备

5.编码:编写测试用例,进行单元测试(对一个模块进行内部测试)

6.集成’集成测试:(依据:集成测试用例,从编码阶段获取,汲取测试用例进行集成测试)

7.实施’系统测试:(1.搭建环境 2.数据准备 3.执行测试 4.缺陷管理 5.编写测试报告)

8.交付’验收测试:配合用户完成测试,指导用户使用

优点

1.测试与开发同步进行

2.测试的对象不仅是程序,还包括需求和设计

3.尽早发现软件缺陷,可降低软件开发的成本

缺点(局限性)

​ 需求、设计、编码等活动被视为串行的;测试和开发活动也保持着一种线性的前后关系,上一阶段 完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。对于当前软件开发复杂多变的情况,W模 型并不能解除测试管理面临着困惑。

什么是单元测试?
单元测试是开发人员编写,用于测试自己的代码在特定条件下的检测,验证代码的正确性。
单元测试作用。
单元测试是为了保证代码的正确性,代码开发比较复杂,没有人可以保证自己的代码没有任何问题,功能也完整可用,需要通过不同的途径来验证代码的正确性。单元测试就是其中的方式之一。

集成测试,系统测试,验收测试
在这里插入图片描述

Alpha测试和Beta测试

在这里插入图片描述在这里插入图片描述

**ps:**随机测试由测试经理和产品经理(验收测试)

黑白灰盒测试

在这里插入图片描述

按是否需要运行代码(状态划分)

在这里插入图片描述

按软件特性分类

在这里插入图片描述

按照特性划分:功能测试、性能测试、安全性测试

BA主要侧重哪方面的测试?

UI和用户体验

面试经常可能会问的:

什么是验收测试?

Alpha测试和Beta测试

V模型

测试工程师的职业通道

业务 沟通技巧 测试技能

接口测试 自动测试 性能测试 安全测试 专项测试

测试经理 BA 产品经理 猎头

售前 售后 技术支持

SQA 软件质量保证

流程优化和管理

一,测试用例的概念

​ 测试用例主要记录了测试的过程,步骤,输入的数据,预期结果等内容。它是在执行测试之前由测试人员编写的指导测试的重要文档。

​ 解决要测什么,怎么测和如何去衡量的问题。

测试用例的用途

​ 防止遗漏:使软件测试的实施重点突出,目的明确,确保需求功能不被遗漏。

​ 版本重复测试:快速正确的进行版本重复测试

​ 监督过程:可以准确,有效的评估测试的工作量

​ 评估结果:对产品进行评估,对测试完成情况进行评价

​ 提高效率:避免盲目测试

​ 缩短周期:版本更新和升级时,只需修正少部分用例,资源服用

参考相关文档

​ 需求文档

​ 开发文档

​ 用户手册

​ 如果有软件的早期版本,尽快熟悉软件的使用

​ 与相关人员讨论

常见测试用例模板

​ Word格式模板

​ Excel格式模板

​ 工具格式模板

常见的测试方法如下:

  1. 等价类
  2. 边界值
  3. 因果图
  4. 判定表驱动法
  5. 正交实验法
  6. 功能图法
  7. 场景实验法
  8. 错误推断法
  9. 探索式测试

测试方法的选择:
1.先关注业务流程和业务逻辑是否正确,考虑场景法。
2.需要输入的地方,考虑等价类划分法,将无限测试转化为有限测试。
3.在任何情况下都要采用边界值分析法,这个测试方法发现错误的能力最强。
4.若输入有组合情况,一开始就要考虑因果图制作出判定表进行测试。
5.对于参数配置类的软件。考虑使用正交排列法,以最少的测试用例获得较大的覆盖率。
6.采用错误推断追加法增加测试用例。

1.等价类

等价类划分的基本概念

​ 等价类划分属于典型的黑盒测试方法,根据程序对数据的要求,把程序的输入域划分若干个部分,区分出那些数据是有效的,那些数据是无效的,从每个部分中选取少数代表性数据作为测试用例。这样,每一类的代表性数据在测试中的作用都等价于这类中的其他值。

有效等价类:

​ 对程序的规格说明有意义,合理的输入数据集合。

​ 如果用户输入有效等价类中的数据,程序应该正确计算,执行。

无效等价类:

​ 对程序的规格说明不合理的或无意义的输入数据集合。

​ 如果用户输入无效等价类中的数据,程序应该给予错误提示或者根本不允许用户输入的数据。

2.边界值:

在这里插入图片描述

在这里插入图片描述

(1)如果输入条件规定了值的范围,则应取边界点数据,以及边界点两边的数据进行测试。

例如:

两位整数加法器数的范围为-99——99,则应测试-99,-98,-100和99,98,100(注意:有些公司规定需要测试边界点的数据和刚刚超过边界点的数据,即-99、-100和99、100)。

(2)如果输入条件规定了值的个数,则用最大个数及其两边的点、最小个数及其两边的点作为测试数据。

需求:

​ 第一个数和第二个数都是只能输入-99到99之间的整数

​ 对于输入的小于-99的数据或者大于99的数据,程序应给出明确提示

​ 对于输入的小数、字符等非法数据,程序应给出明确提示

在这里插入图片描述

**有效等价类:**大于等于-99 并且小于等于99的整数一对

-99,-98,-100和99,98,100

无效等价类: 小于-99的整数、大于99的整数、小数、字符

全部覆盖(整数:超出范围; 小数; 字符;空格)

ps:

​ 特殊字符:‘ “ 中英文全角半角数字普通字符

题目二:

在这里插入图片描述

**有效类:**大于等于1小于等于40字节数

**无效类:**小于1大于40字节数,字符中包含 / : * ? " " < >

题目三:

2、万年历查询软件,要求用户输入以年月日表示的日期,然后系统会换算出该日期的农历。假设日期限定在1900年1月1日到2050年13月31日。日期由8位数字字符组成,前4位表示年,中间2位表示月,最后2位表示日期。其中4、6、9、11月有30天。(excl)

二、因果图法和判定表法

1、找出所有的输入条件

2、明确所有的输出结果

3、明确所有输入条件之间的制约关系以及组合关系

​ 哪些条件不能组合在一起

​ 哪些条件可以组合在一起

4、明确所有输出之间的制约关系以及组合关系

​ 哪些输出结果不能组合在一起(不能同时输出)

​ 哪些输出结果可以组合在一起(可以同时输出)

5、找出什么样的输入条件组合会产生哪种输出结果

6、根据因果图,写出判定表

7、根据判定表设计测试用例

题目一:

某需求文档中有这样的说明: 第一列字符必须是A或者B,第二列字符必须是一个数字,在此情况下进行文件的修改。 如果第一列字符不正确,则给出信息L; 如果第二列字符不是数字,则给出信息M。

使用因果图法和判定表设计测试用例基本步骤:

在这里插入图片描述

题目二:

在这里插入图片描述

原因:

1,售货机有零钱找

2,投入1元硬币

3,投入5角硬币

4,押下橙汁按钮

5,押下啤酒按钮

结果:

21,售货机(零钱找完)灯亮

22,退还一元硬币

23,退还5角硬币

24,送出橙汁饮料

25,送出啤酒饮料

题目三:

需求如下:

交通一卡通自动充值软件系统需求

系统只接收50元或100元纸币,一次充值只能使用一张纸币,一次充值金额只能为50元或100元。

若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功;

若输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元;

若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元;

若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功;

若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,并提示错误;

输入:

投50元

投100元

充值50

充值100

投纸币之后在规定时间选择充值按钮

充值之后不输入纸币

输出:

充值成功

余额不足,并退回50

充值成功,找零50

退回50,提示错误1

退回100,提示错误1

提示错误2

使用场景法编写测试用例

场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。当拿到一个测试任务时,我们并不是先关注某个控件的边界值、等价类是否满足要求,而是先要关注它的主要功能和业务流程是否正确实现,这就需要使用场景法来完成测试。当业务流程测试没有问题,也就是该软件的主要功能没有问题时,我们再重点从边界值、等价类等方面对控件进行测试

判定表驱动法

一、应用场合

在界面中有多个控件,控件之间有多种组合关系,如果组合的数量巨大(一般超过20种),没有必要将所有组合都测试,可以通过正交排列法将组合中最优,最少的组合进行测试。

问题:判定表和正交排列法的异同?

都可以测试控件之间的组合情况

判定表适合测试组合数量比较少(一般少于20种组合的会选择判定表)

正交排列法适合测试组合数量较多的(一般多于20种)

判定表要分析控件之间的组合和限制关系,而正交排列表只需分析控件间组合

正交排列法:
定义:正交排列法能够使用最小的测试过程集合获得最大的测试覆盖率。当可能的输入数据或者输入数据的组合数量很大时,由于不可能为每个输入组合都创建测试用例,可以采用这种方法。

正交试验设计:
思想:是研究多因素多水平的一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交试验设计是一种基于正交表的、高效率、快速、经济的试验设计方法。

在这里插入图片描述

正交表的行数n的计算公式为,n=k(m-1)+1*

正交表集合**

http://support.sas.com/techsup/technote/ts723_Designs.txt

正交排列法使用步骤:
在这里插入图片描述

例题:

23 n=4

000

011

101

110

此处0,1是对可能值的编号

例如,我们可以将(0,1)分别映射为(女,男)(1班,2班)(及格,不及格)

按照上面的格式,

000:女 1班 及格

011:女 2班 不及格

101:男 1班 不及格

110:男 2班 及格

这就是我们所得到的正交表。

实例:确定一个人的基本信息,包括性别(男、女、未知)、年龄(老年、中年、青年)、文化程度(高等、中等、低等)、收入情况(高收入、中收入、低收入),使用正交排列法进行设计测试用例。
步骤:
1.(根据所测程序中控件的个数以及每个控件的取值个数,选取一个合适的正交排列表
):

4个控件:性别、年龄、文化程度、收入情况
每个控件有三个取值
选择合适的正交排列表(L9(34)):

在这里插入图片描述

2.把控件列举出来对取值进行编号。
在这里插入图片描述

3.把控件和取值进行填充到正交排列表中。
在这里插入图片描述

注意:若正交表没有需要的,则选择相对多一些的正交表。

正交表的局限性:

只能找到在附录中给出的表。
若没有正交表则使用混合正交表。
混合正交表:
使用特定工具allpairs.exe
进行改造上一个实例:实例中的性别应该只有两个值:男和女,利用allpairs.exe进行生成混合正交表,

在这里插入图片描述
最后依据正交表生成测试用例。

PS:属性设置测试,兼容性测试常用正交排列法

1、笔试题:

1)生命周期模型包括哪些阶段?你们开发的模型是什么?简化文字

问题定义及规划-需求分析-设计-编码测试-运行维护

敏捷开发模型

2)测试流程包含哪些阶段?

需求分析–编写测试用例-评审测试用例-搭建测试环境-等待开发研发完成,提交测试包进行测试(酱油期)-部署测试包-冒烟测试(预测)-执行测试用例-bug跟踪处理(提交及回归bug)……N轮-版本上线-面向客户使用

2、面试题

1)你们公司的开发流程是怎么样的?

了解需求概要设计详细设计编码打包提交测试部-等待测试提交bug-修复bug-等待测试回归bug-……N轮-版本上线-面向用户使用

2)你们公司的测试流程是怎么样的?各个阶段的输出是什么?

测试需求阶段:了解测试需求;

测试计划阶段:编写测试计划;

测试执行阶段:编写测试用例;

测试执行阶段:提交bug到问题库,直到没有重大bug,测试结束,完善测试用例;

测试评估阶段:确认是否可以上线,编写测试报告

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_26086231/article/details/107619900

智能推荐

ssm上传文件获取路径_又拍云:文件上传+下载+自定义下载路径(SSM+AJAX+JFileChooser)...-程序员宅基地

文章浏览阅读196次。这一篇是前几篇功能的总结http://blog..net/qq_36688143/article/details/79007120http://blog..net/qq_36688143/article/details/79007067http://blog..net/qq_36688143/article/details/78871406http://blog..net/qq_36688143/..._ssm设置下载路径

5G 核心网 PDU Session Release 信令流程_5g信令流程详解-程序员宅基地

文章浏览阅读1.4w次,点赞7次,收藏60次。下面来整理一下 TS 23.502 中的 UE or network requested PDU Session Release for non-roaming and roaming with local breakout 首先是信令流程图:接着是信令流程图的解读: 为什么会有PDU Session Release 流程呢?PDU Session..._5g信令流程详解

在Linux服务器上运行机器学习/深度学习python程序_linux 怎么跑python ai计算-程序员宅基地

文章浏览阅读6.3k次,点赞10次,收藏71次。日常如果我们的个人电脑满足不了某些机器学习/深度学习程序运行需求的话,一般需要在实验室或者公司服务器上跑自己的代码,这里介绍一下如何在linux服务器上运行机器学习/深度学习python程序。首先使用SecureCRT或者Xshell这种远程登录服务器软件登录你的实验室/公司服务器。由于一般用户不会获得root权限,而且系统里的Python版本一般都比较低或者一般都会缺失某些机器学习/深度学习包,那我们就需要在自己的用户文件夹下创建属于自己的虚拟环境。首先当然是要下载安装Anaconda啦。(版本和_linux 怎么跑python ai计算

layui 富文本编辑 c# mvc 图片上传服务接口_c#mvc如何获取layui的富文本编辑器-程序员宅基地

文章浏览阅读351次。layui 富文本编辑 c#_c#mvc如何获取layui的富文本编辑器

C++ 函数类型(虚函数...)_虚函数 c++ 分类-程序员宅基地

文章浏览阅读538次。http://blog.csdn.net/acorld/article/details/8860397_虚函数 c++ 分类

Ubuntu 16.04 插拔USB网卡后1分钟或2分钟后网络断开问题_modemmanager[7773]: <info> couldn't check support -程序员宅基地

文章浏览阅读658次。USB Tethering keeps disconnectingUSB Tethering keeps disconnectingAsk QuestionAsked4 years, 8 months agoActive1 year agoViewed17k times147I'm trying to connect via USB tethering from my LG G4. I have Ubuntu 16.04The tethering ..._modemmanager[7773]: couldn't check support for device at '/sys/device

随便推点

修改idea工具默认版本JDK_idea设置默认jdk版本-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏7次。修改idea工具默认版本JDK_idea设置默认jdk版本

PCL点云处理之基于曲率的条件滤波 (一百四十六)_基于点的曲率滤波-程序员宅基地

文章浏览阅读466次。曲率是描述点云局部特征的重要数值,通常在建筑物边缘以及树木位置的点云曲率较大,而在地面等平面内部点云的曲率较小。设置合理的曲率阈值可以快速区分这两部分点云,条件滤波器是PCL内部灵活的滤波器,可以人为设置滤波条件,因此将二者结合,基于曲率条件进行滤波,得到符合自己理想的点。_基于点的曲率滤波

[QtWidget]Qt子窗口嵌入父窗口_qt widget大小绑定父窗体-程序员宅基地

文章浏览阅读3.3k次。1. 子窗口构造函数设置setWindowFlags(Qt::CustomizeWindowHint|Qt::FramelessWindowHint);hide();this->setParent(parent);2. 父窗口调用显示子窗口假设子窗口为ChildWidgetChildWidget *widget = new ChildWidget(this);widget-&..._qt widget大小绑定父窗体

DevExpress表格控件(GridView、GridControl)使用小结_this.gridcontrol1.datasource-程序员宅基地

文章浏览阅读7.7k次,点赞8次,收藏39次。GridControl创建表格1.点击VS“工具箱”的GridControl,在窗体上添加此控件;2.点击“RunDesigner”按钮,进入表格设计界面,点击“Columns”,添加列;3.在“Column properties”列属性中,“FileName”列字段(要与绑定的数据DataTable中的字段名一致),"Cation"(列显示的文字)“,设置完成则创建一个..._this.gridcontrol1.datasource

装系统的心得_计算机系统安装心得-程序员宅基地

文章浏览阅读911次。今天同学的电脑坏了,在群里面喊了,并附上截图,截图长这样没遇到过这样的情况,是个妹子我就想着问问情况帮忙,我给那个同学发了个私信,同学qq电话回我,问我能否可以下去看看,我就下去了。我最近也在想将笔记本上的win10改为win7,感觉win10用着实在不顺畅,各种出毛病,加之在系统上用过office的破解软件,之后IE浏览器、onenote、outlook等就再也用不了了。笔记本是独显,最_计算机系统安装心得

ValueError: Unrecognized configuration class <class transformers_modules.Qwen-7B-Chat...解决方案_valueerror: unrecognized configuration class <clas-程序员宅基地

文章浏览阅读5.6w次,点赞14次,收藏12次。本文主要介绍了ValueError: Unrecognized configuration class _valueerror: unrecognized configuration class

推荐文章

热门文章

相关标签