一丁 发表于 2008-10-29 21:24:37

软件测试的目的是什么?

软件测试的目的:20世纪60年代   验证
                20世纪70年代   检测
                20世纪90年代   预防

谁能详细讲讲吗?

jiangshu21c 发表于 2008-10-30 12:03:40

软件测试的目的:
证明 检测 预防
1.        证明:
1)        获取系统在可接受风险范围内可用的信心
2)        尝试在非正常情况和条件下的功能和特性
3)        保证一个工作产品是完整的且可用或可被集成的
2.        检测:
1)        发现缺陷,错误和系统不足
2)        定义系统能力和局限性
3)        提供组件、工作产品和系统的质量信息
3.        预防:
1)        通过将测试活动提前介入到软件生命周期中,尽早的发现并消除前期研发阶段引入的缺陷,以防止前期缺陷遗留并放大到后续环节
2)        通过对发现的缺陷进行分析,找出导致这些缺陷产生的流程上的不足,通过改进流程,预防同类缺陷再次产生

shanglikathe 发表于 2008-10-30 12:24:33

软件测试的目的大致可分为三个不同层次:
1、找出软件中存在的缺陷(这个目标是最基本的)。要想达到这个目标相对来讲比较容易一些。只要能够做到细致全面的测试就可以了,而且如果被测系统的代码质量比较差,那么就更不需要费太大的力气,就可以发现足够多的问题。所以为什么说测试入门门槛比较低,也和这个方面有一定关系
2、要想测试比别人做的好一些,就要“尽早”发现问题。因为发现问题越早,缺陷修复的成本就会降低很多,说得白一些,就是能为公司“省更多的钱”。这就需要测试人员从初期开始介入。发现需求和设计文档中的缺陷和不足,所以说测试发展的第二个目标是要全面把握和分析需求以及设计。只有比需求人员更“需求”,才有可能发现需求中的缺陷,否则只能按照需求进行功能测试而已
3、测试的最终目标应该是“协助开发人员减少问题的发生”,也就是说已经犯过的错误,后面项目最好不要再发生。要做到这点,就需要测试人员对以往项目所产生的缺陷进行统计和分析,帮助开发人员提出相关的解决方案,共同提升软件产品的质量。

linlinxu 发表于 2008-10-30 20:00:25

第一个阶段是从最开始的目的仅仅是为了证明软件没有问题,但是我们都知道没有问题的软件是不存在的,所以相比这中观点更确切的应该是获取软件在可以接受风险范围内可用的信息。或者更量化的说法应该是软件测试是要证明软件的遗留缺陷密度限制在一个可以接受的范围内,或者是软件失效带来的质量风险控制在一定的概率范围内。
第二个阶段,也就是在20世纪70年代中期,测试的目的是为了发现错误,这个也是Myers所提倡的,相比这种观点,现在的观点也集成了这部分的目的,并且把检测错误的范围扩大到发现系统的不足,比如易用性上的不足,性能效率上的不足,可维护性方面的不足等领域,还包括定义系统的能力和局限性,提供组件、工作产品和系统的质量信息,这一部分可以参考软件质量模型。
第三个阶段,也就是在20世纪90年代,测试已经成为一门科学,人们对测试的目的的认识也提高了一个层次,测试不仅仅是为了发现问题、证明软件足够可靠,还应该尽早测试发现问题、包括澄清系统的规格和性能指标等,更重要的是提供预防或者减少可能制造错误的信息,这里突出的是关于缺陷的预防,在这个方面IBM应用非常成熟的ODC分析方法就是最经典的案例,方法的核心宗旨是通过对缺陷的分析来发现流程等环节中的存在不足,从而改进流程来达到缺陷的预防的目的。
另外,软件测试基于不同的立场,存在着两种完全不同的目的。从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑用户是否可以接受该产品。而从软件开发者角度出发,则希望测试成为表明软件产品不存在错误的过程,验证该软件已正确地实现了用户需求,确立人们对软件质量的信心。因此他们会选择那些导致程序失效概率小的测试用例,回避那些易于暴露程序错误的测试用例。同时,也不会着意去测试,排除程序中可能包含的付作用。显然,这样的测试对完善和提高软件的质量毫无价值。因为在程序中往往存在着许多预料不到的问题,可能被疏漏,许多隐藏的错误只有在特定的环境下才可能暴露出来。如果不把着眼点放在尽可能查找错误这样的基础上,这些隐藏的错误或缺陷就测试不出来,就会遗留到运行阶段中去。如果站在用户的角度上,替他们设想,就应该把测试活动的目标对准揭露程序中的错误,在选取测试用例时,会从各种角度考虑那些易于发现程序错误的一些测试数据与用例。
页: [1]
查看完整版本: 软件测试的目的是什么?