第七章--第五节:测试和测试优先编程

第七章:软件构造的健壮性

第五节:测试和测试优先编程

问题一:测试的概述

    测试:

            1.是确保程序正确性/健壮性最普遍的手段

            2.发现程序中的错误,提高程序正确性的信心

            3.提高软件质量的重要手段

            4.确认是否达到可用级别(用户需求)(spec)

             5.关注系统的某一侧面的质量特性

    步骤:

            1.设计测试用例 

            2.用JUnit写测试程序

            3.自动化测试过程

问题二:测试的按等级的划分

  1. 单元测试(Unit testing)
  2. 集成测试(Integration testing)
  3. 系统测试(System testing)
  4. 验收测试(Acceptance Testing)
  • 回归测试(Regression testing):一旦程序被修改,重新执行之前的所有测试。

问题三:测试优先编程(TDD)

    TDD的过程:1.先写spec

                         2.再写符合spec的测试用例(写测试用例就是理解、修正、完善你的spec设计过程)

                         3.写代码、执行测试、有问题再改、在执行测试用例、直到通过它

问题四:单元测试(Unit Testing)

            含义:针对软件的最小单元模型开展测试,隔离各个模块,容易定位错误和调试

问题五:用JUnit进行自动测试

问题六:黑盒测试与白盒测试

    1.black-box testing(黑盒测试)

  •         含义:对程序外部表现出来的行为的测试(用于检查代码的功能,不关心内部实现细节)
  •         示意图:

    

    2.White-box testing(白盒测试)

  •         含义:对程序内部代码结构的测试(根据程序执行路径设计测试用例)
  •         示意图:

        

 问题七:黑盒测试中选择测试用例

    1.基于等价类划分选择测试用例

        定义:将被测函数的输入域划分为等价类,从等价类中导出测试用例。

  • 针对每个输入数据需要满足的约束条件,划分等价类
  • 每个等价类代表着对输入约束加以满足/违反的有效/无效数据的集合
  • 基于的假设:相似的输入,将会展示相似的行为。故可从每个等价类中选一个代表作为测试用例即可,从而可以降低测试用例数量

    2.边界值分析

  • 边界值分析方法是对等价类划分方法的补充
  • 在等价类划分时,将边界作为等价类之一加入考虑
  • 不仅要考虑边界,还要考虑边界的两侧

    选用边界值分析的原因:

  1.     大量的错误发生在输入域的“边界”而非中央
  2.     程序员经常犯一些大小差1的错误
  3.     某些边界值是“特殊情况”,需要特殊处理
  4.     程序的行为在边界的地方可能发生“突变”

    3.选取测试用例的两种方式

    1.笛卡尔积:全覆盖(Full Cartesian product)

        定义:多个划分维度上的多个取值,要组合起来,每个组合都要有一个用例

        特点:测试完备,但用例数量多,测试代价高

    2.覆盖每个取值:最少1次即可(Cover each part)

        定义:每个维度的每个取值至少被1个测试用例覆盖一次即可

        特点:测试用例少,代价低,但测试覆盖度未必高。

问题八:代码覆盖度的概述

        含义:代码覆盖度:已有的测试用例有多大程度覆盖了被测程序

        代码覆盖度的方式:

  1. 函数覆盖
  2. 语句覆盖
  3. 分支覆盖
  4. 条件覆盖
  5. 路径覆盖

(测试效果:路径覆盖>分支覆盖>语句覆盖)

(测试难度:路径覆盖>分支覆盖>语句覆盖)

问题九:记录测试策略(Documenting Testing Strategy)

        含义:测试策略(根据什么来选择测试用例)非常重要,需要在程序中显式记录下来

        目的:在代码评审过程中,其他人可以理解你的测试,并评判你的测试是否足够充分

            






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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值