测试主要分为手动测试和自动化测试。关于这一点,我想到了一些问题。
它们包括:
这两种测试的基本区别是什么?
手动和自动测试都涉及哪些挑战要素?
软件测试人员分别需要哪些不同的技能来进行手动和自动测试?
分别做手工测试自动化测试的软件测试人员有哪些不同的工作前景和成长机会?
无论如何,手动测试是否低于自动化测试?如果是,如何?
与企业界的自动化测试人员相比,手动测试人员的处理方式有何不同?(如果它们在任何方面确实有区别)
测试主要分为手动测试和自动化测试。关于这一点,我想到了一些问题。
它们包括:
这两种测试的基本区别是什么?
手动和自动测试都涉及哪些挑战要素?
软件测试人员分别需要哪些不同的技能来进行手动和自动测试?
分别做手工测试自动化测试的软件测试人员有哪些不同的工作前景和成长机会?
无论如何,手动测试是否低于自动化测试?如果是,如何?
与企业界的自动化测试人员相比,手动测试人员的处理方式有何不同?(如果它们在任何方面确实有区别)
自动化测试是您使用一段代码/程序来测试另一段代码/程序的任何类型的测试。这可以是如上所述的单元测试,也可以是通过特定的自动化工具,例如 TestComplete、QTP、Selenium 等。单元测试往往由相关代码的开发人员创建和执行,而 GUI 自动化更有可能由软件 QA 专家执行。某些类型的测试,例如性能和回归测试,非常适合自动化,而其他类型的测试,例如可用性测试,则不适合。
手动测试是一个人直接测试软件的过程,通常通过执行最终用户可能执行的操作类型。许多专业测试人员,例如那些参与探索性测试的人员,会建议您,虽然单元测试具有成本效益,但手动测试同样重要且具有成本效益。
想要深入了解自动化测试的陷阱,您应该阅读Linda Wilkinsons 最近的博客。其他值得阅读的好资源包括来自软件测试俱乐部的讨论,以及SQAForums 的自动化测试部分。
如果您还没有这样做,那么SQAforums非常值得加入,以询问与测试所涉及的内容以及工作前景有关的任何问题。
好吧,我只能谈谈我的看法和经验,我只是一个与测试人员和 QA 工程师一起工作过很多次的开发人员。无论如何,我的2c:
最基本的区别手动是手动完成,而自动是由计算机完成:) 因此,手动测试过程可能比全自动测试过程慢几个数量级。另一方面,自动化测试只能检测他们想要检测的问题,而不能检测系统的根本新行为。这基本上意味着自动化测试是回归测试的理想选择,因为众所周知,应该做什么、如何做以及输出应该是什么。
至于技能组合,手动测试基本上可以由具有正确心态的任何人进行,而自动化测试必须由至少具有一定开发经验的人进行。例如,有些框架可以轻松记录自动化 Web 测试,但通常需要调整记录的场景以更好地满足测试需求。当然,任何想要从事 QA 工作的人也必须具备测试所需的基本技能,例如耐心、对细节的关注、出色的组织能力、出色的沟通能力等……
最后,我不认为手动测试被低估了,如果有的话,我认为自动化测试在我见过的大多数公司环境中都没有得到充分利用。但是,是的,有些人(老实说,主要是经理)确实将我之前的段落解释为“任何人都可以进行手动测试”。
自动化测试(尤其是自动化单元测试)很好,因为这意味着您可以在开发周期的早期进行测试,并且可以保持定期测试;它允许开发人员在让 QA 团队参与之前确定他们在哪里犯了错误。但这并不意味着 QA 是不必要的。除了确保自动化测试本身适合之外,还有确定应用程序是否在做它应该做的事情。很难完全理解这一点。
自动测试用户界面也很困难。例如,评估一个图标是否具有适当的意义和位置是否合适是人而不是计算机的事情,因为计算机并不关心,但用户关心。
最基本的区别是如何验证测试。它是通过程序检查完成的还是进行了人工检查?
自动化测试的一大挑战是让手动测试自动化,并确保不需要人工解释结果,例如,如果程序涉及音频或视频输出,这可能很难准确验证。
两者都需要注意细节、耐心和组织能力,才能在说“是的,这是一种高质量的产品/服务”时具有可信度。差异可能出现在自动化测试通常使用特殊软件的地方。
手动测试的成本可能很高,因为有人在看正在运行的测试,而自动化测试通常可以在没有人看的情况下运行。然而,当涉及到那些非常主观的领域时,手动测试可能会被低估,例如网页样式或如果我们对其进行这些更改,这首歌听起来有多好?那些将是我看到人类优于机器的地方。
至于职业道路和工作机会,这在某种程度上是一个悬而未决的问题。由于并非每个地方都雇用测试人员,有时测试人员只是根据项目需要才被引入,因此对测试有不同的看法。这并没有涉及开发人员应该编写多少自己的测试以及这是否也使开发人员成为测试人员的问题?我想这并不能回答你的问题,因为我正在更大范围地看待这个问题,即谁在做测试,因为这是这里要考虑的其他事情。
客观地编写所有测试的唯一方法是忽略实际确保软件适合用途所需的大部分细节。结果几乎总是您必须按小时付费才能使用的软件。
这可能并不总是一个问题,但它的案例集是软件行业的一个相当大的一部分。
只回答您的第一个问题:基本区别在于手动测试看起来就像测试,而自动化测试(通常)是测试。如果您不能编写要运行的测试的完整和详细的规范,那么您就不是真正的测试。如果可以,您可以进行自动化测试。无论您的测试脚本是由程序执行还是由严格遵循它的碳基生命形式执行,这都是正确的。
我会让你从我提出的基本前提中猜出我对其余问题的答案。