软件测试

本文来自 http://tieba.baidu.com/f?kz=743712725

软件测试在软件生存周期中占有重要地位,这不仅是因为测试阶段占用的时间、花费人力和成本占软件开发比重的40%以上,而且还因为它是保证软件质量的关键步骤。由于人的主观因素或客观原因,在软件开发过程中不可避免地要产生一些错误。软件测试的任务是在软件投入运行以前尽可能多地发现并改正软件中的错误,一个软件产品在交付使用前要经历以下几种测试:
1.模块测试。也称为单元测试,是针对每个模块单独进行的测试。模块测试一般和程序编写结合起来,在编码阶段由软件编写者进行测试,以保证每个模块作为一个单元能正确运行。
2.子系统测试。把已通过单元测试的模块连接成为子系统来测试,着重检验模块间的接口。
3.系统测试。把经过测试的子系统连接成为一个完整的系统米测试,主要检查系统是否实现说明书中指定的功能,系统的动态性能是否符合要求。
4.验收测试。是为了确认已开发的软件能否满足标准,是否合格。与系统测试不同的是,它是在客户的积极参与下进行的。
5.平行运行。一些十分重要的软件在经过验收之后,并不立即投入运行,而是再经过一段平行运行的测试,即新旧两个系统同时运行,比较结果有什么不同。

黑盒测试方法又称功能测试,把程序看作一个黑盒子,在完全不考虑程序内部结构的情况下设计测试数据,主要测试程序的功能是否符合软件说明书的要求。

白盒测试方法又称结构测试,它是根据程序的内部结构设计测试数据,检查程序中的每条通路是否都能按要求正确运行。
逻辑覆盖主要用于白盒测试方法。由于覆盖的详尽程度不同,又分为语句覆盖、判定覆盖、条件覆盖、条件组合覆盖、条件及判定覆盖和路径覆盖等。语句覆盖:设计足够多的测试用例,使程序中的每个语句至少执行一次。语句覆盖是最弱的逻辑覆盖准则。判定覆盖:设计足够多的测试用例,不仅每个语句至少执行一次,而且使得程序中每个判定的每个分支至少执行一次。条件覆盖:设计足够多的测试用例,不仅每个语句至少执行一次,而且使每个判定表达式中每个条件都取到可能的结果。条件组合覆盖:设计足够多的测试用例,使得每个判断的各种可能组合至少出现一次。条件及判定覆盖:设计足够多的测试用例,使得判断中每个条件的每种可能至少出现一次,而且每个判断的不同判定结果也至少出现一次。路径覆盖:设计足够多的测试用例,要求程序中所有路径至少执行一次。在上述几种逻辑覆盖中,除路径覆盖外,最弱的覆盖标准是语句覆盖,最强的覆盖标准是条件组合覆盖。

posted @ 2013-01-03 11:29  举子 刘  阅读(159)  评论(0编辑  收藏  举报