【软件测试】——编写测试用例的基本方法
文章目录
- 1、按开发阶段分
- 2、按测试组织实施
- 3、按是否运行
- 4、按是否手工划分
- 5、按是否查看代码
- 6、按测试对象划分
1、按开发阶段分
具体参考博文单元、集成和系统测试
1、单元测试
1、概念
是对软件组成单元进行测试。目的是检验软件基本组成单位的正确性测试的。对象是软件设计的最小单位:模块又称为模块测试。
2、主要内容
目标
:确保模板被正确的编码依据
:详细设计描述过程
:经过设计、脚本开发、执行、调试和分析结果等环节执行者
:开发人员和测试人员共同完成测试方法
:白盒测试测试内容
:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
2、集成测试
1、概念
将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。
2、测试内容
测试阶段
:一般单元测试之后进行测试对象
:模块间的接口测试人员
:白盒测试工程师或开发工程师测试依据
:单元测试的模块+概要设计文档测试方法
:黑盒测试与白盒测试相结合测试内容
:集成功能测试、接口测试、全局数据结构测试、资源测试、任务优先级冲突测试和性能和稳定性测试。
3、系统测试
1、概念
包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。
2、测试内容
- 测试阶段:集成测试通过之后
- 测试对象:整个系统(包括软、硬件)
- 测试人员:黑盒工程师
- 测试依据:需求规格说明文档
- 测试方法:黑盒测试
- 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性
4、验收测试
1、概念
验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买方展示该软件系统满足原始需求。
2、测试内容
测试阶段
:系统测试通过之后测试对象
:整个系统(包括软硬件)测试人员
:主要是最终用户或者需求方测试依据
:用户需求、验收标准测试方法
:黑盒测试测试内容
:同系统测试(功能…各类文档等)
2、按测试组织实施
1、a测试
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。开发和测试人员不参与
2、β测试
Beta测试是一种验收测试。Beta测试由软件的最终用户们在一个或多个场所进行。
他们的主要有:
测试的场所不同
:Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测试。用户数量
:Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。beta测试的环境是不受开发方控制的, 用户数量相对比较多,时间不集中测试顺序
:alpha测试先于beta测试执行。通用的软件产品需要较大规模的beta测试,测试周期比较长。
3、第三方测试
介于开发方和用户方间的组织的测试。
3、按是否运行
1、静态测试
1、概念
静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。 对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。
2、测试内容
检查项
:代码风格和规则审核;程序设计和结构的审核;业务逻辑的审核;走查、审查与技术复审手册。静态质量
:度量所依据的标准是ISO9126。在该标准中,软件的质量用以下几个方面来衡量,即功能性 (Functionality)、可靠性(Reliability)、可用性(Usability)、有效性(Efficiency)、可维护性 (Maintainability)、可移植性(Portability)。
2、动态测试
通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮。一般是先构造测试用例、执行程序、分析程序的输出结果。
4、按是否手工划分
1、手工测试
1、概念
由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。
2、特点
优点:自动化无法替代探索性测试、发散思维结果的测试
缺点:执行效率慢,量大易错。
2、自动化测试
把以人为驱动的测试行为转化为机器执行的一种过程。 一般包括功能测试自动化、性能测试自动化、安全测试自动化。
5、按是否查看代码
1、黑盒测试
1、概述
黑盒测试又叫做功能测试或数据驱动测试,他是在已知产品所具备的功能,通过测试来检测是否能正常使用。
核心就在于完全不考虑程序内部结构和内部特性。只检查程序功能是否按照需求规格说明书的规定正常使用。如下图所示:
主要发现以下情况:
- 是否有不正确或者遗漏了的功能
- 在接口上,能否正确的接受输入数据,能否产生正确的输出信息
- 访问外部信息是否有错
- 性能上是否满足要求
- 界面是否错误、是否不美观
- 初始化或终止错误
2、测试方法
2.1等价类划分方法
(1)概念
把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。其中划分成了有效等价类和无效等价类。
- 有效等价类:有意义的、合理的输入数据构成的集合。可检查程序是否实现了规格说明中所规定的功能和性能
- 无效等价类:与有效等价类的定义相反。
(2)确定等价类的方法
- 输入条件规定了取值范围或值的个数
【举个栗子】
- 输入条件规定了输入值的集合或者规定了“必须如何”条件的情况下。
- 规定了输入数据的一组值,并且程序要对每一个输入值分别处理。
【举个栗子】
- 规定了输入数据必须遵循的原则
【举个栗子】
2.2边界值分析法
(1)概念
对输入或输出的边界值进行测试的一种黑盒测试方法。一般就来自等价类的边界。但是他们两者又有一些区别:
- 边界值分析是要从等价类的每个边界都作为测试条件
- 在考虑输入条件的同时也要考虑输出空间产生的测试情况。
(2)确定边界值的方法
输入条件规定了值的范围。
【举个栗子】
输入条件规定了值的个数。
【举个栗子】
如果程序的规格说明给出的输入域或输出域是有序集合
程序中使用了一个内部数据结构
分析规格说明,找出其它可能的边界条件
2.3判定表方法
(1)概述
当输入是由多个因素构成的,直接对输入条件进行组合设计。一个判定表由“条件和活动”两部分组成。
(2)判定表的组成
判定表的元素主要有如下五个:
- 条件桩:列出问题的所有条件
- 动作桩:列出可能针对问题所采用的操作
- 条件项:针对所有条件的具体赋值
- 动作项:列出在条件项(各种取值)组合情况下应该采取的动作
- 规则:任何一个条件组合的特定取值及其相应的执行的操作。
【举个栗子】
还可以对某些情况进行简化,简化过后的情况如下:
2.4因果图法
(1)概述
分析规格说明文档描述的哪些原因(输入条件),哪些是结果(输出条件)给每个原因和结果赋予一个标识符。然后根据因果图创建判定表将复杂的逻辑关系和多种条件组合很具体明确的表示出来。
基本符号如下:
关系 | 含义 | 图示 |
---|---|---|
恒等 | 若a=1,则b=1 |
![]() |
非 | 若a=1,则b=0 |
![]() |
或 | 若a或b或c=1,则d=1 |
![]() |
与 | 若a=b=1,则c=1 |
![]() |
原因和原因之间,结果与结果之间可能存在的约束条件,约束条件符号如下:
关系 | 含义 | 表示 |
---|---|---|
互斥 | 表示不同时为1,即a,b中至多只有一个1 |
![]() |
包含 | a、b、c中至少有一个应为1,a、b、c不能同时为0 |
![]() |
唯一 | 表示a、b中必须有一个且仅有一个为1 |
![]() |
R要求 | 如果a=1,b也必须为1,即不可能a=1且b=0. |
![]() |
M屏蔽 | 对于输出条件的约束只有M约束。屏蔽:如果结果a为1,则b强制为0 |
![]() |
(2)案例分析:618活动
首先,来明确一下设计步骤:
- 分析所有可能的输入和可能的输出
- 找出输入与输出之间的关系
- 画出因果图
- 把因果图转换成判定表
- 把判定表对应到每一个测试用例
【举个栗子】淘宝618活动,提单已提交,订单合计金额大于300元或有红包,则进优惠。
1、首先分析所有可能的输入输出
- 输入:订单已提交、金额大于300、有红包
- 输出:优惠、无优惠
2、找出输入与输出之间的对应关系
- 订单已提交,订单金额大于300元,则优惠
- 订单已提交,订单金额小于等于300,无红包,不优惠
- 订单已提交,有红包,则优惠
- 订单已提交,订单金额大于300元,有红包则优惠
- 订单未提交,不优惠
3、为了方便画出因果图和判定表,对所有输入输出编号如下:
编号 | 事件 |
---|---|
1 | 订单已提交 |
2 | 订单金额大于300 |
3 | 有红包 |
21 | 优惠 |
22 | 不优惠 |
4、画出因果图
5、画出判定表,有3个条件,输出两个取值,所以表的列数为2x2x2=8
因为有些条件可以合并,5包含了6、7、8测试用例,所以最终的测试用例是1、2、3、4、5。
2.4场景设计法
用事件触发来控制流程,事件触发时的情景形成了场景,同一事件不同的触发顺序和处理结果就形成了事件流。
典型的应用就是用业务流把各个鼓励的功能点串起来,为测试人员建立整体业务感觉,从而避免陷入功能细节忽视业务流程要点的错误倾向。
【举个栗子】登录
2、白盒测试
(1)概述
主要是针对被测单元内部是如何进行工作的测试。遵循的原则主要包括:
- 保证一个模块中的所有独立路径至少被测试一次
- 所有逻辑值均测试真和假两种情况
- 检查程序的内部数据结构、保证其结构的有效性
- 在上下边界及可操作范围内运行所有循环
(2)具体方法
- 语句覆盖:设计若干测试用例,运行被测程序,使程序中的每个执行语句至少被执行一次
- 判定覆盖:使得程序中每个判断取真和取假分支至少经历一次。
- 条件覆盖:使得每个判断每个条件的可能取值至少满足一次
- 判定条件覆盖:使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次
- 条件组合覆盖:每个判断的所有可能的条件取值组合至少出现一次
- 路径覆盖:覆盖所有的路径
- 基本路径测试法:依据代码流程图画出控制流图设计测试用例覆盖每条基本路径。
3、区别
白盒测试 | 黑盒测试 | |
---|---|---|
优点 | 增大代码覆盖率、提高代码质量、发现代码中隐藏的错误 | 1、比较简单 2、与软件内部实现无关 3、从用户角度出发,容易知道用户会用到哪些功能遇到哪些问题 4、基于软件开发文档知道软件实现了文档中的哪些功能5、在做自动化测试的时候方便 |
缺点 | 1、不可能测试所有运行路径2、基于代码可能会漏掉一些需求 3、系统庞大时,测试开销会非常大 | 1、不可能测试所有路径,大概能达到代码量的30% 2、自动化测试的复用性较低 |
6、按测试对象划分
1、业务测试
是测试人员把系统各个模块串接起来运行、模拟真实用户实际的工作流程,满足用户需求定义的功能来进行测试的 过程。业务测试关注需求和用户
2、界面测试
测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是 否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正 确,命名是否统一,页面是否美观,文字、图片组合是否完美等。
3、容错性测试
1、概念
检查软件在异常条件下自身是否具有防护性的措施或某种灾难性恢复的手段。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。
2、测试方法
- 输入异常数据或进行异常操作,以检验系统的保护性。如果系统的容错性好,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。
【举个栗子】
1、输入错误的数据类型,如“猴”年“马”月
2、输入定义域之外的数值,上海人常说的“十三点”也算一种 - 灾难恢复性测试。通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失,系 统和数据是否能尽快恢复
4、文档测试
1、概念
国家有关计算机软件产品开发文件编制指南中共有14 种文件,可分为3 大类。
开发文件
:可行性研究报告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗。用户文件
:用户手册、操作手册,用户文档的作用:改善易安装性;改善软件的易学性与易用性;改善软件可靠性;降低技术支持成本。管理文件
:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告
2、文档测试的方法
主要要检查文档的正确性
(不要把软件的功能和操作写错,也不允许文档内容前后矛盾)、完备性
(不要漏掉关键内容)、易理解性
(文档不能含糊、要清晰)、一致性
(检查产品功能描述是否自相矛盾,与其他功能有没有冲突)
5、兼容性测试
1、概念
兼容性主要是指软件之间能否很好的运做,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会有影响,导致系统的崩溃。
2、测试方法
- 平台测试
- 浏览器测试
- 软件本身能否向前或者向后兼容
- 数据兼容性测试
6、易用性测试
易用性(Useability)是交互的适应性、功能性和有效性的集中体现。易用性属于人体工程学的范畴,人体工程学(ergonomics)是一门将日常使用的东西设计为易于使用和实用性强的学科。
7、安装测试
测试程序的安装、卸载。典型的是app的安装、卸载
8、安全测试
安全测试是一个相对独立的领域,需要更多的专业知识。例如web的安全测试,需要熟悉各种网络协议TCP\HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等。从软件来说,熟悉各种攻击手段,例如SQL注入、Xss等。
作为web入门测试,可以IBM的appscan。
9、性能测试
具体参考博文单元、集成和系统测试在系统测试中有详细的讲解。
10、内存泄露测试
电脑打开的东西太多,机器反应慢甚至死机,重启之后就好了,过会同样的问题出现。
【软件测试】——编写测试用例的基本方法相关推荐
- 软件测试(4) 测试用例和设计方法
文章目录 1 测试用例 1.1 测试用例的定义 1.2 用例设计和编写的作用 2 测试用例编写注意事项 3 黑盒测试用例设计方法 3.1 测试数据选择 等价类划分法 边界值分析法 实战案例 3.2 测 ...
- 【软件测试】测试用例的设计方法
文章目录 1. 测试用例的概念 2. 设计测试用例的好处 3. 基于需求设计测试用例 3.1 功能性需求 3.2 非功能性需求 4. 设计测试用例的具体方法 4.1 等价类 4.2 边界值 4.3 错 ...
- 【软件测试】 测试用例的设计方法大全
1.测试用例的八要素 用例编号:用于标识当前的用例,具有唯一性和易识别性 测试项目:对当前测试用例的子项有进一步说明的作用 测试标题:简单说明测试的目的,便于他人理解 重要级别:一般分为高.中.低三个 ...
- 编写测试用例的基本方法之边界值
一般边界值分析是因为程序开发循环体时的取数可能会因为<,<=搞错. 比如下面代码: for(int i = 0;i <100; i ++){ int j = i+1; System. ...
- 测试用例概念及组成,编写测试用例的方法
测试用例: 1. 测试用例的概念和作用: (1):概念:对一个测试工程师来说,测试用例的设计编写是一项必须掌握的能力,是为某个业务目标,而编制的一组由测试输入,执行条件以及预期结果组成的案例. (2) ...
- 测试用例的特性以及编写测试用例的方法
测试用例的特性以及编写测试用例的方法 测试用例的定义: 什么是测试用例? 测试用例的特征: 编写测试用例的好处: 测试用例的作用: 测试用例的4个特性 测试用例通常包括以下几个组成元素: 编写测试用例 ...
- 【软件测试系列三】《测试用例编写原则与设计方法》
1. 概述 1.1. 目的 1.2. 使用范围 2. 测试用例编写原则 2.1. 系统性 2.2. 连贯性 2.3. 全面性 ...
- 测试用例编号_怎样编写测试用例更完整,更能提升工作效率?来试试这套方法!...
首先,我们需要知道测试用例是什么,测试用例(testcase)是为了某个特殊目标而变质的一组测试输入.执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求. 测试用例的编写是要结合需求 ...
- 亲测快捷高效的编写测试用例方法
目录 一.什么是测试用例? 二.设计用例是否有必要? 三.设计用例的益处? 四.一定要写测试用例吗? 五.测试用例怎么写? 六.用例必备4个方面? 七.用例设计理念? 八.没有需求文档,如何测试,如何 ...
最新文章
- SQLite header and source version mismatch解决方案
- python的模块文档_python查看模块文档
- React进阶—性能优化
- asp.net程序中最常用的三十三种编程代码标签
- 终于在VirtualBox中装好了Mac OS的虚拟机了!(
- mysql timestamp 当前_技术分享 | MySQL 复制那点事 - Seconds_behind_Master 参数调查笔记
- 如何在 Flink 1.9 中使用 Hive?
- cad学生版和教育版_针对学生和教育者的3个版权提示
- linux中tar命令怎么用,linux tar命令使用详解
- 语音合成IC与语音IC的两三事
- ubuntu CA安装 证书申请
- 前后端程序员工作简单概述
- 未转变者3.x局域网服务器,未转变者局域网怎么创建服务器
- unable to find account data for the submitted AuthenticationToken
- 脚本小子进阶笔记1-windows基础
- 2018年买华硕笔记本 安装 Fedora 28,pcieport errors flood the journal
- 逆向爬虫28 webpack扣代码
- CAD2010 为了保护_【行业资讯】多相复合保护层制备高稳定锂金属负极
- 宏转录组方法_Cell:基因表达的改变和群落的更替塑造了全球海洋宏转录组
- 将 JPG 或 PNG 图像转换为 Dicom
热门文章
- mysql数据库设计255_数据库中的 varchar(255) 原因剖析
- 计算机应用 教学成果,教学成果
- 如何使用CAD编辑软件在图纸中添加文字
- 跨域通信postMessage
- 【nodejs】import、export、exports、module.exports
- C++中变量的生命周期
- 微信红包分配算法原理
- 李洪超 硬件工程师_Find X2 120Hz超感屏背后 是OPPO工程师们的“偏执”与浪漫
- 用计算机弹烟火数字,一种用数字电路实现的电子烟花的设计
- 安踏联合清华大学打造全球运动装备创新设计大赛;雀巢与沃尔玛供应链可持续发展战略合作初结硕果 | 知消...