测试可以主要分为手动测试和自动化测试。关于这一点,会出现以下问题:
包括:
两种类型测试的基本区别是什么?
手动测试和自动化测试都存在哪些挑战元素?
对于手动测试和自动化测试,软件测试人员需要什么不同的技能集?
在进行手动测试和自动化测试的软件测试人员中,不同的工作前景和职业发展机会有何区别?
手动测试在任何方面上是否被低估了? 如果是的话,是怎样的情况?
在企业世界中,手动测试人员与自动化测试人员在待遇上有何不同?(如果他们确实在某些方面上有所区别)
测试可以主要分为手动测试和自动化测试。关于这一点,会出现以下问题:
包括:
两种类型测试的基本区别是什么?
手动测试和自动化测试都存在哪些挑战元素?
对于手动测试和自动化测试,软件测试人员需要什么不同的技能集?
在进行手动测试和自动化测试的软件测试人员中,不同的工作前景和职业发展机会有何区别?
手动测试在任何方面上是否被低估了? 如果是的话,是怎样的情况?
在企业世界中,手动测试人员与自动化测试人员在待遇上有何不同?(如果他们确实在某些方面上有所区别)
自动化测试是使用一段代码/程序来测试另一段代码/程序的任何类型测试。这可以是像上面描述的单元测试,也可以通过特定的自动化工具来完成,例如TestComplete、QTP、Selenium等。单元测试往往是由开发人员创建和执行的,而GUI自动化将更可能由软件QA专家执行。某些类型的测试,如性能和回归测试,非常适合自动化,而其他类型的测试,如可用性测试,则不适合。
手动测试是一个过程,在此过程中,人直接测试软件,通常通过执行最终用户可能要执行的操作。许多专业测试人员(如那些参与探索性测试的测试人员)会建议您,尽管单元测试具有成本效益,但手动测试同样重要且具有成本效益。
如果您想了解自动化测试的缺陷,可以阅读Linda Wilkinson的最新博客。其他好的资源包括来自软件测试俱乐部的讨论以及SQAForums的自动化测试部分。
如果您还没有这样做,加入SQAforums是值得的,可以询问与测试有关的任何问题,以及就业前景。
我只能谈谈我的观点和经验,而我只是一名与测试人员和QA工程师合作过很多的开发人员。无论如何,以下是我的看法:
最基本的区别是手动测试是由人工完成的,自动测试是由计算机完成的 :) 因此,手动测试过程可能比完全自动化的测试慢几个数量级。另一方面,自动化测试只能检测到它们应该检测到的问题,并且不能检测系统的根本新行为。这基本上意味着自动化测试非常适合回归测试,当已知应该做什么、如何做以及输出应该是什么时。
至于技能集,任何有正确心态的人都可以进行手动测试,而自动化测试必须由至少具有一些开发经验的人制作。例如,有一些框架可以轻松记录自动化Web测试,但通常需要调整记录的场景以更好地满足测试需求。当然,任何想要从事QA工作的人都必须具备必要的基本测试技能,如耐心、注重细节、出色的组织能力、出色的沟通能力等...
最后,我认为手动测试并没有被低估,如果说有的话,我认为自动化测试在我看到的大多数公司环境中被低估了。但是,是的,有些人(主要是经理,老实说)会把我的前一段解释为“任何人都可以进行手动测试”。
最基本的区别在于测试的验证方式。是通过程序检查还是进行人工检查?
自动化测试的最大挑战在于将手动测试转为自动化,并确保不需要对结果进行人工解释,例如,如果一个程序涉及音频或视频输出,这可能非常难以准确验证。
无论是自动化测试还是手动测试都需要注重细节、耐心和组织能力,才能说出“是的,这是一个高质量的产品/服务”。差异在于自动化测试通常使用特殊软件。
手动测试可能会成本较高,因为需要有人观察测试的运行情况,而自动化测试通常可以在无人监督的情况下运行。然而,在那些主观性较强的领域,如网页样式或者我们对这首歌进行改变后的音效如何,手动测试可能被低估了。在这些情况下,我认为人类比机器更受青睐。
关于职业路径和工作机会,这在某种程度上是一个开放性问题。由于并非每个地方都雇用测试人员,有时测试人员只是在需要项目时被引入,因此对于测试存在不同的观点。这还没有涉及到开发人员应该编写多少自己的测试,以及这是否也使开发人员成为了测试人员这个问题。我想我没有回答你的问题,因为我正在从更大的角度来看待这个问题,即谁在进行测试,因为这也是需要考虑的另一件事。我将让您通过我所阐述的基本前提来理解我的其他问题的答案。