测试用例流程设计

测试用例流程设计

简介

测试用例流程设计是指在进行软件测试时,对测试用例的整体规划和组织的过程。它涉及到制定一系列测试用例,以确保对软件系统的各个方面进行全面、系统和有效的测试。

现有测试用例的问题

  • 可维护性不高

    • 低模块化性:测试用例的结构缺乏良好的模块化,测试逻辑可能混杂在一起,难以分离和更新单独的部分。
    • 高耦合性:测试用例之间或测试步骤之间的耦合度高,一个测试用例的更改可能会影响其它测试用例,增加了维护的难度。
    • 缺乏可复用性:测试用例中的代码无法轻松地在不同的测试场景中复用,导致了冗余和不必要的代码。
  • 可读性较差

    • 命名不清晰:变量、函数和类的命名不具备描述性,不清楚其胜任,降低了代码的可读性。
    • 缺乏注释和文档:测试用例缺乏详细的注释和文档,不提供足够的信息来理解测试目的和预期结果。
    • 不符合代码风格指南:测试用例的编写风格可能不符合团队或行业的代码风格指南,导致不一致的代码外观
  • 稳定性较差

    • 未处理异常:测试用例没有适当地处理可能出现的异常情况,导致测试中断或不稳定。
    • 断言不足:测试用例可能不包括足够的断言语句,以验证测试结果,从而无法捕获潜在的问题。
    • 依赖不清晰:测试用例依赖外部因素(如环境、数据)的清晰性差,使得测试的稳定性受到影响。

用例结构设计

  • 测试用例的编排

    • 测试用例组织:将测试用例组织成测试套件,根据不同的功能、模块或测试目的进行分类。有助于更好地管理和执行测试用例。
    • 测试步骤:将测试用例分解为独立的测试步骤,第个步骤执行一个特定的操作或验证一个特定的条件。这提高了测试用例的可维护性和可读性。
    • 前置条件:明确定义测试用例执行之前需要满足的条件或设置,前置条件可以包括环境配置、数据准备等。
    • 测试数据:明确定义测试用例所需要的输入数据,包括有效数据、边界数据和异常数据。
    • 操作和期望结果:每个测试步骤应包括执行的操作和预期的结果。这使得测试用例变得清晰和可测量。
    • 清理操作:在测试用例执行完毕后,明确定义需要执行的清理操作,以还原测试环境到原始状态。
    • 参数化测试:使用参数化方式,使测试用例能够以不同的输入数据运行相同的测试步骤,提高测试的覆盖范围。
  • 测试用例的项目结构

    • 测试套件:测试用例可以组织成测试套件,每个套件代表一个功能模块或测试类型,以方便管理和执行。
    • 目录结构:合理的目录结构可以帮助组织测试用例,通常包括测试用例文件、测试数据文件、测试配置文件等。
    • 共享资源:在项目结构中,可以包含共享资源和库,如测试工具、通用函数和配置文件,以便多个测试用例之间共享和复用。
    • 报告和日志::项目结构应包括存储测试执行报告和日志的目录或文件,以便记录测试结果和问题。
    • 版本控制:使用版本控制工具来管理测试用例的版本,确保跟踪测试用例的修改历史。
    • 测试框架集成:如果使用自动化测试框架,项目结构应包括框架的配置和集成,以便执行和管理自动化测试。
  • 测试用例的编排
  • 测试用例的项目结构

自动化测试用例流程-回顾

  • Pytest
    • setup_method setup_class setup_module
    • fixture
  • Junit4
    • @BeforeClass、@AfterClass
    • @Before、@After
  • TestNG
    • @BeforeClass @BeforeMethod
    • @BeforeGroup、@BeforeSuite
  • Junit5:@BeforeClass @BeforeEach

web 自动化测试-用例设计

类型框架对应作用
前置setup_class/BeforeAll准备测试数据
实例的初始化
setup/BeforeEach恢复用例初始状态
数据清理(也可以在用例级别完成)
后置teardown_class/AfterAlldriver 进程退出
teardown/AfterEach恢复用例初始状态
数据清理(也可以在用例级别完成)

