敏捷测试3.0
发表于:2016-11-09来源:测试窝作者:译者:亚然点击数:
标签:敏捷测试
敏捷测试人员通常被称为质量分析师、 SET、测试工程师和QA lead,以及其他一些名称。我已经做了一段时间的测试了,下面我将基于如何在敏捷团队中做好测试 分享一些个人观点。在
敏捷
测试人员通常被称为质量分析师、 SET、
测试工程师和QA lead,以及其他一些名称。我已经做了一段时间的测试了,下面我将基于如何在敏捷团队中做好测试 分享一些个人观点。在本文中,将用QA来代替敏捷
测试人员。
即使在敏捷团队,大多数人也会把QA当作一个独立的角色使之与其他团队成员区分开来。我认为这是一个过时的概念。QA和
开发人员的区别在于思维方式的不同。
那么QA之间又有什么不同呢?QA可以分为三类:业务、技术、Devops,我把它们称之为QA的三个维度。QA可能具备其中的一个或者是这三类中所有的技能。
让我们来更深层次的了解一下每一个层面:
业务:
在这一方面,QA在真正的驱动着业务。他们协助团队了解客户提供的业务范围。QA良好的沟通技巧使团队更专注于整个项目的业务问题。
他们擅长把客户
需求转化为验收
测试用例,BDD技术的使用可以帮助他们用来打破有着业务背景的客户和有着技术背景的工程师之间的壁垒。
在用户故事开始之前,他们会和软件开发工程师一起结对并持续于用户沟通,以便了解更多的业务信息。再此期间,他们会督促软件开发工程师来写验收测试,以确保用户故事能够及时的被测试。
这些QA可以多看一些这样的书,如:
《Specification by Example: How Successful Teams Deliver the Right Software》
《Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing》
《The Cucumber Book: Behaviour Driven-Development for Testers and Developers》
技术:
我的工作与此密切相关,因为敏捷团队中的QA都需要有过硬的技术和良好的
编程技巧。实际上,在一个敏捷团队中,软件开发工程师和QA应该没有区别的,每个人都是工程师。
技术型的QA和软件开发工程师可以一起结对编程而没有任何技术上的差距。他们也可以协助软件开发工程师来实现TDD、提升在代码整洁和设计模式方面的能力,并确保产出高质量的代码。他们可以利用丰富的
自动化测试知识,协助团队为项目选择合适的测试框架。他们还要负责确保团队有一个良好的测试策略。
从技术角度来说,QA在非
功能测试方面有了很好的经验和技术后,还可以做
性能测试和
安全测试。对于
性能测试中,他们协助客户一同确定SLA(服务等级协定),然后就进行
性能测试来检测是否达标,并跟进性能优化后应用是否达到SLAS要求。
QA也会参与安全测试,他们根据从用户那里获取的需求来分析可能存在的安全漏洞。然后设计测试用例来验证这些潜在的漏洞是否能够通过安全机制来覆盖。
此类QA可以看这些书,如:
《Test Driven Development: By Example》
《Clean Code: A Handbook of Agile Software Craftsmanship》
《The Art of Application Performance Testing: Help For Programmers and Quality Assurance》
Devops:
测试跟Devops又有什么关系呢?其实QA可以运用他们的Devop的相关技能帮助团队来做很多事情的。
他们引进连续交付的实践,并帮助团队创建持续集成流水线,以便每次提交代码后都能及时得到反馈。这将帮助团队能够更频繁的发布新特性到产品环境。甚至有时可以实现每次提交经过流水线的验证后就可以直接发布到线上。该流水线会包含编译、打包、代码扫描、
单元测试、组件测试和功能测试。
Devops方向的QA会通过设置一些脚本来帮助团队成员能够更方便的在本地执行测试。而有些时候为了测试用例的并发执行,需要在虚拟机上配置并执行测试。