软件测试技术实战 设计、工具及管理》联载-30

简介: 软件测试技术实战 设计、工具及管理》联载-30

7.2.6  自动化测试可以覆盖软件测试中的每个阶段


很多刚入门的软件测试的新手往往认为自动化测试只限于系统测试和验收测试,而不适用于单元测试和集成测试,其实,这不完全正确。开源工具JUnitCPPUnit以及ParaSofy公司出品的JtestCtestC++testGoogle公司开发的GTest等工具都是基于单元测试或集成测试、它们除了可以完成单元测试和集成测试工作外,有些还具有代码书写规范检查的功能,启动运行这个模块,可以对代码参照预先定义好的规范进行检查,如果某些代码违反了规范,系统会给出可视化的提醒。


7.2.7  软件测试自动化是敏捷开发强有力的工具


众所周知,敏捷开发强调的是开发的快速性,是“短平快”的开发方式,这必然增大开发工程师、软件测试工程师以及运行维护人员的工作压力。如果能对某些功能,尤其是回归测试中涉及到的功能进行自动化测试,让这些功能在版本发布前自动运行,甚至是釆用持续集成(CI)的策略:即每天晚上,从版本控制管理软件中获取已经Check In的老的及新加入的产品和测试代码,然后对这些产品和测试代码分别进行自动化编译,再利用新编译好的测试代码去测试产品代码,直到最后测试完毕,系统会自动将测试报告发到相应的每个开发和软件测试工程师以及其他干系人的邮箱里,以便开发工程师、软件测试工程师第二天一早到公司就可看到测试报告,并对没通过的测试用例在第一时间内进行排查。这样就部分解决了敏捷开发中时间紧工作压力大的问题,提高了测试的效率。


7.2.8  不要盲目选用现有的自动化测试工具


目前市面上有许多自动化测试工具,如本节开始部分提到的那些产品。许多书籍对这些工具的使用方法和技巧进行了系统介绍,有的测试培训中心还将这些软件测试工具作为专门的课程进行教学,这些都是必要的。但这些工具不是万能的,在实际工作中,还要充分结合产品自身的特性,了解这些自动化测试工具是否可以达到测试自己产品的目的,而不要盲目使用。事实上,如果这些现有的自动化测试工具达不到测试自己产品的目的,那么可以建立专门的自动化测试开发小组,自己开发出符合自己产品测试需求的自动化测试工具,这虽然要消耗一些时间和人力,但由于自己开发的自动化测试工具是针对自身产品开发的,因此使用起来效率高速度快。此外,那些现有的自动化测试工具价格都比较昂贵,所以建立自动化开发小组往往还可以节约成本


最后来看各种类型的自动化测试工具的利与弊。


7.2.9  各种类型的自动化测试工具的比较


各种类型测试工具的比较见表7-1


7-1                                                   各种类型测试工具的比较

类型

优点

缺点

开源

无需购买

可以改动代码

……

质量较差

没有售后服务

可能不符合公司业务

……

商用

有售后支持服务

质量可靠

……

价格贵

可能不符合公司业务

……

自开发

无需购买

符合自己产品

……

开发周期长

……

 

 

扩展阅读:自动化测试知识体系(ABOK

1)自动化在软件测试生命周期(STLC)中的角色

2)测试自动化的类型和接口

3)自动化工具

4)测试自动化框架

5)自动化框架设计

6)自动化测试脚本思想

7)质量优化

8)编程思想

9)自动化对象

10)调试技巧

11)错误处理

12)自动化测试报告

http://www.automatedtestinginstitute.com/home/index.php?option=com_content&view=category&id=69&Itemid=95


注:本书中扩展阅读大部分来自于百度百科,请见参考文献【6】。


扩展阅读:数据驱动与关键字驱动


1.数据驱动

数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。数据驱动测试注重于测试软件的功能性需求,也即数据驱动测试使软件工程师派生出执行程序所有功能需求的输入条件。数据驱动测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。


数据驱动,必须有数据来控制测试的业务流。比如测试一个Web程序,有很多页面,可以通过一个数据来控制每次是在哪个页面下工作的(即通过数据来导航到相应的页面)。它是关键字驱动的低级版本,它控制的是函数级的,而关键字是控制动作级的。所以数据驱动应该是可以控制整个测试的。


2.关键字驱动

关键字驱动测试是数据驱动测试的一种改进类型,它将测试逻辑按照关键字进行分解,形成数据文件,关键字对应封装的业务逻辑。主要关键字包括3类:被操作对象(Item)、操作(Operation)和值(value),依据不同对象还有其他对应参数。关键字驱动的主要思想是:脚本与数据分离、界面元素名与测试内部对象名分离、测试描述与具体实现细节分离。数据驱动的自动化测试框架在受界面影响方面,较数据驱动和录制/回放有明显的优势,可根据界面的变化更新对应的关键字对象,而不用重新录制脚本。


3.关键字驱动与数据驱动区别

关键字驱动的自动化测试系统与数据驱动的系统相比,主要的不同有两点:


第一点是数据文件的设计方法不同,数据驱动系统中数据文件存储的是测试输入数据,脚本中仍然存在业务逻辑,这样业务的变化会引起脚本的更改,而关键字驱动系统数据文件的设计将业务和测试输入数据都集成在数据表格中,虽然设计复杂,但当业务发生变化时,无需更改测试所用的脚本,从而提高了测试的效率。


第二点是与数据驱动系统相比,由于关键字驱动系统中数据文件的设计包含了业务信息,因此,将测试所进行的操作封装为关键字支持脚本。由动作封装的关键字支持脚本不包含任何的数据和业务信息,其重用性得到了极大的增强。


顾翔凡言:

不是好的工作会给你带来好的心情,而是好的心情会给你带来好的工作。

目录
相关文章
|
3月前
|
数据采集 JSON JavaScript
Cypress 插件实战:让测试更稳定,不再“偶尔掉链子”
本文分享如何通过自定义Cypress插件解决测试不稳定的痛点。插件可实现智能等待、数据预处理等能力,替代传统硬性等待,有效减少偶发性失败,提升测试效率和可维护性。文内包含具体实现方法与最佳实践。
|
4月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
4月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
424 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
3月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
4月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
551 11
|
4月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
206 6
|
4月前
|
人工智能 Java 测试技术
单元测试覆盖率的自动控制技术
Jacoco是Java程序覆盖率工具,可以在pom.xml通过配置来自动控制程序的覆盖率
117 5
|
5月前
|
算法 测试技术 API
从自学到实战:一位测试工程师的成长之路
在技术快速发展的今天,自动化测试已成为提升职场竞争力的关键技能。本文讲述了一位测试工程师从自学到实战的成长之路,分享他在学习UI、APP和API自动化过程中遇到的挑战,以及如何通过实际项目磨炼技术、突破瓶颈。他从最初自学的迷茫,到实战中发现问题、解决问题,再到得到导师指导,逐步掌握测试开发的核心思维,并向测试平台建设方向迈进。文章总结了他从理论到实践、从执行到思考的转变经验,强调了实战、导师指导和技术服务于业务的重要性。最后,邀请读者分享自己的技术突破故事,共同交流成长。
|
12月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
7月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1097 23