测试可能永无休止。测出所有的缺陷和和修复才停止测试是不可能的。我们可以在某一点上,停止测试和交付软件,问题是何时停止。实际上,测试是预算,时间和质量的折衷。它是受利润模式驱动。悲观的,可惜也是最常用的决定测试停止的办法,当任何一个或几个所分配的资源--时间,预算,或测试用例枯竭。 乐观的停止规则是停止测试时要么可靠性符合要求,要么是继续测试的花费与将来的收益相比得不偿失。这通常需要在测试中使用可靠性模型来评价和预测。每一评价需要反复运行以下循环:失败数据采集--建模--预测。
软件测试的花费可以很高昂。自动化是一个节省时间和成本的好办法。软件自动化测试的工具和技术,往往苦于缺乏通用的适用性和伸缩性。原因是显而易见的。为了实现测试过程的自动化,我们必须有一些办法,能够依据软件需求或规格设计说明书,针对测试对象,自动生成测试用例,测试脚本并能自动执行,自动验证其正确性。今天我们还没有一个完全能达到此一目标而颇具规模的系统。一般来说,大量的人为干预,都需要测试。自动化程度仍停留在自动化测试脚本的水平。