我的软件测试之旅:(12)机遇——测试自动化培训师和教练

简介:

测试自动化小组尝试过另一款芬兰同事开发的新型框架,名字叫做robotframework,如今已经开源。这个框架本身使用Python语言开发完成,用来开发可接受性测试,是关键字驱动的测试自动化框架,支持多种测试用例的格式,我最喜欢的是使用表格的HTML文件格式。框架非常好用,各方评价都非常高,但是由于核心的开发者都在芬兰,杭州本地需要有人能够进行培训、辅导,才有可能做到快速地推广使用。于是测试自动化小组的同事参加了该框架的高级培训,以及如何进行入门级培训的培训,然后向杭州研发中心的其他同事提供培训,帮助他们使用这个框架实现测试用例的脚本化。

  测试框架的使用推广很快,该产品线决定全面采用此框架来实现测试自动化,包括手工测试的用例也需要使用此框架来撰写和管理。并且还专门成立了一个团队为产品线开发库函数,封装操作命令,以便于测试人员们可以不必担心太多库函数编程的问题,快速地实现测试用例的脚本化。

  但是测试自动化并不只是将测试用例实现脚本化而已,它是一个复杂的活动,同样包含测试用例的设计、测试方案的选择、测试验证手段的选择等等步骤,而且还必须考虑到在自动化执行的情况下,机器和被测对象的之间的交互方式和人不同,观察被测对象反应的方式也不同。更不用提到脚本本身也是一种代码,而代码如果质量不高就会产生大量的技术债务。在缺乏编程经验的测试人员手中就更是一场灾难,他们会复制、粘贴现有的测试脚本,再做相应的修改,重复的脚本片段或是无关脚本片段的残留物可谓是司空见惯。测试人员也渐渐地从欢迎转变到了叫苦连天的态度,抱怨他们需要花非常多的时间调试出错的脚本,根本就没有时间去进行“真正的”测试。

  为了能够更好地推广测试自动化,也为了能够解决测试自动化所带来的这些问题,管理层决定设立测试自动化教练的角色。我是被选定的两位教练之一。我们所服务的对象不仅仅是参加过Scrum试点项目的那批人,还包括刚刚进行敏捷转型不久的数百人大组织。

  在培训师和教练的工作中,我发现一些常见的问题:

  ● 不愿意花时间去熟悉工具:很多测试工作者参加完基础培训之后就不再花时间去查看工具的相关文档,不愿意去熟悉其操作技巧以及库函数开发,连一些非常简单的小技巧也不知道,开发出来的测试用例很臃肿,使用的测试操作往往要耗费很多的CPU或者内存资源以及执行时间。

  ● 不愿意去阅读现有的用例:由于种种原因,一些测试用例本身就非常难读懂,导致后续接手的测试人员不愿意花时间去理解用例的设计思路,或者是去理解其中的每一步操作,往往满足于用例运行通过即可,用例失败时也只是以修改后用例通过为目的。

  ● 需求和用例间断裂的联系:敏捷转型给测试工作带来了一系列的挑战,首当其冲的就是从需求到测试用例的整条线索如何延续。以往会比对软件模块的功能需求条目和测试用例,衡量测试的覆盖率,而Scrum模式下开发的粒度是特性,无法沿用此做法。于是在此时,我们提出了Robot Case as Requirement的想法,也即利用robotframework测试用例本身描述性强的特点,来承载需求文档的作用,而测试用例自身就是可执行的自动化脚本。

  ● 测试工作者失去的归属感:在Scrum模式下,测试工作者散布于每一个跨职能特性团队中,很可能孤单一人,团队里最多也就2~3个做测试的。相比以往单独的测试部门,大家没有了归属感,也不知道该找谁问问题、在哪里获取测试相关信息以及如何提高自身的测试能力。我们也为此成立了测试社区Test Community,定期聚会,邀请大家来分享自己的心得体会,互相学习提高,还有在线论坛供大家交流,社区已经可以自我推动着持续发展壮大。

  ● 缺乏测试自动化理论知识:测试自动化(Test Automation)和自动化测试(Automated Test)其实是两个不同的概念,测试自动化是包括测试计划、测试用例设计、执行、分析、报告各个阶段在内的一系列活动,而自动化测试可以看做是仅仅把测试用例的操作实现成脚本而已。缺乏测试自动化理论知识会累积测试技术债务,难以维护、脆弱易损的测试脚本就像是低质量、漏洞百出的代码,后期的维护、修复开销远超过鲁莽自动化所带来的那一点点效益。

  ● 软件本身低下的可测性:可测性可谓是测试自动化的关键,可测性不高的软件本身就难以进行测试,测试自动化则更加依赖软件的可测性。机器不像是人,可以通过眼睛观察多处信息,并且找到其中的联系,或是在脑中进行逻辑分析,从蛛丝马迹间找到问题。测试自动化需要采取适合于机器的脚本执行、信息收集、结果分析的测试方法,一定程度上这都依赖于软件本身要提供准确的、适量的信息。

  ● 测试工作者不熟悉Scrum:Scrum模式要求团队是跨职能特性团队,应该着手培养出通才化专家(Generalizing Specialist),通过加强团队内的交流,开发、测试以及其他职能人员通过合作和沟通互相学习,摸索出适应迭代增量模式的工作方法。但多数测试工作者依然是按照类瀑布模式的方式工作,在Sprint前期空闲后期忙碌,来不及完成测试。当然,这也和不了解测试自动化,或是可接受性测试驱动开发有关系。








