热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

测试流程图_牛鹭学院:流程类测试用例设计方法和测试策略

对于测试人员来说,流程类测试是测试过程中必不可少的一类,那有哪些方法技巧能够保证流程类测试用例的设计比较高效呢?牛鹭学院今天就分享给大家&
a54014380258b68ee53a52a54f38ecb9.png

对于测试人员来说,流程类测试是测试过程中必不可少的一类,那有哪些方法技巧能够保证流程类测试用例的设计比较高效呢?牛鹭学院今天就分享给大家:

b682a580b3131f926db626a99bdfad7b.png

流程类测试方法主要有四类,语句覆盖、分支覆盖、全覆盖、最小无关覆盖。语句覆盖和分支覆盖的覆盖面相对比较窄,其场景主要适用在单元测试和集成测试中;全覆盖工作量比较大,常见于业务流程都比较重要且需要全部覆盖的场景;最小无关覆盖是相对最优的选择,性价比最高,可以适用于各个测试阶段和测试场景。

流程类用例设计四步走:

  1. 流程图分解
  2. 测试点整理
  3. 测试数据填充
  4. 测试场景完善

步骤一:流程图分解原则是每个流程图都只有一个输入和一个输出;

步骤二:根据分解后的流程图进行测试点整理;可以根据全覆盖或者最小无关覆盖进行编写;

步骤三:根据等价类、边界值、正交法整理测试数据,填充到测试点中;

步骤四:根据产品设计流程、业务处理流程、线上应用场景等补充和完善测试场景;

举个例子,从北京到上海可以有多种交通工具,飞机、火车、汽车、骑车都可以。假定飞机是从首都机场到上海虹桥机场,火车是从北京西站到上海站,汽车是从北京天安门到上海外滩,骑车是从北京颐和园到上海迪士尼。

通过步骤一,可以将只有一个输入和一个输出的先找出来,比如乘坐飞机模式下的首都机场和上海虹桥机场。

通过步骤二,可以将分解后的流程图肢解出一个一个的单点,比如说首都机场到上海虹桥机场,可以有两种类型,直飞或者中转,每种类型又有多个航班和日期可供选择。

通过步骤三,可以细化单个测试点的数据输入,如飞机的大小、起飞落地时间、起飞日期、机票价格、航空公司等。

通过步骤四,可以根据实际多种场景补充和完善,如天气模拟、特殊节假日模式、突发事件模拟等。步骤四阶段补充设计的测试用例通常属于系统级别类的,需要对产品实现、业务流程、客户真实场景等非常的熟悉。

通过以下两个流程图来具体示例:

示例一:

客户通过企业WIFI进行网络连接场景,有两种连接方式,公共WIFI(无需密码即可以登录)和内部WIFI(需要密码才可以登录)。比较典型的单输入两输出场景。

03ce0084715a124b7f857ec7b8de96af.png

步骤一:分解流程图

第一次分解如下,其实还不满足只有一个输入和输出;需要进行二次分解

a3188bb6396aef33284ebc6e0a9b770f.png

第二次分解如下

340772d176e8ba0cbf934858505e6d11.png

步骤二:整理测试点

根据全覆盖,可以分为五个测试点

步骤三:

填充测试数据,手机机型、选择WIFI名称、密码设置、连接成功验证等。

步骤四:

补充测试场景,连接内部WIFI时不输入密码、在不同位置连接WIFI、WIFI和数据网络同时连接、WIFI上传下载速率等。

示例二:

用户使用不同的开锁方式进行手机解锁,假设设定了三种解锁方式(指纹解锁、密码解锁、图案解锁),连续三次解锁失败则锁定(一定时间内禁止解锁)。比较典型的多输入多输出场景。

70b5a5b1a251651c51361b928ad53878.png

步骤一:分解流程图

f644476d10bd5763e067baeac0b891f3.png

步骤二:整理测试点

原来的流程图分解为了6个小流程图,从左到右依次为图1-图6。

图1分解为3个测试点,图2为1个,图3-6与图1-2类似,故图1-6分解为12个测试点。

