前台自动化测试:基于敏捷测试驱动开发(TDD)的自动化测试原理

news2024/11/27 22:24:18

一、自动化测试概述

自动化测试主要应用到查询结果的自动化比较,把借助自动化把相同的数据库数据的相同查询条件查询到的结果同理想的数据进行自动化比较或者同已经保障的数据进行不同版本的自动化比较,减轻人为的重复验证测试。多用户并发操作需要自动化模拟来保障大量用户的执行操作,减少对影响资源的依赖。自动化在迭代1开始进行搭建,在迭代2能够具备自动化能力。

二、测试目的

  本文档主要描述NPB的自动化测试粒度、原理及操作流程等。为以后开发人员开发测试用例提供指导。基于敏捷测试驱动开发(TDD)的原理,自动化测试主要达到以下三个主要目的:

  1、测试驱动开发。先写出针对测试用例,然后进行功能模块开发。该方式可能加大了开发人员在开发前期的工作量,但是就总体来说,此方式会驱动开发人员更进一步熟悉业务需求,提早预知开发过程中可能出现的各种情况,为后期进入编码测试提供便利。

  2、减少或者避免由于模块代码更改,功能扩展等因素带来的重复测试工作。

  3、指导开发人员能够更好的对代码进行架构设计,为以后的测试用例的书写,功能的扩展提供方便。

三、测试对象

  NPB项目前台部分的测试对象是业务层(service层),测试粒度为service层类的所有的或者主要的核心方法,铺盖粒度为:语句覆盖(即开发人员提供的测试用例要能够走通每一行代码)。

 四、测试环境

  4.1外部环境

测试环境指的是测试用例的运行环境。测试环境与开发环境共用一个平台。开发代码和测试用例代码分属于不同的source file中,测试类与被测试类的包名称相同,类名称不同,这样使得测试类和被测试类的.class文件位于相同的目录中,测试类可以任意调用与测试相关的开发代码而不会产生耦合或者依赖关系。借助测试工具(如Junit)进行自动化测试。

4.2 测试工具

NPB 拟采用 Junit 工具进行测试。Junit 是一种单元测试工具,能够实现自动测试,对于一个要测试的方法,我们输入其所需要的参数(自己构造),然后查看其返回是否符合我们的要求,用 Assert 的方法来比较返回的结果是否正确。

五、测试操作

  测试操作主要包括流程图和操作描述两部分。以图文的方式介绍一个测试流程。

5.1流程图

5.2 操作描述

目录结构:

首先针对 service 层的每个类,写一个 Junit 测试类,测试类要继承 Junit 的 TestCase类,测试类位于独立的测试包中。目录结构如下图所示:

针对 service 层指定类的每一个方法写一个测试方法或者多个方法对应一个测试方法。此方法要提供能够覆盖所有方法语句的入口参数,同时针对每一组入口参数要列出理想输出,然后用断言的方法来比较输入是否与预想相符。

测试模块:

NPB 项目会基于系统的核心模块及实际开发情况进行测试,如系统维护(system management)等。

六、测试原理用例示例

下面以简单示例的形式展现自动测试的原理:

现有一 service 层类 UserService,其包含多个方法如:insertUser()、updateUser()和QueryUserList()等 。

首先我们先了解下基于 iBATIS 持久层开发此方法的返回值问题,insert 操作会放回插入对象的 ID。而 update 操作和 delete 操作会返回更新或者删除操作的条数。

测试用例的命名原则:

测试类的命名以被测试类名后添加 Test 命名。

基于 junit3.8 的测试方法要求是 public 的,无返回值(void),并且每个测试方法的名字以 test 开头。

最后:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。

这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

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

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

相关文章

构造函数原型prototype

一、原型prototype 构造函数通过原型分配的函数是所有对象所共享的。 JavaScript规定,每一个构造函数都有一个prototype属性,指向另一个对象,注意这个prototype就是个对象,这个对象的所有属性和方法,都会被构造函数所…

校园论坛网站设计设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

Kotlin高仿微信-第16篇-单聊-红包

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

【Pandas数据处理100例】(九十六):Pandas使用cumsum()函数计算某列的累计和

前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPandas版本:1.3.5N…

c#机器学习之opencv(1)-opencvsharp显示图片与边缘提取

目录Using块概念using 添加到局部变量声明。安装opencvsharp显示图片边缘检测Using块 概念 有时你的代码需要非托管的资源,如文件句柄、 COM 包装器或 SQL 连接。 一个Using块确保一个或多个此类资源的释放你的代码完成与之时。 这使它们可用于其他代码使用。 托管…

一个新公众号怎么吸粉?教你几招

都说万事开头难,但我不觉得啊,关键是要找对方法! 企业和品牌创建初期都会经历公众号启动期,一个新公众号必将会经历艰难的涨粉阶段。 想必下面这两种情况你也深有体会: 即使每天坚持更新,但是后台文章阅读…

迷宫问题(只有一条路径)【dfs 判断是否继续dfs 的三种方法】

dfs、bfs的迷宫问题1. 迷宫问题&#xff08;只有一条路径&#xff09;dfs迷宫问题总结&#xff1a;三种dfs判断法三&#xff1a;1. List<类> 存储过程节点2. dfs的返回值是 boolendfs的结构是 if(合法)if(走到节点)return true&#xff1b;法一&#xff1a;1. 两个数组&a…

腾讯云数据库SaaS致力于构建数据库分布式云,为更多更广的用户提供服务