恢复用例初始状态

  1. 用例 1 执行过程经过 A->B->C 三个页面
  2. 用例 2 执行过程经过 A->B->C 三个页面
  3. 用例 1 执行完成之后执行用例 2

恢复用例初始状态

在每条用例执行完成之后,如果不恢复到下一条用例的初始状态(返回到用例初始页面),可能会对后续用例的执行产生影响。

解决方案:

  • 每条用例执行完成都quit(),虽然能够确保初始状态,但可能会影响执行效率。
  • 可以封装一个方法,在每条用例执行完成后调用该方法,实现回到首页的操作,以优化上述问题。

数据清理

清理策略及方式对于测试用例的整体执行至关重要,以确保每条用例在执行前后都处于预期的初始状态,清理策略一般有: - 在前置处理中执行 - 在后置处理中执行

常见的清理方式如下:

- 调用业务接口:通常是一种高效的方式,能够确保以业务逻辑为基础的数据清理 - 通过 UI 自动化方式操作:可以模拟用户界面操作,适用于需要还原用户界面状态的情况 - 连接数据库执行 SQL(不推荐)

web 自动化测试项目结构

Python 项目

# python 项目
- page: 页面对象
- testcases: 测试用例
- utils: 公共工具
- log: 日志信息

Java 项目

# java项目
- main/java- com.xxx.page: 页面对象- com.xxx.utils: 公共工具- resources: 日志配置
- test/java- com.xxx: 测试用例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/670294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

re:从0开始的CSS学习之路 2. 选择器超长大合集

0. 写在前面 虽然现在还是不到25的青年人,有时仍会感到恐慌,害怕不定的未来,后悔失去的时间,但细细想来,只有自己才知道,再来一次也不会有太多的改变。 CSS的选择器五花八门,而且以后在JavaScr…

docker部署docker管理工具easydockerweb

重要提示 功能比较少,建议体验一下即可 安装 docker run -it -d -p 10041:3000 -e EDW_USERNAMEadmin -e EDW_PASSWORDadmin -v /var/run/docker.sock:/var/run/docker.sock qfdk/easydockerweb 使用 概览 镜像管理 容器管理

vue - 指令(一)

看文章可以得到什么? 1.可以快速的了解并会使用vue的指令 2.可以加深你对vue指令的理解,知道每个指令代表什么功能​​​​​​​ 目录 什么是vue的指令?​​​​​​​ vue常见指令的使用 v-html v-show v-if v-else 和v-else-…

Spring Data Envers 数据审计实战

随着各行各业信息化发展,决策者们越来越意识到数据版本追踪的重要性,尤其是上市公司,数据对于他们尤为重要。考虑到研发成本,对重要表单数据支持页面级的修改历史查看、对所有业务数据支持DB级的版本查看是一个不错的选择。 对于…

设计模式学习笔记(一):基本概念;UML

文章目录 参考面向对象的设计原则创建型模式结构型模式行为型模式 UML视图图(Diagram)模型元素(Model Element)通用机制类之间的关系关联关系复杂!!聚合关系组合关系 依赖关系泛化关系接口与实现关系 参考 https://github.com/fa…

2.0 Zookeeper 安装配置

Linux 安装 zookeeper 下载地址为: Apache ZooKeeper。 选择一稳定版本,本教程使用的 release 版本为3.4.14,下载并安装。 打开网址 https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz,看到如下界…

c#cad 创建-圆(二)

运行环境 vs2022 c# cad2016 调试成功 一、代码说明 这段代码是一个AutoCAD插件,用于在模型空间中创建一个圆形。 首先,我们需要定义一个命令类CreateCircleCommand,并在命名空间CreateCircleInCad中声明。 在CreateCircleCommand类中&a…

【技能树学习】Git入门——练习题解析

前言 本篇文章给出了Git入门技能树中部分的练习题解析,包括分支管理,Git标签,在Mac和Windows上使用GitVSCode的步骤。强调了git cherry-pick不直接支持从标签中选择提交,git tag -d只能删除本地标签,Mac系统的终端可以…

23、数据结构/查找相关练习20240205

一、请编程实现哈希表的创建存储数组{12,24,234,234,23,234,23},输入key查找的值&#xff0c;实现查找功能。 代码&#xff1a; #include<stdlib.h> #include<string.h> #include<stdio.h> #include<math.h> typedef struct Node {int data;struct n…

