我的面试问题之一是:
假设您正在处理桌面应用程序。客户端应用程序与后端引擎进行通信,用于biz逻辑和数据的呈现。考虑到后端引擎正在从遗留技术堆栈转移到最新的Java堆栈,因此提出了测试策略。
很明显,我的回答并不令人满意。你能建议一下这个案子的更好的测试策略吗?
我的建议是:因为整个后端引擎都被迁移了,所以我们需要执行所有的系统测试用例和自动化脚本。
他们期待着可能出现的风险清单和缓解计划。
发布于 2017-09-13 19:54:49
当他们要求一个测试策略时,你可以有效地用一个测试计划来回答这个问题--一个高层次的测试列表--当他们要求一个测试策略时,也就是说,一个高级的描述,说明你将如何处理迁移或重写这样的规模。
其他的答案包含了一些好的建议。我想补充如下:
有了这些信息,您可以对测试方法的各个方面进行优先排序,首先涵盖关键特性,其次是大多数使用的特性,以及其他需要的特性。您还可以列出一些策略,例如并行执行、针对两个系统运行自动测试、针对两个系统运行性能测试以及针对这两个系统运行安全测试。
这就是我对待面试问题的大致方式。
发布于 2017-09-13 18:26:45
首先,在某个地方,人们对他们想要讨论的考试水平存在误解。你关注的是低层次的“我该怎么测试.”他们有兴趣知道有什么风险。如果这种错误沟通经常发生,那么还有一个比你如何回答更大的问题,可能与你要面试的角色有关。
第二,我不确定你是否理解他们提出的问题的大小。他们打算做的事情经常被描述为“在飞机飞行时改变747的机翼”。他们希望在不改变系统其他部分的情况下完全替换系统的一部分。您建议的是回归/API测试,在这种情况下,回归/API测试是所有所需内容的一部分,但还远远不够。许多这样的项目之所以失败,是因为它们对于任何现实规模的系统来说都很难做到。
作为风险和缓解计划(我不认为这是QA/测试角色的责任的一部分;风险,可能,但不是缓解计划;更多的是建筑师/项目规划师的责任),我想到了一些事情:
1)绩效。新应用程序能处理与以前的应用程序相同的负载吗?与其他应用程序相比,它的规模有多大?它有不同的压力点吗?(也就是说,旧版本开始减速是因为它饱和了数据库I/O,新版本由于开始页面到磁盘或类似的东西而减慢速度)。根据测试结果,您可能需要迁移到不同的硬件、分解后端数据库或重新设计新的应用程序。
2)已知的错误/无文档的功能。实际上,系统存在bug或未定义的行为,而客户端应用程序则依赖于这种行为,这是很常见的。因此,您的替换系统不仅必须按照规范所述的方式运行,还必须按照其他系统实际的行为方式进行操作。为了测试这一点,我可能希望在信息流级别实现某种记录/重放功能,并验证对于给定的客户端输入,新后端给出了对活动数据的相同响应。
3)复杂性。正如我所说,这些努力很难做到,而且往往失败。一个更好的方法可能是重新架构当前的后端,使其不那么单一,并有更明确的责任筒仓。然后你可以,而不是一次更换整个东西,取而代之的是零碎的。
发布于 2017-09-13 19:23:32
这种开放式问题(而且很少有后续问题)很好地区分了那些有经验的人和那些试图假装的人。所以不要试图假装它(它很容易被发现),假装它只是在浪费每个人的时间(包括你的时间)。
相反,请描述类似的情况,在这种情况下,您可以测试更改系统的部分,在那里您确实有经验。如果你没有,告诉我你做了什么。
在面试中,他们不关心如何解决他们问到的任何问题(如果他们不知道,他们会聘请外部专家)。他们想知道你是否有解决问题的经验,以及你的方法是什么--所以告诉他们你知道怎么做,不要试图伪造一些你没有的经验。
在工作场所SE,你会得到更多关于如何处理难的面试问题的建议。
https://sqa.stackexchange.com/questions/29523
复制相似问题