6.3.1系统测试的基本概念
系统测试包含广义的测试和狭义的测试。广义的系统测试是从保证系统运行的**性、有效性角度考虑,一切可能导致系统运行失败的错误都应该在系统投入正式运行之前测试出来。因此,系统的测试应该包含设备的测试、网络的测试、各种运行平台的测试和应用软件的测试。而狭义的系统测试则只考虑应用软件的测试,这里主要讨论狭义的系统测试。
系统测试是在计算机上用各种可能的数据和操作条件,反复地对程序进行试验,力求发现系统中可能的错误和不足并加以纠正的过程。系统测试是保证系统质量的关键,是对整个系统开发过程的*终审查。在管理信息系统开发周期的各个阶段都不可避免地会出现差错,系统开发人员应力求在每个阶段结束之前进行认真、严格的技术审查,尽可能及时发现并纠正错误,但开发过程中的阶段审查并不能发现所有的错误。这些错误如果等到系统投入运行后再改正,将在人力、物力上造成很大的浪费,甚至导致系统的失败。此外,在程序设计过程中,也会或多或少地引入新的错误。因此,在应用系统投入运行之前必须纠正这些错误,这是系统能够正确、可靠运行的重要保证。统计资料表明,对于一些较大规模的系统来说,系统调试的工作量往往占程序系统编制开发总工作量的40%以上。
系统测试的目的是发现程序中的错误,而不是证明程序的正确性。测试是为了发现错误而执行程序的过程,这就要精心选取那些易于发生错误的测试数据,以十分挑剔的态度,检测系统程序。好的测试方案是能够发现至今尚未发现错误的测试方案,成功的测试是发现至今尚未发现错误的测试。但是,要特别注意的是,测试只能证明错误的存在,而不能证明错误不存在。
为做好系统测试应该注意以下原则。
①避免测试自己所编写的程序。由于测试的目的在于寻找错误,从心理学的角度考虑,每个人都对自己所编写的程序存有偏见,往往会认为没有错误或很少有错误,如果错误是由于对程序设计文档理解错误而造成的,就更难发现其中的错误。如果由他人来测试将会更加客观、更加有效。
②制订周密的测试计划。在测试前必须制订严密的测试计划,测试工作必须按照测试计划执行,避免由于随意性而造成系统测试的失败。
③完善测**例。测**例常常由输入与输出两组测**例组成,这样可以进行测试的对照检查。测**例不仅要包含正确的输人数据,而且还要包含错误的输入数据,这就可以测试出系统可能隐含的一些副作用。也就是说,测**例不仅要能够测试出系统应该具备的功能,而且还要能够测试出系统是否执行了它不该执行的功能。注意应该保留已经使用过的测**例与相应的测试结果,因为在系统的测试过程中往往需要对系统进行修改,此时系统的回归测试是必须的,这样才能发现修改是否给系统带来新的错误。在系统投入运行后,测**例还需要保留,为系统今后的维护测试提供方便。
④关注错误较多之处。在测试过程中一旦发现某处存在较多的错误,一定要对其进行深入测试,因为错误多发之处必是系统质量低劣之地,而对系统的修改往往又会引入新的错误。
……