软件测试中往往存在一些认识上的误区,制约着测试的发展,主要有下面八大误区。
一、测试和调试是一回事
测试和调试有着根本的不同。测试一个有计划,可重复的过程,目的是为了发现软件中的潜在错误和缺陷;而调试是一个随机的、不可重复的过程,目的是寻找错误的原因和具体位置,并修复。
调试一般在测试之后进行,当然,调试之后身可能又要进行测试,所以两者是经常交互的。
二、可以对软件进行穷举测试。
三、若交付使用的软件有缺陷,是测试人员的失职
软件测试的主要目标是发现软件中更多的错误和缺陷,但不能通过已有的测试证明某一个软件是绝对正确的。
交付使用的软件有缺陷,与多方面的人员都有关系,如系统分析人员,设计人员,编码人员,测试人员等。软件开发中的任何一个环节出现问题,都有可能使软件出现缺陷。当然,这并不是说软件测试人员可以推卸责任,开发团队中多方面的人员加强沟通合作才是最重要的。
四、关注测试的执行而忽略测试用例的设计
测试用例是为特定目标开发的一组测试输入、执行条件和预期结果,其目的是测试程序中某路径,或核实程序或软件是否满足某个特定的需求。
从一定意义上说,设计测试用例的软件测试活动中具有核心地位的一个环节。若不注重测试用例的设计,很可能会遗漏有价值的测试用例,或导致设计出的测试用例不够准确,从而不可能对软件进行充分、有效的测试。
五、测试比编程容易得多
从某种意义上讲,对软件测试人员的要求比编程人员的要求高。这是因为,测试是一件十分复杂的工作。测试人员应具有细致沉稳的性格,很强的专业素质,对被测软件的功能及架构十分清楚;测试人员还要能在无法实现穷举测试的前提下编写若干有价值的测试用例,以尽可能的揭露软件中的错误和缺陷;在自动化测试的时候,还需要编写脚本。
六、测试是编码之后进行的工作
软件测试不仅是对程序的测试,需求分析和设计也应该成为测试的对象。大量测试实践表明,软件大部分错误是在编码之前造成的。
在软件开发过程中,应尽早的、全面的开展测试。软件测试应该成为一个独立的流程,可贯穿到软件开发的其他各流程。测试还应该是可迭代的。只有做到这些,测试才可能是成功的。
七、测试自动化是万能的
软件测试自动化可以提高测试的效率,需要自动化测试工具,还需要测试人员编写脚本等。因此,只有需要经常执行的测试用例才适合于自动化测试。
当对某软件的测试自动化达到一定程度时,再想提高其自动化程度将会变得很困难。从80-20原则可以看出。所以在开发一个软件的过程中,不应盲目的提高其测试自动化的程度。
八、软件测试是一种破坏性工作
一些人认为,以尽可能发现软件中的错误为主要目标的软件测试是一种破坏性工作,是对软件开发人员工作的否定。这种想法在很大程序上制约了软件测试发展,且十分不利于软件质量的保证和提高。