1,单元测试

单元测试试模块测试和集成测试的基础

是指对程序中单独的一个单元进行测试(类,或类的集合甚至是函数)

其主要工作分为两个步骤:人工静态检查和动态执行跟踪

这些工作主要是由程序编写者来进行的,因为他们对自己写的代码是最了解的

单元测试的主要目标是:

验证代码和设计相符合

跟踪需求和设计的实现

发现设计和需求中存在的缺陷

发现在编码过程中引入的错误

也可以说单元测试的总目标就是验证开发人员书写的编码是否能按照其设计的方式执行并生成符合预期的结果,确保产生符合其需求的可靠程序单元

2.单元测试和集成测试,系统测试的区别

(1)单元测试与集成测试的区别主要在与测试对象不同

单元测试的对象是程序中的类,包或者函数等

集成测试的对象是概念设计时规划好的模块,这些模块通常是分给不同的工作组开发的

单元测试的主要测试方法是基于代码的白盒测试

而集成测试主要是基于功能的黑盒测试

由于只有单元测试通过之后才能进行集成测试,所以单元测试是集成测试的基础,直接影响着集成测试

(2)单元测试和系统测试的主要区别是测试的性质不同

系统测试是站在用户的角度来看待系统并进行测试的,是基于需求规格说明书的

它是一种后期测试,发现错误后的定位工作也比较困难

3.单元测试环境

单元测试的环境并不是系统交付后的具体环境,应建立一个满足单元测试要求的环境才能顺利的做好测试工作

由于一个单元并不是一个独立的程序,所以在测试时需要考虑他和外界的联系,因此要用到一些辅助模块,用来模拟被测单元与其他模块的关系

辅助模块分为两种

(1)驱动模块:相当于被测单元的主程序

(2)桩模块:用于代替被测单元调用的子单元

这样被测单元和与他相关的驱动模块以及桩模块共同构成了一个“测试环境”

4.单元测试策略

由于单元模块的好坏直接影响到整个系统的性能

所以为了提供单元测试的质量,在测试的时候还要使用一些测试策略,如:

自顶向下的单元测试策略

自底向上的单元测试策略

孤立的单元测试策略

(1)自顶向下的单元测试策略

从最顶层开始,用桩模块代替调用的单元,对顶层进行单元测试

对第二层测试时,用已经测试过的顶层作为驱动单元,编写新的桩模块

以此类推,直到全部单元测试结束

优点:可以在集成测试之前为系统提供早期的集成途径

缺点:程序被桩模块控制,随着测试的进一步进行,测试过程将会变得很复杂

(2)自底向上的单元测试策略

先对程序的最底层进行测试,使用驱动模块代替调用它的上层

对上一层进行测试时,用已经测试过的单元作为桩模块,并为测试单元编写新的驱动模块

以此类推,直至全部单元测试结束

优点:不需要独立设计桩模块,可以直接从功能设计中获取测试用例,可以为系统提供早期的集成路径,在详细设计文档中缺少结构细节时可以用该策略

缺点:随着单元测试的不断进行,测试工作变得十分复杂

(3)独孤立测试

孤立测试的策略不需要考虑每个单元之间的关系,分别为每个单元单独设计桩模块和驱动模块逐一完成所有测试

优点:方法简单,容易操作,因此所需测试的时间短,能够达到高覆盖率

3.单元测试分析

在进行单元测试时,测试人员要依据详细设计规格说明和源程序清单,理解模块的I/O条件和模块的逻辑结构

从以下五个方面进行考虑

(1)模块接口:如果数据在模块接口出错,不能正确的输入和输出数据就无法进行下一步的工作

(2)局部数据结构:局部数据结构往往是错误的根源,对其检查主要是为了保证临时存储在模块内的数据在程序执行过程中完整正确

(3)独立路径:单元测试的基本任务是保证模块中的每条语句至少执行一次,对重要的独立路径进行测试往往会发现大量的错误

(4)出错处理:一个好的设计应能预见各种出错条件,并进行适当的出错处理,即预设各种出错处理通路

(5)边界条件:边界条件是指在程序中判断或循环的操作接线的边缘条件,软件经常在这类边界上出现错误

4.单元测试的测试用例设计原则

