你能教我软件测试吗?
这是最简单的问题之一,也是最难执行的问题。让我们找出原因。在软件测试领域,没有一个管理当局。每个人都有自己定义和执行软件测试的方式。 有些人认为软件测试是一种纯粹的验证行为,并根据记录的需求进行验证,还有一些人把它当作一种充满探索和实验的调查之旅。最终的目标是为利益相关者提供与质量有关的信息,以便他们能够做出明智的决定。
现在情况明朗了,让我们来探讨一下大多数人是如何将软件测试教给感兴趣的人的,这很难。
了解用户
测试是在产品上进行的--由人使用,由人开发。可悲的是,重点只限于产品,这很伤人。软件测试并不是仅仅从产品开始或结束的。除非你也关注客户,即参与设计和构建产品的人,否则你将失去软件测试的有价值的层面。有多少人像重视产品一样重视客户和团队?想一想吧。
每个产品都是为了解决一个问题。如果问题没有得到解决,产品和项目就会被浪费掉。想象一下,在不了解背景的情况下详细了解产品的情况。可悲的是,许多培训师和学习者都是如此。也要了解背景。了解谁在使用该产品。为了帮助最终用户,了解他们--他们的动机、喜欢、不喜欢、行为模式、偏见、当前解决问题的方式等等。
与其他利益相关者交谈
花一两天时间与你的产品的客户支持团队交流。你会发现一些功能对用户来说是多么困难。你也可能有机会观察到许多客户是如何面对同一个问题的趋势。在你看来简单明了的问题,对每个人来说可能并不明显。另外,了解人们是如何用自己的方式使用产品的,有时可能会习惯于一个错误,以至于当你修复这个错误时他们会很恼火(真实的故事
)。
销售和市场团队也是关于产品信息的良好来源。看看他们如何推销产品的功能。了解这些团队提出的要求。销售脚本是否更新?他们是否以正确的方式--预定的方式使用产品?准备好迎接惊喜!也要记下客户提出的问题。它们会成为你的测试想法或下一个冲刺阶段的功能要求。
与程序员讨论
同时,关注谁在制造产品。他们的意图、模式、限制、压力、过去的记录和疲惫。当你对产品的构建方式有很多了解的时候,你就会更容易预测并迅速打结,节省时间并专注于更大的问题。程序员在日常工作中会有很多取舍。他们中的大多数都没有被记录下来。与程序员交谈以了解他们所面临的困难--不一定是在正式的会议场所。询问他们关于最危险的代码、经过良好测试的代码,以及一般来说--他们最担心的是什么。获取信息,甚至在这些信息上继续应用测试镜头。测试它。
地图不是领土
许多人把测试作为一个通过/失败、算法、测试案例驱动、自动化覆盖率驱动的脚本问题来关注,但却被现实世界、情感驱动、以用户为中心的使用模式与无数的组合和现实生活场景相结合所惊奇。你最后一次阅读产品的用户指南或按照步骤说明来发现一个新产品是什么时候?你见过一个孩子享受发现的过程吗?
测试应该是类似的思路,在这个过程中多一点(但不够死板)结构。尽管你很想确认某些事情是按预期进行的,但要确保同样探索如果的可能性,以及当你偏离脚本时会发生什么。作为一个测试人员,你的角色是获取信息--产品是否做了它应该做的事情,产品是否没有做任何损害产品/公司声誉的奇怪的事情,是否有任何需要强调的红旗?
在报告和讲故事方面做得更好
调查是困难的,特别是当它是以完全随机的方式进行的,没有注意到背景,并且在不了解相关系统的情况下进行的。甚至当好的证据以一种糟糕的方式呈现时,你也很少有人接受。因此,除了从多个利益相关者那里获得信息,使用产品,调查问题之外,现在是时候在报告和讲故事方面做得更好。我们可以从新闻记者那里学到很多东西--如何以一种连贯的方式传达大部分信息而不重复自己。
总结一下
- 关注用户
- 与程序员和其他利益相关者合作
- 测试不仅仅是通过/失败。重点是:这里有问题吗?
- 了解系统和相互作用。
- 注意上下文,更好地报告,讲述你所发现的故事。