自动化测试的必备准则
什么是自动化测试?把以人为驱动的测试行为转化为机器执行的一种过程叫自动化测试。自动化测试节省人力、时间或硬件资源,提高测试效率,有助于提高开发速度,同时减少成本和工作量。
本文将分享自动化测试的必备准则,提炼测试执行、设计和维护大型企业应用程序的关键技巧供大家参考,教大家如何保持测试自动化活动在正确的轨道上。
特点优势:
快速 | 比手工操作快 |
可靠 | 精确地执行相同的操作,可以排除手工操作错误 |
可重复 | 测试相同操作重复执行得到软件响应状况 |
可编程 | 可以编程得到应用系统的隐藏信息 |
可重用 | 针对不同版本,测试脚本可重复使用 |
综合测试 | 覆盖应用系统的一套综合测试方案 |
自动化测试分类:
功能自动化测试、性能自动化测试、 接口自动化
自动化测试类型
- 单元自动化测试(数据处理层):指对软件中最小的可测试单元进行检查和验证,一般需要借助单元测试框架,如 java的Junit、TestNG,Python 的 Pyitest,常见的手段是 code review 等;
- 接口自动化测试(业务逻辑层):主要检查验证模块间的调用返回以及不同系统、服务间的数据交换,常见的接口测试工具有 Eolink、Jmeter、Postman 等;
- UI 自动化测试( GUI 界面层):UI 层是用户使用产品的入口,所有功能通过这一层提供给用户,测试工作大多集中在这一层,常见的测试工具有UFT、Robot Framework、Selenium、Appium 等
测试自动化的几个准则:
- 减少除工具研发部门外,其他所有测试部门的人力成本,这是测试自动化追求的终极目标之一;
- 提高测试质量,不仅仅包括测试执行的质量,还包括测试的统计质量,数据回溯质量等等,这些质量的提高可以帮助测试团队修正他们的测试方法,而不是每天将精力铺在无止境的数据收集和分析中;
- 和时间赛跑,某一项工作自动化后的时间,要么比人手做时间短,要么可以在非工作的 16 个小时中进行。通过让电脑 OT 的方法来解放工程师或者项目经理。
自动化的三大入手点:
自动化的三大入手点其实和三大准则是一样的。看哪个需求更加迫切:
- 成本:自动化并不一定围绕测试执行,还可以包括测试的准备,log 的提取,数据分析等等。将所有的与测试有关的工作逐一列出,然后找到重复的,可以被代码化的部分,评估现有工作成本和自动化成本,寻找到收益最大的工作块并顺序将之代码化
- 质量:和成本差不多,只是在评估的时候需要评估的是该工作块现有的质量状况和需求质量间的差异,寻找到差异最多的那个模块,并将所有质量差的模块逐一进行自动化
- 时间:和以上两点一样,都需要寻找到与测试有关的所有步骤和工作块,将其中关键路径上,动作最慢,耗时最大的部分进行自动化
并不是将测试用例代码化了,就可以称之为自动化测试了。现在很多公司宣称自己做 AT 作为一个噱头。AT 的代码有很多的要求,总结三点,供大家参考:
- 覆盖面足够够广,个位数case的自动化没必要;
- Case的复用:软件每天都在变,case要天天跟着软件变,这样的case是完全不合格的;
- 测试的规模要够大:要么时间长(case多或者是压力测试),要么测试产品多。这样才能体现出来自动化测试的优势。
其中最关键的一点在于有针对性的选用适合的自动化测试工具,而不是“最好”的工具;
每个自动化测试项目都有其自身的特定需,正确的工具可以显著减少测试时间并提高测试团队的效率,错误的工具会引入不必要的复杂性。
选择支持所有所需设备、浏览器、操作系统版本、移动平台、所需的测试自动化级别( UI、API、数据库测试)、测试类型(功能、负载、性能、本地化)和识别技术(本机、图像、文本)的工具。使用单一的工具,交付自动化的学习曲线将显著减少,相同的脚本将被不同的平台重用。
除此之外,我们选择合适的工具对下面列表进行检查:
普遍要求:
● 技术团队是否具备所需的技能?框架的灵活性是否会赋予团队扩展的能力?
● 你的测试团队是否有使用该工具的经验?
● 该工具是否有强大的社区、帮助资源、用户手册和详细的文档?
● 该工具的供应商对遇到的新技术或问题的反应如何?
● 它是否提供了详细的自动化测试报告?
● 它是否与项目中使用的 CI 工具、问题管理工具、测试管理工具和通信工具集成?
特定要求:
● 该工具是否允许执行分布式测试?
● 测试的执行需多长时间?
● 它是否支持智能等待(内置或易于集成)?
● 它如何帮助简化测试修改?
● 它是否提供了详细的自动化测试报告?
● 它是否支持 DDT 方法(比如通过与Cucumber 集成)?
API自动化自动生成使用场景:
一般IT系统的开发过程中,涉及到直接的数据库增删查改等操作的 API 数量超过 60%,项目的规模越庞大,此类 API 的数量也越多。并且大部分企业内部的数据应用场景为快速查询和操作数据库的信息,比如面对一些如客服、数据监控、财务展示等简单场景需要快速开发一套管理应用,可以通过数据库直接生成相关的操作 API,搭配前端页面即可使用。
API 快速生成平台能够直接从各种常见关系型数据库、NoSQL 数据库、大数据库中间件中生成统一格式的 HTTP Restful API 。API 生成好之后无需测试、部署,可以直接用于实际项目中。常用于以下场景中:
- 快速生成应用后端,不需开发后端代码:前端可以直接使用数据库生成的API来开发Web、App界面,不需要额外开发后端代码。节省70%以上开发、测试、部署工作量;
- 打破企业内部系统信息孤岛,快速在系统间共享数据:企业内部各系统直接缺乏互相提供数据的接口,无法跨系统调取数据。现在可以直接将各系统的数据库变成可操作的 API,用于不同系统之间的对接。
- 作为统一数据平台,支撑数据层性能和安全维护:所有的系统(端)均可通过该平台调用统一的 API,而不需要关注数据库的类型和代码实现。由API自动生成平台提供统一的数据层接口以及维护工作。可以将应用架构进一步拆分,保障底层数据存储的性能和安全。
API自动生成产品特性:
- 支持多种数据源类型:支持 Mysql、Oracle、MariaDB、 SQL Server、PostgreSQL、MongoDB、Redis、Impala 等常见关系型、非关系型、大数据数据库中间件;
- 支持将数据转换为 Restful API:支持返回 JSON、XML 等返回结果;
- 支持通过UI界面生成 API:通过页面操作即可从关系型数据库中生成 API;
- 支持通过语句等生产 API:对于非关系型数据库,可以使用 SQL 语句或者相关脚本语句生成 API;
- 支持集群部署:节点支持水平扩展,轻松应对大规模访问;
- 自动生成 API 文档:自动生成 API 文档方便进行开发对接;
- 自动生成 API 代码:自动生成各语言 API 访问代码;
工具如何选可以参照这三点进行考虑:
想满足以上要求,请在线了解 Eolink 工具的使用;
1. 任何人都可以使用,不需要编码能力
2. 功能测试时的cases即刻可以变成自动化用例
3. 像使用Fiddler一样,查看数据的返回情况
Eolink 的产品有清晰的设计理念,通过文档驱动以及测试驱动能够和目前业务结合,并且改善现有的研发管理流程。Eolink 产品方案目前在业内各知名企业中有丰富的成功案例,并且产品在功能的丰富度、深度、适用范围、使用体验等方面有明显优势,是一个能够一步到位的产品方案,能够适应长期的研发管理需求,能够满足后续业务扩展的情况。如果现在选型的产品无法满足后续团队发展的需求,以后要再改换方案的成本会很高,建议一步到位来考虑。
在售后服务方面,Eolink 有独立的客户支持团队,有产品培训、客服能够帮助团队上手产品,并且能够针对需求改进点进行快速响应,无需再进行二次开发和担心后期维护的问题。