一、自动化测试概述
自动化测试主要应用到查询结果的自动化比较,把借助自动化把相同的数据库数据的相同查询条件查询到的结果同理想的数据进行自动化比较或者同已经保障的数据进行不同版本的自动化比较,减轻人为的重复验证测试。多用户并发操作需要自动化模拟来保障大量用户的执行操作,减少对影响资源的依赖。自动化在迭代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自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。
这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!