====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
相关文章
|
29天前
|
测试技术
现代软件测试中的自动化工具与挑战
传统软件测试面临着越来越复杂的系统架构和不断增长的测试需求,自动化测试工具应运而生。本文将探讨现代软件测试中自动化工具的应用和挑战,深入分析其优势与局限性,为软件测试领域的发展提供思路和启示。
|
29天前
|
安全 测试技术
现代软件测试中的自动化技术应用及挑战
在当今数字化时代,软件测试的重要性日益凸显。本文探讨了现代软件测试中自动化技术的应用现状和挑战,分析了自动化测试在提高效率、降低成本、增强可靠性等方面的优势,同时也提出了自动化测试所面临的挑战和解决方案。
|
25天前
|
jenkins 测试技术 持续交付
现代软件测试中的自动化工具与挑战
随着软件开发领域的不断发展,自动化测试工具在测试过程中扮演着越来越重要的角色。本文将探讨现代软件测试中自动化工具的应用及面临的挑战,旨在帮助开发人员和测试人员更好地理解和应对自动化测试中的问题。
|
9天前
|
敏捷开发 监控 测试技术
深入探索软件测试中的自动化边界
【4月更文挑战第10天】 在现代软件开发过程中,自动化测试已成为提升效率、确保质量的关键手段。然而,随着技术的不断进步和项目需求的多样化,确定自动化的合理边界成为测试工程师面临的重要问题。本文将探讨如何界定自动化测试的有效范围,包括成本效益分析、风险评估与技术选型等方面,并提出一种基于风险和回报权衡的自动化测试策略。
|
12天前
|
测试技术
深入理解软件测试中的自动化边界
【4月更文挑战第7天】 在追求快速交付和质量保证的双重压力下,软件测试领域正经历着从手工到自动化的转变。本文旨在探讨自动化测试的有效边界,即哪些场景适合自动化,以及如何界定这些边界以优化测试策略。通过对自动化测试优势、挑战及适用性的分析,文章为读者提供了一个清晰的框架,用于评估和实施自动化测试。
|
14天前
|
jenkins 测试技术 持续交付
软件测试|docker搭建Jenkins+Python+allure自动化测试环境
通过以上步骤,你可以在Docker中搭建起Jenkins自动化测试环境,实现Python测试的自动化执行和Allure报告生成。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
34 6
|
18天前
|
Java 测试技术 API
软件测试中的自动化工具与策略
软件测试是确保软件质量的重要环节,而自动化测试工具和策略的应用在提高测试效率和准确性方面发挥着重要作用。本文将介绍几种常见的自动化测试工具,并探讨在软件测试中应用自动化测试的最佳实践和策略。
|
28天前
|
人工智能 测试技术 虚拟化
现代软件测试中的自动化工具与技术
随着信息技术的迅猛发展,现代软件开发和测试领域也在不断创新。本文将探讨现代软件测试中自动化工具与技术的应用。通过分析自动化测试的优势、挑战以及最佳实践,帮助读者更好地理解当前软件测试领域的发展趋势,并为实际工作提供参考。
16 1
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率:AI驱动的自动化测试策略
【2月更文挑战第30天】随着人工智能(AI)在软件开发周期中的日益普及,其在提高软件测试效率方面的潜力正受到越来越多的关注。本文探讨了如何通过集成AI技术来优化自动化测试流程,从而减少重复工作、提高错误检测率和加快反馈速度。我们将分析当前AI在自动化测试中的应用,并提出一系列策略以利用AI改进测试案例生成、执行和维护过程。
66 0
|
7天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。