Notifier's Blog

常遇困境,说明你在进步!
       常有压力,说明你有目标!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

软件测试的基本概念

Posted on 2010-09-17 17:04  notifier  阅读(476)  评论(0)    收藏  举报

首先是图示的软件测试不同分类,然后是对各种软件测试种类的具体描述。

2.1  按照是否关心程序内部结构与具体实现划分

   划分为黑盒测试和白盒测试。

       有的书里把黑色测试又叫做功能测试,这种说法不太准确,因为黑盒测试既包括功能测试,也包括性能测试。

       在实际的软件开发环境中,往往采用黑盒和白盒技术相结合的方式,对软件的整体功能和性能进行黑盒测试,对软件的源代码进行白盒测试。


 2.2  按照是否运行程序划分

       划分为静态测试和动态测试。

       所谓的静态测试(static testing)是指不实际运行被测软件,而只是静态得检查程序代码、界面或者文档中可能存在的错误的过程。静态测试经常基于一些代码规范之类的规则。这里补充一句题外话:程序中的空行是不不占用内存的,但它会使程序结构更为清晰,所以可以使用空行来使程序更加优美。

       所谓的动态测试(dynamic testing)是指实际运行被测程序,输入相应的测试数据,检查实际输出结构和预期结果是否相符的过程,所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是否运行程序。


 2.3  按照测试阶段划分

       划分为单元测试,集成测试,系统测试以及验收测试。

2.3.1 单元测试

       单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证。

       单元测试一般有白盒测试工程师或者开发人员来测试。

       单元测试的依据主要有两个,一个是源程序,包括代码和注释;还有一个就是项目的《详细设计》文档。

     单元测试主要用白盒测试方法,一般我们先静态得检查代码是否符合规范,然后动态得运行代码,检查其实际运行结果。

     单元测试中有两个比较重要的概念:桩模块和驱动模块。

           桩模块(stub)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。驱动模块与桩模块实例:

 

       2.3.2 集成测试

              集成测试(integration testing)是单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的借口部分。

              集成测试一般由白盒工程师或是开发人员进行。

              集成测试的依据是单元测试的模块以及《概要设计》文档。

       2.3.3 系统测试

              系统测试(system testing)指的是将整个系统看做一个整体进行测试,包括对功能、性能以及软件所运行的软硬件环境进行测试。

              系统测试主要由黑盒测试工程师在整个系统集成完毕后进行测试。

              系统测试的主要依据是《系统需求规格说明书》。

       2.3.4 验收测试

              验收测试(acceptance testing)指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交付用户使用前的最后一道工序。

              验收测试又分为α测试和β测试。

               2.3.4.1 α测试指的是由用户、测试人员、开发人员等共同参与的内部测试。

               2.3.4.2 β测试指的是内测后的公测,即完全交给用户做的测试。


 2.4  黑盒测试的功能测试和性能测试

       功能测试可以划分为逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试。

       性能测试又可以划分为一般性能测试、稳定性测试、负载测试、压力测试等。


 2.5  其他类型的测试种类

       回归测试(regression testing)是指对软件的新的版本测试时,重复执行上一个版本的测试用例。

       冒烟测试(smoke testing)是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。

       随机测试(random testing)是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。