美文网首页
《软件测试技术经典教程第二版》阅读笔记2

《软件测试技术经典教程第二版》阅读笔记2

作者: MirrorAi | 来源:发表于2018-06-16 00:15 被阅读0次

    第一部分 软件测试基础

    第 2 章  软件测试分类

    本章要点:

            ● 了解黑盒测试和白盒测试的概念,静态测试、动态测试、单元测试的概念和应用,驱动模块、桩模块的含义,集成测试、系统测试、验收测试的概念。

            ● 掌握功能测试、性能测试的概念和应用,界面测试、易用性测试、安装测试、兼容性测试、回归测试、冒烟测试、随机测试的含义。


    1. 黑盒测试(Black-Box Testing)

           指的是把被测的软件看作一个黑盒子,我们不关心盒子里面的结构是什么样的,只关心软件的输入数据输出结果

    2. 白盒测试(White-Box Testing)

           指的是把盒子盖打开,去研究里面的源代码程序结构

    3. 静态测试(Static Testing)

           指的是不实际运行被测软件,只是静态地检查程序源代码、界面或文档中可能存在的错误的过程。静态测试包括三个方面:

           ① 对于代码测试,主要测试代码是否符合相应的标准和规范。按照相应语言的代码规范模板来逐行检查。

           ② 对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。

           ③ 对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。

    注1:对于①,很多白盒测试工具中自动集成了各种语言的编码规范。

    注2:在代码测试中,程序没有注释是必须修改的问题。注释是程序中很重要的组成部分,可以说 程序 = 代码 + 注释。一般注释语句最好占到代码总行数的1/5~1/4。注释包括程序的基本信息如作者、版本号、创建日期等,以及主要功能模块的含义。

    4. 动态测试(Dynamic Testing)

           指的是实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

    5. 单元测试(Unit Testing)

           是指对软件中的最小可测试单元进行检查和验证。单元,就是人为规定的最小的被测功能模块。

           单元测试通常在程序员编码之后,代码已经通过编译后,进行单元测试。单元测试一般由白盒测试工程师或开发人员来测试(如果由开发人员来测试,最好做到交叉测试)。

           单元测试的通过标准:程序通过所有单元测试的用例;语句的覆盖率达到100%;分支的覆盖率达到85%。

           单元测试的一般步骤:

           ① 编译运行程序(查看能否正确运行)

           ② 静态测试(检查代码是否符合规范)

           ③ 动态测试(深入检查代码的正确性、容错性和边界值)

           单元测试的依据:一个是源程序本身,包括代码和注释;另一个是项目的《详细设计》文档。

    注:和单元测试有关的概念——桩模块和驱动模块

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

    6. 集成测试(Integration Testing)

           是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分(如函数之间的参数传递是否正确等)。

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

    7. 系统测试(System Testing)

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

           系统测试主要是由黑盒测试工程师在整个系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同软硬件环境中的兼容性。

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

    8. 验收测试(Acceptance Testing)

           指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试。

           验收测试是软件正式交给用户使用的最后一道工序,涉及用户能否最终验收签字并付款。

           验收测试分为α测试β测试。其中α测试指的是由用户、测试人员、开发人员等共同参与的内部测试,而β测试指的是内测后的公测,即完全交给最终用户测试,其目的就是交给用户免费试玩,再根据用户的反馈去修改软件。

    图1 按阶段划分的四种测试的比较

    9. 功能测试(Function Testing)

           是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。功能测试是最主要的测试,通常可以细分为:逻辑功能测试界面测试易用性测试安装测试兼容性测试等。

    10. 性能测试(Performance Testing)

           是软件测试的高端领域,通常所说的高级软件测试工程师一般就指性能测试工程师或白盒测试工程师。性能测试一般要用到自动化测试工具。

           软件的性能主要有时间性能空间性能两种。时间性能,主要指软件的一个具体事务的响应时间Respond Time,需要在具体的测试环境中分析。响应时间的长短跟用户的主观感受有关系。空间性能,主要指软件运行时所消耗的系统资源,如该软件在某配置下运行时的CPU利用率内存占有率

           软件性能测试的分类:

           ① 一般性能测试,指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力。

           ② 稳定性测试,也叫可靠性测试(Reliability Testing),是指连续运行被测系统,检查系统运行时的稳定程度。通常用MTBF(Mean Time Between Failure)来衡量系统的稳定性,MTBF越大,系统的稳定性越强。通常采用24x7的方式让系统不间断运行。

           ③ 负载测试(Load Testing),通常指让被测系统在其能忍受的压力的极限范围之内连续运行。负载测试需要给被测系统施加其刚好能承受的压力。负载测试是为了测试系统在临界状态下运行是否稳定。

           ④ 压力测试(Stress Testing),通常指持续不断地给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。

    11. 回归测试(Regression Testing)

           是指在对软件的新版本进行测试时,重复执行上一个版本测试时的用例。通常是测试人员测试当前版本后,开发人员进行修改,对修改后的版本重新进行测试。不能只测上个版本出错的地方,因为软件的新版本中可能引入新的Bug,需要我们系统全面地重新测试。

    12. 冒烟测试(Smoke Testing)

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

           每当我们拿到一个新版本时,都首先进行冒烟测试,如果通过,则进行回归测试。

    13. 随机测试(Random Testing)

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

           在实际的项目中,一般都是先做大规模的正规测试,如果时间允许,就辅助一些随机测试。

    14. 不同测试分类之间的关系

    图2 不同测试分类的关系

    15. 黑盒测试、白盒测试、静态测试、动态测试的关系

           只是同一个测试的不同分类角度而已,而且它们之间还有包含交叉的关系,总结以下4句话:

           ● 既是动态测试,也是黑盒测试(运行程序,只看输入和输出)。

           ● 既是静态测试,也是黑盒测试(不运行程序,只是查看界面)。

           ● 既是动态测试,也是白盒测试(运行程序,并分析代码结构)。

           ● 既是静态测试,也是白盒测试(不运行程序,只是静态查看代码)。

    相关文章

      网友评论

          本文标题:《软件测试技术经典教程第二版》阅读笔记2

          本文链接:https://www.haomeiwen.com/subject/ypcveftx.html