我想问一下自行车的功能是什么以及各个部件如何协同工作以实现此功能。我推断出自行车具有3个主要功能。由动力传动系统通过使用者的踏板旋转,使用者操作的制动机构和前轮的旋转来驱动。
现在,我已经确定了主要功能,可以将它们分解为较小的问题进行测试。为了这篇文章的缘故,我将直接进入动力总成。我将确定用户踩踏板时它将转动链条,从而将链条向前拉。该链条连接到后轮上的链条上,该链条通过链条所提供的能量传递来转动车轮。然后我会问这是用户使用自行车的唯一方法吗?踩踏板是客户可以访问的唯一功能吗?如果是这样,我将进行测试以确保此功能正确捕获任何无效输入或使用。
我需要测试每个单独的零件以构建更大的测试。我将检查踏板类如何调用Chaining类。他们如何互动?如果我将参数“ pedal_backwards”传递给链接,会发生什么情况?踩链对踏板有哪些限制?接下来,我将检查Chaining如何调用Chain类。此调用有哪些约束?对于后链,我将执行相同的操作。
基本上,我会将对象分解为较小的问题,并测试它们之间的相互作用。这样,对代码库所做的更改仍然可以在我的测试中进行测试,并且可以继续独立运行。
我走对了吗?我并没有得到太多信息,只是工程师会选择一个现实世界的对象并要求我对其进行测试。
谢谢
#1 楼
采访中经常会测试现实世界中的对象。访谈通常会选择一个每个人都曾经见过并使用过的对象。通常,我遇到了“如何测试咖啡杯或旅行杯”的问题。测试墨水笔也很常见。尽管可能会以自行车为对象,但是由于面试的时间限制,通常会给您一些简单的信息,这就是为什么咖啡杯很普遍的原因。通常也不会从面试官那里得到关于实际对象的疑问的明确答案。到目前为止,您的答案与单元级的功能测试以及某些集成测试相符- -所有重要的事情都在测试。请记住,单元测试通常是开发人员的领域,而集成测试则是针对质量检查的。
在采访中测试真实世界的对象并没有“正确或正确”的答案。面试官在寻找的是您的流程,测试方法,详细程度和彻底程度。这个问题可以帮助面试官将您与其他应聘者进行比较,因此您越详尽,越详细,您的机会就越多。用户体验,端到端,安全性,可访问性等。考虑边缘情况。想想可能适用的任何政府法规(对于某些行业非常重要,例如金融,健康/医疗,汽车,航空航天等)。您怎么打破物品?
以您的自行车为例,政府对此有何规定?如果您用汽车/卡车撞倒自行车会怎样?如果骑车时链条脱落会怎样?如果骑车时轮胎漏气怎么办?座位的用户体验如何?座椅和转向调节?修理flat胎怎么样?如果您将自行车放在恶劣的天气条件下怎么办?谁是该产品的主要,次要和第三级用户角色,他们如何不同地使用该产品?我可以想到更多问题和考虑因素-这应该有助于使您的想法在其他领域传播。是软件或现实世界对象应该如何工作的方式。更难的是悲伤的道路/负面的测试。寻找打破它的方法。请记住短期质量和长期质量。
您的答案还应该反映出通用的测试基础,例如边界验证,等效分区,全对测试。由消费者报告和保险商实验室(适用于任何电子形式)完成。您可以阅读他们的一些报告以获取想法。相同的质量检查和测试方法适用于非软件产品。
#2 楼
我认为您已经详细介绍了不同“级别”的测试,但是测试也包括了不同“类型”。人们可能会将安全性,性能,可靠性和安全性视为重要的质量参数测试对象。我认为您可以轻松地将它与“自行车”联系起来,并提出其他方案,这些方案可以向面试官展示您如何从不同角度看待它,并涵盖测试的各个方面,而不仅仅是最明显的一个(“功能”)这可能会让您与其他候选人脱颖而出。
#3 楼
在软件测试中,拥有相同的词汇很重要。我会通过询问有关您的作业的信息问题来开始您的面试。对于自行车,我会问:什么类型的自行车?山地车,电动车,带齿轮的儿童车...
重点是您需要澄清。
测试思路。
您可以开始与测试之旅。凯利(Kelly)在该主题上有出色的文章:“通过测试国家参观”,
旅行的目的是了解自行车。可以探索所有功能,例如电池寿命,齿轮,断裂。在这里,您无需查找错误,而只是了解自行车。可测试性之旅。
比起您应该开始寻找错误。为此,您可以使用一致性启发法。 FEW HICCUPPS提出了这个想法。例如,如果您有一辆山地自行车,则可以将其与其他生产商的山地自行车进行比较。两种资源,您可以在面试中测试几个小时。
#4 楼
它可能与自动化和编程无关。当我看到这个问题时,我会考虑对象的属性。
什么使它有用?它可以带来什么功能?从这里开始。
评论
已经有一些答案涵盖了有关对象的测试用例/场景的思考,但是当我问或被问到类似的问题时,我总是要问的第一件事是“对象打算做什么?”。下面的答案提到了咖啡杯,但是如果我将咖啡杯设计为办公桌上的铅笔架怎么办?测试用例应与产品的意图有关,而不与对象可能用于的任何事情有关。