步骤三:

填充测试数据,指纹解锁(几个指纹、那个手指等)、密码解锁(密码难易度、密码长度等)、图案解锁(图案复杂度等);

步骤四:

补充测试场景,指纹解锁(有汗、有灰尘等场景下)、各种解锁场景交叉和跳跃(比如第一次指纹、第二次密码、第三次图案等)、异常场景模拟(一种解锁方式连续失败三次后,一定时间内停止解锁,在这个时间段内尝试切换为另一种解锁方式,在这个时间段外尝试另一种解锁方式)、多种解锁方式反复解锁等。


流程类的测试用例设计,可以理解为路径的选择和覆盖。流程类用例设计四步走(流程图分解;测试点整理;测试数据填充;测试场景完善),我们可以用八字口诀法简单记忆:分路、选路、铺路、补路;其中分路类比流程图分解、选路类比测试点整理、铺路类比测试数据填充、补路类比测试场景完善。

用例的编写需要非常多的经验积累和实战操作,编写方法本身不难,但是应用起来会变幻莫测,尤其是在最后一步“测试场景完善”中,你的测试功底(包括业务能力和技术能力)有多深,会体现的非常明显。

————————————————

获取更多课程资讯、技术干货、学员笔记,关注牛鹭学院官方公众号:牛鹭软件测试训练营



推荐阅读
  • Firefox火狐浏览器关闭到http://detectportal.firefox.com的流量问题解决办法
    本文介绍了使用Firefox火狐浏览器时出现关闭到http://detectportal.firefox.com的流量问题,并提供了解决办法。问题的本质是因为火狐默认开启了Captive portal技术,当连接需要认证的WiFi时,火狐会跳出认证界面。通过修改about:config中的network.captive-portal-service.en的值为false,可以解决该问题。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • github上_idea上传本地项目到github上(图解)
    本文由编程笔记#小编为大家整理,主要介绍了idea上传本地项目到github上(图解)相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了优化算法改进的侏儒猫鼬优化算法(IDMO)及其Matlab源码分享。文章首先介绍了获取代码的两种方式,包括付费下载和付费订阅付费专栏。然后详细解释了侏儒猫鼬优化算法的原理和特点,以及其在集体觅食、侦察和保姆交换等方面的应用。最后提供了CSDN资源下载链接,供读者下载相关代码。 ... [详细]
  • 在线教育平台的搭建及其优势
    在线教育平台的搭建对于教育发展来说是一次重大进步。未来在线教育市场前景广阔,但许多老师不知道如何入手。本文介绍了在线教育平台的搭建方法以及与传统教育相比的优势,包括时间、地点、空间的灵活性,改善教育不公平现象以及个性化教学的特点。在线教育平台的搭建将为学生提供更好的教育资源,解决教育不公平的问题。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • php支持中文文件名
    2019独角兽企业重金招聘Python工程师标准大家可能遇到过上传中文文件名的文件,或者读取中文目录时不能读取,出现错误的情况这种情况是因为php自动将中文字符转成了utf8 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文讲述了叶王在水中醒来时,听到一个男孩说话的声音,但很快又忘记了。他经常浮到水面上晒月亮,唱歌吸引荧光,但不知道为什么要这样做。他的行为是本能的。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 阿里云虚拟主机安装多个织梦系统的方法
    本文介绍了在阿里云虚拟主机上安装多个织梦系统的方法。通过创建不同名称的文件夹并将不同的域名解析到对应的目录,可以实现多个系统的安装。在安装过程中需要注意修改数据库前缀,并在系统设置中还原数据库。同时还介绍了阿里云虚拟主机二级域名绑定二级目录和域名重定向的用法。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了一种处理AJAX操作授权过期的全局方式,以解决Asp.net MVC中Session过期异常的问题。同时还介绍了基于WebImage的图片上传工具类。详细内容请参考链接:https://www.cnblogs.com/starluck/p/8284949.html ... [详细]
author-avatar
xuzhaotong
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有