设计步骤:

(1)为系统运行设计测试用例

(2)为正面测试设计测试用例

(3)为负面测试设计测试用例

(4)为满足特殊需求设计用例

(5)为代码覆盖设计测试用例

(6)为覆盖率指标完成测试用例的设计

5.集成测试的基本概念

集成测试时介于单元测试和系统测试之间的过度阶段,与软件概要设计阶段相对应,是单元测试的扩展和延伸

集成测试和系统测试的区别:

(1)测试对象:集成测试的测试对象是通过了单元测试的各个模块组成的构建或者子系统,而系统测试除了软件之外还包括计算机硬件及相关的外围设备等

(2)测试方法:集成测试主要是黑盒白盒测试结合,又称为灰盒测试,系统测试主要是黑盒测试

(3)测试内容:集成测试的内容是各个程序单元或构件间的接口,以及单元集成之后的功能,系统测试的内容是验证整个系统的功能和其他肺功能需求是否实现

(4)测试目的:集成测试的目的是为了发现单元之间接口的错误,系统测试的目的是通过与系统需求说明书相比较之后发现软件与系统定义不符合或矛盾的地方

(5)测试角度:集成测试多是站在测试人员的角度开展的以便发现更多的问题,系统测试则更多是站在用户的角度开展的

6.集成测试策略

集成测试的策略是指被测软件模块的集成方式

(1)基于分解的集成策略

基于分解的集成策略又分为增量式和非增量式

一次性集成方式:

是一种非增量式的集成测试,将所有系统构件一次性集成到一起进行测试,目的是在最短的时间内将系统组装起来,使用最少的测试来验证整个系统

适用范围:

一个维护性或功能增强型的项目,修改或增强的部分很少

被测系统比较小,并且它的每个构件都经过了充分的单元测试

产品使用了严格的净室软件工程过程,每个开发阶段的质量和单元测试的质量都非常高

自顶向下的增量式集成:

此方式采用了与设计一样的顺序,将单元按系统结构的层次,沿控制层次自顶向下逐步集成

适用范围:

产品控制结构比较清晰稳定

产品的高层接口变化很小,底层接口可能经常需要修改

产品的控制模块具有较大的技术风险,需要尽早被验证

希望尽早能够看到产品的系统功能行为

自底向上的增量式集成:

适用范围:

底层接口比较稳定,高层接口变化比较频繁的产品

底层单元比较早被开发完毕的产品

混合的增量式(三明治)集成

该方式将系统划分成3层,中间一层为目标层,对上一层采用自顶向下,对下一层采用自底向上,最后测试在目标层汇总

这种方式结合了自顶向下和自底向上的优点,缺点是对目标层测试不够彻底,大部分软件开发项目都可以使用

(2)基于功能的集成

该策略从功能的角度出发,按照功能的关键程度对模块的继承顺序进行组织

优点是:采用该方法,可以尽快的看到优先级高的功能的实现,并验证这些功能的正确性

适用范围:

关键功能具有较大风险的产品

技术探索型的项目,其功能的实现远比质量更关键

对于功能实现没有把握的产品

干货分享

如果你已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,想转行怕学不会的,都可以关注我【软件测试小dao】,公众号内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