flutter使用webview_flutter在安卓和ios上打开网页

webview_flutter仓库地址&#xff1a;webview_flutter | Flutter package github地址&#xff1a;https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter 要打开非https协议的网页&#xff0c;需要在安卓平台上添加权限&#xff1a;andro…

若依整合mybatis-plus

文章目录 1.注释掉原本的MybatisConfig2. 将mybatis的配置文件改为mybatis-plus文件 ##前言 出先下列异常&#xff1a; 请求地址’/prod-api/user’,发生未知异常. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ruoyi.web.mapper.Us…

003集—三调数据库添加三大类字段——arcgis

在国土管理日常统计工作中经常需要用到三大类数据&#xff08;农用地、建设用地、未利用地&#xff09;&#xff0c;而三调数据库中无三大类字段&#xff0c;因此需要手工录入三大类字段&#xff0c;并根据二级地类代码录入相关三大类名称。本代码可一键录入海量三大类名称统计…

数字图像处理(实践篇)四十五 OpenCV-Python 使用ORB算法(包括算法概述)检测图像上的特征点

目录 一 ORB算法 二 涉及的函数 三 实践 ORB: An efficient alternative to SIFT or SURF SIFT 和 SURF 已获得专利,使用需要付费。但是ORB并不需要。ORB 最重要的一点是它来自“

【日常总结】SourceTree 1.5.2.0 更换用户名称和密码

一、场景 二、问题 三、解决方案 > 方案一&#xff1a;删除缓存文件 > 方案二&#xff1a;更新最新版本&#xff0c;可以直接修改密码&#xff08;推荐&#xff09; 方案一&#xff1a;删除缓存文件 Stage 1&#xff1a;设置显示隐藏文件 Stage 2&#xff1a;打开…

070:vue+cesium: 利用canvas设置线性渐变色材质

第070个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置线性渐变色的材质,这里使用canvas的辅助方法。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共104行)专栏目标示例效果 配置方式 1)查看基础…

Android平台GB28181设备接入模块实现后台service按需回传摄像头数据到国标平台侧

技术背景 我们在做Android平台GB28181设备对接模块的时候&#xff0c;遇到这样的技术需求&#xff0c;开发者希望能以后台服务的形式运行程序&#xff0c;国标平台侧没有视频回传请求的时候&#xff0c;仅保持信令链接&#xff0c;有发起视频回传请求或语音广播时&#xff0c;…

数字孪生网络攻防模拟与城市安全演练

在数字化浪潮的推动下&#xff0c;网络攻防模拟和城市安全演练成为维护社会稳定的不可或缺的环节。基于数字孪生技术我们能够在虚拟环境中进行高度真实的网络攻防模拟&#xff0c;为安全专业人员提供实战经验&#xff0c;从而提升应对网络威胁的能力。同时&#xff0c;在城市安…

GEE数据集——全球健康地图项目Global Healthsites Mapping Project

Global Healthsites Mapping Project Healthsites.io和全球健康网站绘图项目的使命是帮助向政府、非政府组织和私营部门提供准确的最新健康设施信息。医疗机构登记簿是一个国家内运作良好的医疗信息系统的基石。准确和最新的数据提供了基础数据&#xff0c;有助于推动服务可用…

5分钟掌握接口自动化测试,4个知识点简单易学!

一. 什么是接口测试 接口测试是一种软件测试方法&#xff0c;用于验证不同软件组件之间的通信接口是否按预期工作。在接口测试中&#xff0c;测试人员会发送请求并检查接收到的响应&#xff0c;以确保接口在不同场景下都能正常工作。 就工具而言&#xff0c;常见的测试工具有…

16-Verilog实现二线制I2C CMOS串行EEPROM的读写操作

Verilog实现二线制I2C CMOS串行EEPROM的读写操作 1&#xff0c;二线制I2C CMOS串行EEPROM的简单介绍2&#xff0c;I2C总线特征介绍3&#xff0c;二线制I2C、CMOS串行EEPROM的读写操作4&#xff0c;EEPROM的Verilog HDL程序4.1&#xff0c;EEPROM的行为模型思路如下&#xff1a;…