测试在软件开发中起着很大的作用;尤其是在质量保证方面。然而,当这些任务被严格划分时,测试人员会发现与工程师相处的问题。
不过,在敏捷顾问Janet Gregory看来,测试人员和工程师团队只有在一起工作时才能茁壮成长。在这一集中,Janet将帮助我们了解这些团队文化的细微差别,以及合作对测试和软件开发的好处。
简介
敏捷顾问和作家Janet Gregory在她的职业生涯中很早就开始做测试员。事实上,在她大学期间的第一份工作是作为程序员。在担任开发人员的时候,Janet的上司明确告诉她,在负责编写代码的同时,她也要负责测试。
一旦珍妮特离开大学,在前温哥华证券交易所的清算系统中找到一份新的工作,这种开发和测试是一个硬币的两面的文化就一直跟随她。关于那里的代码经验,珍妮特回忆说:"我们是用COBOL编写的,所以没有单元测试"。
然而,测试工具的缺乏有利于形成强大的测试文化。系统中的一个故障可能会导致潜在的损失,所以她和她的同事们在部署之前必须仔细检查他们写的任何代码。
什么是正确的测试文化?
测试本身经常被描绘成妨碍编码的方式。在过去,珍妮特多次遇到软件开发行业内的信念,即开发人员最好不要管。
"开发人员,不要和他们说话。他们是最重要的人:'只要把披萨滑到门下,让他们做他们的编码'",她讽刺说。
然而,随着敏捷方法论开始走上前台,测试和编码之间的跳水和对抗线已经减少了。因此,虽然Janet继续在一些公司看到为开发人员和他们的代码提供完全自主权的想法,但她也认为现在的开发人员和公司对测试的实践和重要性的认识明显提高。
"人们在问,'我们要解决什么问题?他们在看问题,并一起思考;这不是两个人去搞清楚,然后来告诉其他人"
-Janet Gregory, 敏捷测试顾问
软件工程和测试文化
当涉及到开发人员和测试人员之间的文化差异时,无论是否是敏捷团队的情况,Janet认为,如果这些在他们的角色之间保持距离,就很难达成合理的条件。
为了描述这一点,Janet使用了这样的比喻:开发人员将他们的代码发送给测试人员,就好像是 "被扔到了墙上"。这说明,"当测试人员在代码建立后进行测试时,自然会变成一种对抗关系"。
在工程和测试团队相互隔离的动态中,每当测试人员发现代码中的错误并报告时,都会成为开发人员的负担,他们会把它当作对其工作的批评,甚至是针对个人。
同样地,如果开发人员未能修复代码,测试人员也可能采取错误的方式,并认为开发人员不愿意合作。
如何调和软件工程和测试文化
珍妮特认为工程师和测试人员之间的合作从一个功能被引入的那一刻起就是关键。
"我认为,当团队从一个新功能的开始就一直在这个旅程中,然后把它带到生产中,了解发生了什么以及我们的客户是如何使用它的时候,神奇的事情就发生了。
-Janet Gregory, 敏捷测试顾问
通过协作,测试人员团队可以在这些功能推出后立即学习,并为它们建立测试,学习它们可能给产品带来什么风险,如何减轻这种假设的风险,以及什么是这些功能最方便的测试形式。
换句话说,根据这个功能的性质和可能妥协的地方,测试人员可以选择性能测试、负载测试、恢复测试等。
然而,Janet并没有忽视,实现这种水平的合作并不容易,在试图满足产品的最后期限或许多产品同时进行的情况下,更不容易。这些也应该进入组织的文化。
在珍妮特看来,公司应该赞成跨职能和协作的工作方式。她明白,"需要整个团队来制作一个高质量的产品;你不能把他们当作独立的 人"。
因此,珍妮特提出了她所谓的 整体测试,作为开发人员和测试人员团队合作的一种方式。
正如她在她的网页上所定义的整体测试是一种软件开发模式,它将测试和编码作为同一反馈循环过程的一部分。
此外,在整体测试中,测试超越了编码,存在于产品设计的每个实例中,以最大限度地提高产品质量。同时,整体测试也鼓励设计质量属性。质量属性是任意选择的功能和非功能要求,用于评估产品质量。
Janet推荐质量属性,承认系统中的故障可能带来的风险,并将质量属性和测试规划为意识到这些指标并避免这些情况。
学会确定优先次序
另一方面,Janet认为,为了创造一种确保高质量产品的文化,组织和团队必须学会优先考虑什么。在这方面,虽然赞成外部顾问,但珍妮特建议不时利用团队成员来观察团队的工作方式。
通过这种方式,团队成员可以学会退后一步,用新的眼光来判断他们正在做的事情。"可能就像我们如何进行测试一样简单,这并不简单,但我们可以停下来思考一下。我们是否应该以不同的方式进行测试?我们的产品有什么变化?我们的组织有什么变化?
也许我们从一个10人的小团队发展到了60人。我们必须改变我们对依赖关系的思考方式吗?我们必须改变我们与其他小组的互动方式吗?"
珍妮特对质量评估有类似的方法。质量评估是审查代码、架构和测试以了解其是否符合开发和行业标准的做法。
谈到质量评估,Janet认为,这都是关于提问的问题。
"我们经常根据所列出的实践进行评估,选择任何你想要的方法。我们是否做到了这些做法?但是,这又回到了,我们是否在看我们为什么要做这些做法?它背后的原因是什么?"
-Janet Gregory,敏捷测试顾问
她还发现,团队不应该在单一的质量水平上进行分类,因为他们不同活动的深度很难转化为均匀的结果。
"他们可能在开始时围绕一些测试处于混乱状态,但他们已经有了非常好的规划,所以团队永远不在一个水平上。"
-Janet Gregory, 敏捷测试顾问