软件测试技术实战 设计、工具及管理》联载-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.关键字驱动与数据驱动区别

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


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


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


顾翔凡言:

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

目录
相关文章
|
1天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
22 3
|
7天前
|
前端开发 JavaScript 测试技术
前端小白逆袭之路:如何快速掌握前端测试技术,确保代码质量无忧!
【10月更文挑战第30天】前端开发技术迭代迅速,新手如何快速掌握前端测试以确保代码质量?本文将介绍前端测试的基础知识,包括单元测试、集成测试和端到端测试,以及常用的测试工具如Jest、Mocha、Cypress等。通过实践和学习,你也能成为前端测试高手。
24 4
|
6天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
17 1
|
10天前
|
前端开发 数据管理 测试技术
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第27天】本文介绍了前端自动化测试中Jest和Cypress的实战应用与最佳实践。Jest适合React应用的单元测试和快照测试,Cypress则擅长端到端测试,模拟用户交互。通过结合使用这两种工具,可以有效提升代码质量和开发效率。最佳实践包括单元测试与集成测试结合、快照测试、并行执行、代码覆盖率分析、测试环境管理和测试数据管理。
23 2
|
10天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
16 1
|
11天前
|
前端开发 JavaScript 数据可视化
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第26天】前端自动化测试在现代软件开发中至关重要,Jest和Cypress分别是单元测试和端到端测试的流行工具。本文通过解答一系列问题,介绍Jest与Cypress的实战应用与最佳实践,帮助开发者提高测试效率和代码质量。
24 2
|
12天前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
25天前
|
jenkins 测试技术 持续交付
提升软件测试效率的实用技巧与工具
【10月更文挑战第12天】 本文将深入探讨如何通过优化测试流程、引入自动化工具和持续集成等策略,来显著提高软件测试的效率。我们将分享一些实用的技巧和工具,帮助测试人员更高效地发现和定位问题,确保软件质量。
41 2
|
12天前
|
人工智能 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
|
12天前
|
安全 大数据 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(3-2):渗透测试行业术语扫盲)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(3-2):渗透测试行业术语扫盲)作者——LJS
下一篇
无影云桌面