测试人员和开发人员的目标是相同的,即向利益相关者提供高质量的产品。但他们的思维方式不同。
正确的说法是,“测试人员和开发人员没有什么不同,但他们遵循不同的途径来实现相同的目标”。
开发人员认为:“我怎样才能提出申请呢?”
测试人员认为:“我怎样才能破解这个申请呢?”
测试人员和开发人员的行为就像猫和和老鼠。但最终的结果只有当他们一起工作时才是积极的。
说“如何破坏应用程序”并不意味着测试人员的座右铭是破坏开发人员所做的工作。这意味着测试人员开箱即用的思维并通过设身处地为顾客着想,在应用程序上应用所有可能的方案。这样做是为了使应用程序在活动环境中不会中断。
对于任何软件应用程序的开发,软件开发生命周期(SDLC)都扮演着重要的角色。之前,软件测试是在开发的最后阶段进行的。但是,在最后阶段修复错误/错误证明是非常困难和昂贵的。
因此,为了避免这种复杂性,现在,软件测试是SDLC每个阶段的一部分。这意味着测试从开发的第一阶段开始。
SDLC
“测试人员”从不同的创造性角度来看待应用程序,如果最终用户的需求得到了明确的理解,那么它就会产生很大的不同。
让我们在SDLC的不同阶段查看并简要了解测试人员的观点:
1)需求收集和分析:
在此阶段,根据涉众的要求,并通过积累应用程序的适当需求,编写需求文档。
需求文档将与测试团队共享,以便他们对建议的需求有自己的看法,并以“ReviewComments”的形式发送他们的查询。查询可以是任何内容,无论是对任何特定部分的理解,还是对未来可能出现的错误的预测。
让我们把常见的例子:最终用户的要求是“输入字段不允许特殊字符”。
开发人员的作用:显然,通过检查用户输入任何特殊字符时,会抛出错误或显示正确的错误消息,编写用于插入输入字段的代码。
测试人员的观点:测试人员将首先检查所述的需求,但随后他将考虑多个场景。他会有这样的问题:
如果输入框中只包含特殊字符,怎么办?它会向用户显示相同或不同的消息吗?
如果用户将特殊字符和字母数字字符的任何组合复制并粘贴到输入框中怎么办?
还有许多其他类似的场景,测试人员在检查时会考虑到这些场景。需求文件.
对于评估任何产品或应用程序,测试意味着对产品进行质疑,以涵盖几乎所有的场景,因为最终用户可以是任何人,并且可以他们想要的任何方式使用应用程序。
2)系统/应用程序设计:
在收集数据和最终确定需求之后,开发商开始在应用程序上进行设计。这包括在开发人员实现之前对设计文档进行审查。
测试员通过他们的理解和创造性思考,分析所有新特性、增强、集成、UI更新,以及需求中提到的所有可能的场景。它们创建测试用例、健全检查列表和数据,以便当应用程序进行测试时,它们已经准备好了它们的测试参数。
#3)执行阶段:
在这个阶段,开发人员实际上实现了最终的系统设计。
当我们从开发者视角,它们的重点是构建功能,这是所需的。在他们看来,功能将完美而高效地工作。
但当我们看到测试者视角,它与开发人员的正好相反。当开发人员专注于实现该功能时,测试人员应用他们所有的创造力来测试该功能。还有一种情况是,开发人员误解了需求,在这种情况下,当测试人员应用他们的场景时,应用程序就会失败。
#4)系统测试:
在此阶段,开发人员将应用程序上载到分期/质量保证环境(可供测试人员测试的环境)具有由开发人员在特定sprint/版本中实现的一组已定义的功能。
开发商上传应用程序的概念是,实现的功能按照指定的需求完美地开发;他们只是将应用程序提供给测试人员重新验证。
但对于测试人员除了所需的功能之外,最终用户还可以考虑使用特定应用程序的其他许多不同的方式。测试人员的任务是运用他们的创造性思维和探索每一个可能的场景。
#5)维护阶段:
这个阶段是检查测试人员和开发人员的共同努力。
所有实现之后的最终应用程序被发送给用户使用它。如果它按预期工作,那么就没有问题了。但是,如果有任何偏差,它再次需要测试人员和开发人员在维护阶段的共同努力。
测试人员和开发人员共同组成一个有效的团队。因为确保最好的产品是双方的责任。如果两者都与正确的理解和积极的反馈一起工作,这是实现的。
让我们看看定义测试人员和开发人员角色的一些重要要点:
虽然开发人员应该确保他们开发的内容中没有bug,但是测试人员应该确保如果存在bug,就应该报告这些错误,并在正确的时间进行修复。
开发人员应该以积极和建设性的方式接受测试人员的反馈。
必须说,开发人员是某一特定技术领域的“专家”,他们可以根据需求使用他们的所有技术技能来开发项目。测试人员是第三方(假设是应用程序的虚拟用户),他们以有效的方式报告错误或错误,从而确定应用程序的质量并确定需要改进的地方。
作为一名测试员工作:
当然,有许多优秀的开发人员能够很好地测试。重要的一点是,作为一个人,我们不能单独测试我们的东西/应用程序,我们确实需要第二个人的意见和反馈。
“测试者”是不受开发的应用程序影响的人,他根据在所有可能的情况下使用应用程序的实际经验作出自己的判断。
好的测试器知道用户在学习和使用新产品时会犯很多错误。实时用户喜欢通过尝试和查看所发生的事情来学习使用新产品,而不是阅读手册。
所以测试器的主要焦点是“什么会出错”。。开发人员的主要重点是根据需求交付项目。
一个好的测试者和一个好的开发人员:
好的测试器是一个能适应冲突的人。很多次它变得非常很难找出错误的来源也就是说,它可能是编码错误、文档错误、设计错误,甚至可能不是bug。但是测试人员的职责是报告每一个错误。
好的开发人员是以积极和建设性的方式接受反馈,诊断问题并对其进行调试的人。但是开发人员经常避免冲突,这会造成障碍。
结论:
因此,我在结束我的文章时说,理解差异对于富有成效的团队至关重要,但不同的方法有助于找到解决方案,并导致交付最佳工作的产品。
每个人都在做自己的工作。开发人员在那里开发应用程序。测试人员在那里测试应用程序。
原文地址:http://blog.51cto.com/13879140/2153188