大数据时代&#xff0c;数据库 SaaS 是企业实现降本增效和业务创新的重要抓手。在腾讯全球数字生态大会数据库 SaaS 专场上&#xff0c;腾讯云发布了多项数据库 SaaS 产品能力升级&#xff0c;并重点分享了其在上云、日常运维、数据库迁移等多方面的实践应用&#xff0c;为广大…

手把手教你实现一个防抖函数(debounce)

前言&#xff1a;防抖函数在日常开发中属于是一个非常非常重要的知识点。通常在一个项目的最开始构建的时候&#xff0c;都会在 utils文件夹下备上这样一个函数&#xff0c;来为以后做准备。 &#xff08;tips&#xff1a;utils 在大部分翻译软件内好像都叫跑龙套的&#xff0c…

<数据库视图>--数据库的“眼镜”(世界杯例题篇),查阅必备

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 **收录于专栏 数据库干货铺 ⭐外模式—视图⭐ 文章目录⭐外模式---视图⭐一&#xff0c;概念提炼二&#xff0c;视图的创…

一文解决Linux Conntrack:为什么它会崩溃,如何避免这个问题

前言 连接跟踪&#xff08;“conntrack”&#xff09;是 Linux 内核网络栈的核心特性。它允许内核跟踪所有的逻辑网络连接或数据包流&#xff0c;从而识别组成每个流的所有数据包&#xff0c;以便能够统一的处理它们。 Conntrack 是一个重要的内核特性&#xff0c;它支撑了一…

mysql进阶学习 - concat函数

目录指导: 语法:作用:说明:实例说明:相关问题:语法: concat(str1, str2, ...)作用: 将多个字符串拼接成一个字符串 说明: 该函数中的参数至少有一个参数, 否则会报错;该函数在拼接之前会将所有的参数转换为字符串类型;该函数如果某个参数为NULL, 则返回NULL值. 实例说明: 说…

blender 烘焙贴图

文章目录烘焙基础色贴图查看烘焙结果图片保存图片烘焙其他类型的贴图烘焙法线贴图TexTools插件ID Map制作ID Map使用ID Map烘焙基础色贴图 1 只有CY渲染器可以烘焙贴图 2 首先在材质栏里创建一个新的图像纹理节点&#xff0c;不需要和任何节点连接&#xff0c;点击新建&#x…

gdb常用调试命令 + 多进程调试命令

要使用 gdb 调试&#xff0c;必须在gcc / g 生成执行文件时&#xff0c;加上 -g 选项&#xff0c;那么在生成的时候&#xff0c;就会在该执行文件中加入一些debug信息。 gcc -g -o test test.c 目录 1、常用调试命令 (1) 进入 / 退出调试模式 (2) 开始调试 2、多进程调试命…

mybatis学习:二、 Mybatis的Dao开发、mybatis-config.xml文件的详情

3. Mybatis的Dao开发 ​ 使用Mybatis开发Dao&#xff0c;通常有两个方法&#xff0c;即原始Dao开发方法和Mapper接口开发方法。 3.1 Mybatis的核心对象 SqlSessionFactoryBuilder ​ SqlSessionFactoryBuilder用于创建SqlSessionFacoty&#xff0c;SqlSessionFacoty一旦创建完…

nginx学习使用

nginx学习使用一、nginx安装与使用1、linux安装2、linux卸载3、升级4、linux环境下&#xff0c;把nginx设置为开启自启动二、nginx常用命令1、部署命令2、其他命令三、配置文件解析1、系统配置2、各配置指令详解3、日志配置4、跟据上面的命令&#xff0c;实现一个代理配置案例5…

2022FW柯罗芭KLOVA 用极简主义演绎服装美学

万物伊始&#xff0c;一切都是最简单的&#xff0c;后疫情时代&#xff0c;时尚似乎也开始化繁为简&#xff0c;回归本真。LESS IS MORE 诉说着真实的高贵&#xff0c;从不喧哗&#xff0c;服装里讲究的极简风&#xff0c;正是当下时尚和生活方式的最佳体现。 款式极简 极简又高…

Spring Boot中添加Thymeleaf模板

Spring Boot中添加Thymeleaf模板 前面我们讲解了Spring Boot项目的创建、Spring Boot结构信息&#xff0c;自动配置功能等&#xff0c;那么Springboot创建出来&#xff0c;我们最终是要做web开发的&#xff0c;所以我们这章讲解如何用SpringBoot做web开发。 一. Web开发方式 …

Maven 高级篇,Maven常用操作、高级操作、nexus私服搭建

&#x1f600;&#x1f600;&#x1f600;创作不易&#xff0c;各位看官点赞收藏. Maven 高级篇 文章目录Maven 高级篇1、Maven 安装2、Maven 核心概念2.1、坐标2.2、基础操作2.3、依赖2.4、继承2.5、生命周期3、Maven 深入3.1、Spring Boot 打包3.2、超级 POM3.3、build 标签…

计算机网络第八章知识点回顾(自顶向下)

1. 网络安全 1.1 什么是网络安全&#xff1f; 1.2网络中的通信安全 1.2.1 安全攻击的类型&#xff1a;被动攻击 1.2.2 安全攻击的类型&#xff1a;主动攻击 1.3 常见的安全机制 2. 密码学术语 2.1 密码学术语&#xff08;图示&#xff09; 2.2加密算法的分类 2.3 传统加密方法&…