软件的测试与方法

软件的测试与方法


一、 软件测试的概念

          所谓软件测试,是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期结果),并利用这些测试用例去运行程序,以发现程序错误的过程。

          软件测试在软件生存周期中横跨两阶段:通常在编写出每个模块之后对它做必要的测试(称为单元测试)。模块的编写者与测试者是同一个人。编码与单元测试属于软件生存周期中的同一个阶段。在这个阶段结束之后,软件系统还要进行各种综合测试,这是软件生存周期的另一个独立的阶段,即测试阶段,通常由专门的测试人员承担这项工作。


二、 软件测试的目的

          测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。但是,如果仅就测试本身而言,软件测试的目标是以最少的时间和人力发现软件中潜在的各种错误和缺陷。

          此外,应该认识到测试决不能证明程序是正确的。即使经过了最严格的测试之后,仍然可能还有没被发现的错误潜藏在程序中。这就是软件测试的一个致命缺陷,即测试的不完全、不彻底性。测试只能找出程序中的错误,但在未发现错误时,并不能证明程序中没有错误。


三、 测试方法概述

          软件测试的种类大致可以分为人工测试和基于计算机的测试。基于计算机的测试有两种方法。


四、白盒测试

          白盒测试方法是把程序看成一个打开的盒子, 测试人员对程序所有逻辑路径进行测试,在不同检查点输出结果,与预期的结果比较,确定程序是否有错。

          使用白盒测试法时,为了做到穷尽测试,程序中每条可能的通路至少都应该执行一次。即使测试很小的程序,通常也不能做到这一点。例如,一段程序对嵌套的IF 语句循环执行 20 次,如图 5.1 所示,在这段程序中共有 5 20 条可能的执行通路,显然,即使每条通路只执行一次也是不可能的。

          白盒测试是一种程序级的微观上的测试,不适合于大单元、大系统的测试,只适合于很小单元的测试,以及从事软件底层工作、生产构件的测试人员进行的测试。


五、黑盒测试

          黑盒测试方法是把程序看成一个黑盒子,完全不考虑其内部结构和处理过程,只检查程序的功能是否符合它的需求规格说明。

          可见,黑盒测试是在软件的接口处进行的,一方面看其是否能对合法的数据得出正确的结果,另一方面看它是否能对非法的数据进行正确的处理。显然要列举出所有合法的或非法的数据是不可能的。

          例如,一个程序需要3 个整型输入数据,如果计算机的字长为16 位,则每个整数的可能取值有2 16 个,3 个输入数据的各种可能值的排列组合共有:216 ×2 16 ×2 16 =2 48也就是说需要把这个程序执行 2 48 ,假定执行一次程序需要 1ms,则大约需要 1 万年。

          若将无效的和错误的输入数据也算在内,则程序执行时间还要长,而且输出数据更是多得让人无法分析。因此,墨盒测试法不能测试所有可能情况。

黑盒测试是一种宏观功能上的测试,该方法适合测试部门的测试人员或用户。随着软件生产的组装技术的发展,黑盒测试方法会越来越普及。


六、小结

          无论是白盒测试还是黑盒测试,都不可能进行完全测试,软件测试不能发现程序中的所有错误。因此,通过测试并不能证明程序是正确的。

          在实际应用中,常常采用白盒测试和黑盒测试相结合的方法,对软件进行有限的测试。测试用例的设计是测试工作成败的关键,好的测试用例发现错误的机会更多。因此,要认真设计测试用例,力求发现源程序中尽可能多的错误。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值