zoukankan      html  css  js  c++  java
  • 《the art of software testing》第五章

    构建大型程序测试的第一个步骤:模块测试

    测试用例的设计

    在为模块测试设计测试用例时,需要两种信息:模块的规格说明和模块源代码;
    模块测试总体上面向白盒测试;
    模块测试的测试用例设计过程:使用一种或多种白盒测试方法分析模块的逻辑结构,然后使用黑盒测试方法对照模块的规格说明以补充测试用例。
    

    增量测试 and 非增量测试

    执行单元测试过程中,有两点需考虑:

    其一、如何设计一个有效的测试用例集;
    其二、将模块组装成工作程序的方式。

    前者涉及的内容在上篇已叙述过,而后者,涉及模块测试用例编写的形式、可能用到的测试工具类型、模块编码和测试的顺序、生成测试用例的成本以及调试的成本等。

    它有两种具体实现方法:增量测试(自顶向下和自底向上的开发或测试过程)、非增量测试。

     ⊙增量测试:将测试的模块组装到测试完成的模块集合中,再进行测试。
    
     ⊙非增量测试:先要独立地测试每个模块,再将这些模块组装成完整的程序。且测试单独的模块时,需一个特殊的驱动模块和一个或多个桩模块。
    
    • 驱动模块:人们编写的一个小模块,用来将测试用例驱动或传输到被测模块中,也可以用测试工具替代;还必须向测试人员显示该模块的结果。

    • 桩模块:被测模块可能调用到了其他的模块,所以还必须使用一个额外的组件,即:特殊模块,用于模拟被调用模块的功能。

      文尾,需提及一个结论:增量测试要更好一些。原因如下:

    ⊙非增量测试所需的工作量要多一些;(桩模块)
    
    ⊙增量测试可以较早发现模块中与之不匹配接口、不正确假设相关的编程错误;
    
    ⊙增量测试,调试会进行得比较容易些;(调试)
    
    ⊙增量测试会将测试进行得更彻底;(可能会诱发先前测试完的模块出现新缺陷,且会经受更多的检验)
    
    ⊙非增量测试所占用的机器时间显得少一些;
    
    ⊙模块测试阶段开始时,非增量测试,就会有更多的机会进行并行操作,即:所有的模块可以同时测试。
    

    两种增量测试方法:自顶向下测试 and 自底向上测试

    自顶向下测试,是从程序的顶部或初始模块开始。

    ⊙测试开始之后,挑选哪一个后续模块进行增量测试没有惟一正确的方法;
    
    ⊙惟一的原则是:要成为合乎条件的下一个模块,至少一个该模块的从属模块(调用它的模块)事先经过了测试。
    
    ⊙该测试策略里边最关键的可能就是编写桩模块了。
    
    ⊙它涉及到的几个关键点概括为:桩模块的返回信息一定要给予此次调用所希望的返回值,否则调用模块将会发生失效或是产生一个混乱的结果;早期,测试数据要通过其一个或多个桩模块提交给模块的。
    
    ⊙需要指出一点,就是测试完一个模块后,就用一个实际的模块代替其中的一个桩模块,而该模块需要的桩模块也被添加起来。需要注意的是:不存在最佳的模块序列。但尽量让包含I/O操作的桩模块和重要的桩模块添入。
    

    自底向上测试,是开始于程序的终端模块,此类模块不再调用其他任何模块。

    ⊙测试完这些模块之后,同样没有最佳的方法来挑选要进行增量测试的下一个模块;
    
    ⊙惟一正确的原则是:要成为合乎条件的下一个模块,该模块所有的从属模块(它调用的模块)都已经事先经过了测试。
    
    ⊙需要指出的是,如果终端模块是多个的话,既可以进行串行测试,也可以进行并行测试。且每一个模块都需要一个特殊的驱动模块,即:包含着有效的测试输入、调用被测模块且将输出显示出来(或将实际输出与预期输出作比较)的模块。
    
    ⊙对于测试序列也同自顶向下测试的一样。
  • 相关阅读:
    获取物料批次特性取值BAPI
    获取域的固定值的函数:DD_DOMVALU…
    CJ20N中对WBS元素执行删除操作时触…
    SM30相关操作
    CL03对应的BAPI(根据类查特性)
    两个数值交换
    char*,string,float,int 转换
    字符串 分割
    C++ 关于I/O
    TCP
  • 原文地址:https://www.cnblogs.com/myidea/p/4891138.html
Copyright © 2011-2022 走看看