




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021/8/261模块(单元)测试测试单个子程序或过程2021/8/262单元测试o单元测试(模块测试)的元素n对程序中较小构成元素单个子程序或过程进行测试o动机n单元测试减轻了调试的难度,因为错误一旦发现,就知道它在哪个具体的模块中n单元测试提供了同时测试多个模块的可能,将并行工程引入了软件测试。o目的n将模块的功能与定义模块的功能规格说明或接口规格说明进行比较,揭示出模块与其规格说明之间存在的矛盾。2021/8/263单元测试针对的问题o模块接口:检查进出单元的数据流是否正确o局部数据结构:测试内部数据是否完整?例如:不正确的类型说明,错误的初始化等。o路径测试:发现由于不正确的判定或不
2、正常的控制流而产生的错误,例如:不正确的逻辑操作或优先级,不适当地修改循环变量。o边界条件:测试边界处程序是否正确工作?o出错处理:测试出错处理措施是否有效?例如:提供的错误信息不足,难以找到错误原因等。2021/8/2645.1 测试用例的设计o需要的信息n模块的规格说明:模块的输入和输出以及模块的功能n模块的源代码o测试用例的设计方法n单元测试总体上是面向白盒测试的(静态、动态)o后续测试针对较大的元素不易进行白盒测试o后续测试着眼于发现其他类型的错误,不一定与程序逻辑结构有关n使用一种或多种白盒测试方法分析模块的逻辑结构,然后使用黑盒测试方法对照模块的规格说明补充测试用例2021/8/2
3、655.2 增量测试o测试单独的模块可能需要一个特殊的驱动模块和一个或多个桩模块n驱动模块是为测试编写的一个小模块,用来将测试用例驱动或传输数据到被测模块。驱动模块还需要向测试人员显示被测模块的结果。n桩模块充当被测模块调用的模块,模拟该模块的功能,接受被测模块的调用指令。n例如测试模块B时需要一个驱动模块,和一个模拟模块E的桩模块ABDCFE2021/8/2665.2 增量测试o单元测试除了要考虑如何设计一个有效的测试用例集之外,还有一个重要问题,就是模块组装方式o两类测试方法n非增量测试:先独立地测试每个模块,然后再将所有这些模块组装成完整的程序测试,又称为崩溃(big-bang)测试。n
4、增量测试:将被测模块组装到测试完成的模块集合中,然后再进行测试。注:在进行增量模块测试时,单元测试和集成是同步进行的,集成测试就是模块测试的隐含部分,往往并不作为一个独立的测试步骤。2021/8/267非增量测试和增量测试增量测试非增量测试工作量小:使用前面测试过的模块来取代非增量测试中所需要的驱动模块或桩模块。工作量较大:要设计驱动模块和桩模块可以较早发现模块中与不匹配接口、不正确假设等编程错误。到了测试过程的最后阶段,模块之间才能“互相看到”容易进行调试,新出现的错误往往与最近添加的模块有关直到整个程序组装之后,模块之间接口相关的错误才会浮现,难以定位测试可以进行地更彻底,每个模块经受了更
5、多的检验使用驱动模块和桩模块而非实际模块,对被测试模块的测试只影响自身在测试上花费的时间多,设计驱动模块和桩模块所用时间少测试时间少,但设计驱动模块和桩模块需要大量时间并行性差可以同时并行测试很多模块2021/8/2685.3 自顶向下测试与自底向上测试o自顶向下测试n从程序的顶部或初始模块开始测试。选择后续模块进行增量测试的原则是:至少一个调用该模块的模块事先经过了测试。有多种可能的测试序列时,应该考虑先测试关键模块和I/O模块n为了测试上层模块,需要设计桩模块,桩模块通常要向被测模块提供测试数据,如读取外部数据文件o自底向上测试n从不调用其他模块的终端模块开始测试,选择下一个模块进行增量测
6、试的原则是:该模块调用的所有的模块都已经事先经过了测试。n为了测试低层模块,需要为它们设计驱动模块:即包含着有效的测试输入、调用被测模块且显示输出的模块。2021/8/269例子o图中共有12个模块A到Lo模块I包含IO的写操作o模块J包含IO的读操作ACDBJIHGFLKE2021/8/2610自顶向下的增量测试o首先测试模块A,需要设计代表模块B,C,D的桩模块;如图o接着用实际模块代替桩模块,如B,并添加B的桩模块;如图o增量的序列有多种可能,例如:ABFJDICGEKHL,加入I后如图AstubCstubDstubBstubFstubEBJFDstubHI2021/8/2611自顶向下
7、的增量测试中的桩模块显示跟踪信息显示传递信息返回一个值根据输入返回一个值ABCD2021/8/2612自底向上的增量测试o第一步是测试E,J,G, K,L和I中的部分或全部模块,既可以串行也可以并行进行;需要设计驱动模块,有的驱动模块可以供几个测试模块使用o接着测试的模块序列有多种可能,如果接下来是测试较关键的模块F,H,则用它们代替相应的驱动模块,并加入它们的驱动模块,如图JDriverDriverLKIDriverFDriverDDriverH2021/8/2613自底向上的增量测试中的驱动模块调用从属模块调用从属模块,并传递参数调用从属模块,并要求得到参数兼有B,C的功能ABCD2021
8、/8/2614自顶向下测试和自底向上测试的比较自顶向下自顶向下优点如果主要缺陷发生在程序顶层将非常有利早期程序框架可以进行演示,即提早发现主要的控制问题缺点必须开发桩模块桩模块可能要比最初表现的更复杂创建测试环境可能很难,甚至无法实现观测测试输出比较困难自底向上自底向上优点如果主要的缺陷发生在程序的底层将非常有利提早发现程序当中的主要算法问题测试环境比较容易建立观测测试输出比较容易缺点必须开发驱动模块直到最后一个模块添加进去,程序才形成一个整体2021/8/26155.4 执行测试o审核测试用例n当测试用例造成模块输出的实际结果与预期结果不匹配的情况时,存在两种可能:该模块存在错误,或者测试用
9、例不正确。因此,执行测试前应审核测试用例集。o使用自动化测试工具可以减少测试过程中的劳动,如流程分析工具等。o执行测试时,应该查找程序的副作用,即模块是否执行了不该执行的操作。o程序员不应测试自己编写的模块,最好交换测试;编写调用模块的程序员是测试被调模块的最佳人选。o模块测试的目的不是证明模块能够正确地运行,而是证明模块中存在着错误。2021/8/2616单元测试的通过准则p命名符合规则p控制流程正确;p变量存取无误差;p所有软件单元达到质量度量指标;p功能与设计说明一致;p性能达到软件设计指标;p覆盖测试达到规定的覆盖率;p对发现的问题已进行修改并通过回归测试。2021/8/2617单元测试与集成测试o每个模块完成单元测试后,需要按照结构图把它们连接起来,进行集成测试。n集成测试往往不作为一个独立的测试步骤,尤其对增量式模块测试而言,它是其中的隐含部分。n集成测试人员应包括具有两种背景的人员:熟知模块的内部细节,并能从足够高的层次上观察整个系统o集成测试的内容n单元间的接口测试n全局数据结构测试n边界和人为条件下的性能n软件功能模块的功能测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股权质押续展合同样本
- 2025年河北省石家庄市中考物理模拟试卷(含解析)
- 收入管理收入审核具体要求课件
- 苗木定制服务合同
- 铁路市场营销铁路货运市场细分的标准课件
- 中国与美国的区别
- 与小学生讲党史课件
- 股权退出转让合同书
- 襄阳汽车职业技术学院《工程设计原理》2023-2024学年第二学期期末试卷
- 嘉善县2024-2025学年数学五年级第二学期期末综合测试模拟试题含答案
- 华东师大版历史九年级上册第11课大化改新与中古日本课件
- 中医病历书写基本规范和中医电子病历基本规范
- 1.3.2太阳直射点的南北移动
- 【S公司基层员工薪酬管理存在问题及优化建议分析(定量论文)12000字】
- 装修工程量清单模板
- 第8课 良师相伴 亦师亦友 第一框(教案)-【中职专用】高一思想政治《心理健康与职业生涯》
- AED使用指南课件
- 外科手术学完整版本
- 天津市南开区2023-2024学年五年级下学期6月期末语文试题
- 行政职业能力测试-常识判断真题汇编
- 2024年广东省深圳市南山实验教育集团中考数学二模试卷(含解析)
评论
0/150
提交评论