人们常说“懒惰是程序员的美德”,因为程序员通常无法忍受重复低效的工作,所以他们通过编写软件程序,帮助人们解决问题,从而达到一劳永逸的效果。与程序员有所不同,测试工程师身上的美德有细心、耐心、可以胜任重复的工作等等。那么,作为测试工程师,我们是否也应该拥有“懒惰”的美德呢?我们是否需要在重复工作的过程中去思考和探索让工作“一劳永逸”的方法?
在软件测试工作中,通常会有一个“回归测试”的环节,“回归测试”是指程序员修改了旧代码后,测试工程师对项目重新进行测试以确认修改没有引入新的错误的过程。有时我们需要在短时间内回归测试软件系统大量的历史功能,有时我们需要每周回归测试软件系统的核心功能,有时我们还需要在版本发布前进行繁琐的配置,这些工作几乎是我们工作中很常见又很难改变的“痛点”。
如图1-1所示,笔者将这些“痛点”归纳为以下三类。第一类,例如软件系统大版本发布前的回归测试,会需要覆盖所有的历史功能,这类工作内容不仅具有重复性,而且工作量还很大。第二类,例如敏捷模式下的项目迭代,可能软件系统每周都需要发布,自然每周也都需要回归测试系统的核心功能,这类工作与第一类工作相比虽然工作量少了,但是工作频率却高了。第三类,例如发布版本前的参数配置、项目打包和部署过程,这类工作操作比较繁琐,且人为操作难免会有误操作。这些“痛点”工作除了有上述特点外,还有一个共同的特点:有规律。不管是重复的回归测试还是繁琐的配置打包工作,它们都有一定的规律:变化中也有不变。不变的内容可以是不变的操作,不变的流程,不变的周期等等。识别和确定问题的规律后,我们就可以尝试让这些“痛点”工作内容“一劳永逸”化。
以【爱测角】网站内容为例,每个迭代版本只要开发人员修改了网页的代码,就需要进行基本功能的回归测试工作,而这些测试工作大部分是不变的。
如图2-1所示,【爱测角】网站的回归测试的操作内容可以归纳为五个步骤。第一步,测试前,打开浏览器;第二步,打开网站后查看和操作页面的元素;第三步,验证页面显示和操作结果是否符合预期;第四步,记录和输出验证结果;第五步,测试后,关闭网页和浏览器。
以上五个步骤,也分别对应了自动化测试流程的五个环节,如图2-2所示:首先,测试前需要准备好测试环境;之后,执行测试步骤;紧接着,执行测试断言,也就是判断执行的结果是否符合预期;然后,输出测试报告,显示自动化验证的结果;最后,还原测试环境,释放系统资源,让测试环境回归起始状态。
通过上文的介绍,我们已经确定了解决“痛点”工作的步骤,剩下要做的就是让这些步骤自动化。例如,本文【爱测角】UI自动化测试案例是基于Python和Selenium实现的,其效果见文章底部视频。本文暂不展开分享基于Python和Selenium如何实现UI自动化,因为“懒惰”的做法可以是不唯一的,你也可以带着问题去寻找适合自己的答案。
作者简介:爱测鲸,爱测角成员之一。
文章首发于微信公众号爱测角
转载请注明文章来源公众号:爱测角并附原文链接