软件测试技术---单元测试和集成测试相关推荐

  1. 软件测试技术——单元测试和集成测试

    一.单元测试 为何要进行单元测试? 尽早发现错误 错误发现越早,成本越低. 发现问题比较容易 修正问题更容易 1.定义 单元测试是对软件基本的组成单元进行独立的测试 2.目标 单元模块是否被正确编码. ...

  2. 软件测试技术课后习题:第6章单元测试与集成测试-广东高等教育出版社,主编杨胜利

    目录 1.什么是单元测试? 2.什么是集成测试? 3.简述单元测试与集成测试的区别. 4.什么是静态测试? 5.什么是动态测试?简述动态测试的步骤. 6.简述驱动模块和桩模块在实际中的应用以及设计原则 ...

  3. 单元测试与集成测试、系统测试、测试过程管理、软件测试自动化的综合练习

    1.关于单元测试,下列说法正确的是(D) A单元测试只能使用白盒测试技术设计测试用例 B所有黑盒测试技术均适用于单元测试用例设计 C如果被测模块调用的硬件驱动模块未就绪,可以编写测试模块来替代这部分硬 ...

  4. 软件测试面试题:单元测试、集成测试、系统测试的侧重点是什么?

    单元测试.集成测试.系统测试的侧重点是什么?  单元测试针对的是软件设计的最小单元--程序模块(面向过程中是函数.过程:面向对象中是类.),进行正确性检验的测试工作,在于发现每个程序模块内部可能存在的 ...

  5. 软件测试集成测试ppt,软件测试单元测试和集成测试.ppt

    软件测试单元测试和集成测试.ppt (31页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 *内容(1)单元测试驱动程序桩程序互动(2)集 ...

  6. 软件测试基础知识 - 单元测试、集成测试、系统测试、回归测试、验收测试这几步中最重要的是哪一步

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 这些测试步骤分别在软件开发的不同阶段对软件进行测试, ...

  7. 面向对象的软件测试技术

    相关知识点-面象对象(=Object Oriented)技术 1. 对象和类 l 面象对象的编程语言:以对象为中心,以消息为驱动,程序=对象+消息 l 类是一种新的数据类型,是设计的核心,是通过抽象数 ...

  8. 淮海工学院软件测试技术实验三功能测试,软件工程-实验3软件测试技术实验(7页)-原创力文档...

    淮海工学院计算机工程学院 实验报告书 课程名: <软件工程> 题 目: 实验3软件测试技术实验 学 号: 2014140093 班 级: Z计121 姓 名: 薛慧君 评语: 评语: 成绩 ...

  9. 软件测试设计与开发,软件测试技术·测试设计与开发.ppt

    软件测试技术·测试设计与开发 * 3.4 评审测试用例 复查测试用例时应该考虑的一些问题: 测试或测试组件完全针对的是需求中列出的功能吗? 测试组件是否覆盖了所有需求? 有冗余的测试吗? 每一个测试步 ...

  10. 软件测试技术——软件测试概述

    文章目录 一.软件测试的定义 标准定义 Bug和缺陷 二.软件测试与软件质量保证 三.软件测试七大基本原则 四.软件测试分类 按测试手段 按测试执行方式 按测试阶段或层次 按测试对象 五.软件测试过程 ...

最新文章

  1. 【ACL 2020】腾讯AI Lab解读三大前沿方向及入选的20篇论文
  2. php按比例截图,php 按比例生成小图函数
  3. iphone内存检测
  4. java路线_2021年Java学习路线图—精心整理
  5. boost::graph模块实现读写graphml的测试程序
  6. 杠上了,Linus 再次怒喷 Intel 直言“去死”
  7. 将用户数据分成一个个数据块传输的优点不包括( )
  8. c#事件,委托机制(转)
  9. html序列符号替换,Html标签替换(过滤掉html特殊符号)
  10. springboot 读写分离_springboot +ShardingJDBC 读写分离
  11. Docker入门者手册
  12. 【Rmarkdown rmysql】
  13. 网站推广效率最高的20种办法
  14. 离心泵CAE_3_FLUENT数值模拟
  15. 产品经理项目流程(四)——需求文档
  16. STM32-GPIO的配置和使用
  17. 如何将.frm,.MYD,.MYI文件导入数据库
  18. 在自己订阅的GOOGLE快讯中,看到自己的文章
  19. 开源项目——小Q聊天机器人V1.1
  20. ISDA 国际掉期交易协会

热门文章

  1. 不定式和动名词复合结构是什么
  2. 公益/广告-bloggerads广告是为了钱?[非推广文章哈]
  3. foxmail代理设置方法
  4. kafka数据保存时间问题与kafka的性能测试
  5. 程序员为什么更容易脱发?
  6. 2元参数matlab图,二元作用参数 - 仿真模拟 - MATLAB - 小木虫论坛-学术科研互动平台...
  7. 计算机电源 自动关机,电脑自动关机是什么原因,小编教你怎么解决电脑自动关机...
  8. 让 CXK 来教你实现游戏中的帧动画(上)
  9. 计算机视觉行业博客和代码汇总
  10. als算法参数_协调过滤算法之ALS