软件测试通常是指实际运行被测程序,输入相应的测试用例,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性。软件测试可采取的方法和技术是多种多样的, 但通常情况下不论采用什么方法和技术,其测试都是不彻底的,也是不完全的,因为任何一次完全测试或者叫穷举测试(即让被测程序在一切可能的操作情况下,包括正确的操作,也包括错误的操作情况下全部执行一遍)的工作量太大,在实践上是行不通的,因此任何实际测试都不能够保证被测试程序中不存在遗留的错误。
为了大程度的减少这种遗留的错误,同时也为了大限度的发现已经存在的错误,在测试实施之前,软件测试工程师必须确定将要采用的测试策略和测试方法,并以此为依据制定详细的测试案例。而一个好的测试策略和测试方法必将给软件测试带来事半功倍的效果,它可以充分利用有限的人力和物力资源,高效率、高质量地完成测试。
那么,究竟如何才能确定一个好的测试策略和测试方法呢,一般来说,在确定测试方法时,应该遵循以下原则:
第一,要根据程序的重要性和一旦发生故障将造成的损失来确定它的测试等级和测试重点;
第二,要认真研究测试策略,以便能使用尽可能少的测试用例,发现尽可能多的程序错误,因为一次完整的软件测试过后,如果程序中遗留的错误过多并且很严重,则表明本次测试是失败的,是不足的,而测试不足意味着让用户承担隐藏错误带来的危险,同时反过来说如果过度测试则又会浪费许多宝贵的资源。我们需要在这两点上进行权衡,找到一 个佳平衡点。
以下是Myers提出的使用各种测试方法的综合策略,相信会对大家有所帮助:
(1)在任何情况下都必须使用边界值分析方法。经验表明用这种方法设计出测试用例发现 程序错误的能力强。
(2)必要时用等价类划分方法补充一些测试用例。
(3)用错误推测法再追加一些测试用例。
(4)如果程序的功能说明中含有输入条件的组合情况,则一开始可选用因果图法。
(5)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖 标准,应当再补充足够的测试用例。