软件测试---功能分解、等价类、边界值、因果图、错误推测、正交实验、场景法

本文主要是介绍软件测试---功能分解、等价类、边界值、因果图、错误推测、正交实验、场景法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、黑盒测试

1、功能分解法

功能分解法就是把软件需求中的每一个功能加以分解,分解为功能单位,以功能单位为对象进行测试用例涉及。

例子:用户管理系统可以分为如下,当然也可以进一步往下分解。

根据上面的功能分解图可以对分解出来的最底层功能单元逐个进行测试用例设计和测试。同时可以从功能单元是否全部实现来判断上层功能的完备性。

2、等价类划分法

优点:每一个输入域都考虑到了。

缺点:产生的测试用例过多,可能产生一些无效的测试用例,也可能有一些特殊的点没有考虑。

等价类划分法是将需求中功能输入要求进行分解,将输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例,每一类的代表性数据在测试中的作用等价于这一类中的其它值。等价类划分法必须在分解输入要求的基础上列出等价类分解表,划分出有效等价类及无效等价类。

a) 有效等价类:对于功能需求来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验软件是否实现了软件需求规格说明中所规定的功能。

b) 无效等价类:与有效等价类相反。对于功能需求来说是非法的,但有意义的数据集合。利用无效等价类可检验软件在功能实现的基础上是否对异常输入进行了保护。

 例子:

 1)、创建等价类表(分析过程)

 2)、设计测试用例

一条测试用例尽可能覆盖多的有效等价类;每一个无效等价类都必须有一条测试用例覆盖他,在有一个无效等价类的时候,别的输入就必须是有效等价类

3、边界值分析法

03.黑盒测试-边界值-【软件测试实战教程】_哔哩哔哩_bilibili

等价类法中例子,用边界值法进行补充和修改之后

边界值分析法是针对软件边界情况进行验证。通常需要选择边界内、边界上及边界外的值对程序进行验证。对于边界值分析法主要步骤如下:

a) 分析软件文档,找出功能需求中所有可能存在的边界条件。

b) 对于边界条件,找出边界内、边界上及边界外的输入数据。

c) 根据输入数据设计测试用例。

4、因果图法

视频讲解:04.黑盒测试-因果图-【软件测试实战教程】_哔哩哔哩_bilibili

因果图法是从软件需求规格说明描述的自然语言中找出功能的因(输入)和果(输出或状态改变),通过因果图转换为判定表,根据判定表设计测试用例。

适用场景:1、需要描述多种条件的组合;2、不同组合会产生多个动作

  

 

例子:视频的11:40秒

 

(上图中 c和d互斥是错的,应该b和d互斥,画图可以省略)

然后把上面的图转化为表格的形式,如下:

接着分分析其余的情况: 

转化为判定表如下:

5、判定表法

05.黑盒测试方法论-判定表-【软件测试实战教程】_哔哩哔哩_bilibili

 

 

1)、确定条件桩

2)、确定动作桩

 判定表分析:

 3)、确定初始判定表

4)、简化判定表 

前八个只要条件桩c1=0,动作装A1=1,因此可以合并;还有12、14、15项时,不可能的结果我们就不用测试。最后剩下六条,然后按照每一条的规则设计测试用例就可以了。

 

 

6、错误推测法

错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。

例如,测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:

 输入的线性表为空表;

 1.  表中只含有一个元素;

 2.输入表中所有元素已排好序;

 3.   输入表已按逆序排好;

4.输入表中部分或全部元素相同。   

7、正交试验法

软件测试-正交实验法_哔哩哔哩_bilibili

当我们的输入项很多,每个输入项的取值也很多,这样我们的测试用例就很多,因果图也很乱很复杂。

正交试验法是从大量的试验点中挑出适量的、有挖根生的点,应用正交表,合理地安排试验的方法。该方法主要步骤如下:

a) 提取功能说明,构造因此状态表。把影响实验指标的条件称为因子,影响实验因子的条件叫做因子的状态。在设计测试用例时,首先要根据软件需求规格说明找出影响功能实现的操作对象或外部因素,把它们当作因子,把各个因子的取值当作状态。

b) 加权筛选,生成因素分析表。对因子与状态的选择可按重要程度分别加权。根据因子及状态作用的大小、出现频率等因素,确定权值大小。

c) 利用正交表进行各因子的状态组合,构造有效的测试输入数据集,形成测试用例。

 (正交表有人已经总结的,可以上网查找,也有自动生成的工具,比如:Slothman)

8、场景法

06.黑盒测试-场景法-【软件测试实战教程】_哔哩哔哩_bilibili

场景法是根据软件文档划分软件运行场景,根据软件运行场景设计测试场景。用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。基本流是经过用例最简单的路径,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入到基本流中,也可能起源于另一个备选流,或终止用例而不再重新加入某个流。

优点:特别适合有业务流程需求的验证。

缺点:只是验证了业务流程,但是没有验证每个功能点。单个功能点要用别的方法来验证,比如等价类、边界值、因果图等

1)、画流程图(如果需求说明书里面有,可以直接拿来用)

 2)、确定基本流(下图1)和备选流(图中很多颜色的那张)

 

 3)、构造场景

 4)、生成测试用例(下图中只是一部分,应该有8条用例,对应着8个场景)

这篇关于软件测试---功能分解、等价类、边界值、因果图、错误推测、正交实验、场景法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/227773

相关文章

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3