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

一、单元测试

为何要进行单元测试?
尽早发现错误

  • 错误发现越早,成本越低。
  • 发现问题比较容易
  • 修正问题更容易

1.定义

单元测试是对软件基本的组成单元进行独立的测试

2.目标

  1. 单元模块是否被正确编码。
  2. 信息能否正确地流入和流出单元。
  3. 在单元工作过程中,内部数据能否保持完整性。
  4. 数据边界处能否正确工作
  5. 单元的运行能否满足特定的逻辑覆盖

3.任务

单元测试中必须进行的测试:

  1. 模块独立执行路径测试
    对每一条独立路径执行测试,保证每条语句被至少执行一次。
  2. 局部数据结构测试
    检查局部数据结构完整性。
  3. 模块接口测试
    检查模块接口是否正确。
  4. 单元边界条件测试
    检查临界数据处理的正确性
  5. 单元容错测试
    预设的各种出错处理是否正确有效。

4.手段

使用白盒测试。
单元测试的三个步骤:

  • 互查
  • 走查
  • 评审

最重要的手段是静态测试

5. 静态测试

不运行被测试程序,对代码通过检查、阅读进行分析。

6. 桩程序和驱动程序

驱动模块(drive):为了对底层或子模块进行测试而编写的,用于调用这些模块的程序。
桩模块(stub):对顶层或上层模块进行测试时所编写的,用于代替下层模块的程序。

二、集成测试

更详尽的说明可以看这篇博客

1.非渐增式测试模式

先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序。

大棒集成方法(Big-bang Integration)什么倒灶翻译
先对每一个子模块进行测试(单元测试),然后将所有模块一次性全部集成起来进行集成测试。
这种方法很难确定出错的位置、所在的模块、错误的原因,只适合在规模较小的应用系统中使用。

2.渐增式测试模式

把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进行测试。

-测试开销发现模块间接口错误诊断难易
非渐增式小(可以并行测试
渐增式

自顶向下法
对主控模块进行测试,每次用一个实际模块代替桩程序。每次增加新模块,都要考虑回归测试。

  • 缺点:底层关键模块发现问题被延后
  • 优点:1. 不需要设计驱动程序;2. 在早期就能对系统功能进行验证; 3. 能较早发现接口错误。

自底向上法
把底层模块组合成某个特定子功能块,对子功能进行测试。接着把子功能族结合成更大的子功能族进行测试。

  • 优缺点与自顶向下正好相反。

3. 混合策略

三明治集成方法
选择软件中间的某层为界,对上层,使用自顶向下法,对下层,使用自底向上法。

  • 优点:将自顶向下和自底向上有机结合,桩和驱动器的开发工作都比较小
  • 缺点:在被集成之前,中间层不能尽早得到充分测试

改进的三明治集成
不仅自两头向中间集成,而且保证中间模块得到单独的测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文本框输入值文字消失常用的两种方法

1.这种相对来说较简单&#xff0c;举例子&#xff1a; <input name"textfield" type"text" value"点击添入标题" style"color: gray;" onfocus"if (value 点击添入标题){value }" onblur"if (value ){value点击添…

C语言之strstr函数类似Java字符串的contain函数

1、strstr函数介绍 找出haystack字符串在needle字符串中第一次出现的位置&#xff08;不包括needle的串结束符&#xff09;。返回该位置的指针&#xff0c;如找不到&#xff0c;返回空指针。 2、举例 3、运行结果

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

文章目录一、软件测试的定义标准定义Bug和缺陷二、软件测试与软件质量保证三、软件测试七大基本原则四、软件测试分类按测试手段按测试执行方式按测试阶段或层次按测试对象五、软件测试过程模型V模型W模型H模型X模型一、软件测试的定义 正向观点逆向观点验证软件是否能正常工作…

《编写高质量代码:改善c程序代码的125个建议》——建议14-2:在右移中合理地选择0或符号位来填充空出的位...

本节书摘来自华章计算机《编写高质量代码&#xff1a;改善c程序代码的125个建议》一书中的第2章&#xff0c;建议14-2,作者&#xff1a;马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。 建议14-2&#xff1a;在右移中合理地选择0或符号位来填充空出的位 在右移…

Linux-No.04 Linux 设置定时任务发送邮件功能

2019独角兽企业重金招聘Python工程师标准>>> 1、定时任务 crontab -l crontab -e /sbin/service crond start //启动服务/sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 /sbin/…

WPF 基础控件之 DataGrid 样式

此群已满340500857 &#xff0c;请加新群458041663由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 PS&#xff1a;有更好的方式欢迎推荐。支持NugetInstall-Package WPFDevelopers.Minimal -Version 3.2.001—代码如下一、创建…

C#页面抓取信息

//根据Url地址得到网页的html源码private string GetWebContent(string Url){string strResult"";try{HttpWebRequest request (HttpWebRequest)WebRequest.Create(Url);//声明一个HttpWebRequest请求request.Timeout 30000;//设置连接超时时间request.Headers.Set…

C语言之unsigned char和uint8_t

1、问题 今天搞openssl里面的客户端和服务端生成的随机数时候&#xff0c;PC端用的uint8_t数据类型&#xff0c;我用的是unsigned char类型&#xff0c;特么这不日了狗&#xff0c;不一样&#xff0c;后来问了pc端的人&#xff0c;和到网上查了下他们的区别 2、解释 unsigned…

电子商务应用课程知识整理 第五章-搜索引擎优化(SEO)

文章目录一、认识SEOSEO概述SEO相关术语SEO黑帽SEO白帽PV&#xff08;Page View&#xff09;跳出率沙盒效应SPAM快照二、SEO常用技术1. 网页title的优化要点&#xff1a;2. 关键词的选取注意的问题&#xff1a;需要避免的问题&#xff1a;3. 元标签关键词的优化要点&#xff1a…

在 Linux 下使用 RAID(二):使用 mdadm 工具创建软件 RAID 0 (条带化)

RAID 即廉价磁盘冗余阵列&#xff0c;其高可用性和可靠性适用于大规模环境中&#xff0c;相比正常使用&#xff0c;数据更需要被保护。RAID 是一些磁盘的集合&#xff0c;是包含一个阵列的逻辑卷。驱动器可以组合起来成为一个阵列或称为&#xff08;组的&#xff09;集合。 创建…

【Maven实用技巧】03. Maven 编译打包时如何忽略测试用例

跳过测试阶段&#xff1a; mvn package -DskipTests 临时性跳过测试代码的编译&#xff1a; mvn package -Dmaven.test.skiptrue maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为&#xff0c;即跳过编译&#xff0c;又跳过测试。 指定测试…

如何使用windbg查看C#某个线程的栈大小 ?

每一个线程都有一个叫 TEB&#xff08;Thread Environment Block&#xff09; 的线程环境块数据结构&#xff0c;这个结构中有一个叫做 NT_TIB 的结构&#xff0c;它里面有两个字段分别为 StackBase 和 StackLimit&#xff0c;前面叫做栈基址,也就是栈顶&#xff0c;后者叫做 栈…

Android之解决ubuntu没有无线网卡和手机wifi实现adb wifi调试

1、问题 ubuntu没有无线网卡&#xff0c;但是在在wifi1是同一个网段&#xff0c;然后手机需要wifi adb调试 2、解决办法 1、连接上wifi1 2、手机下载“终端模拟器apk”安装在手机上 3、手机连接电脑&#xff0c;然后adb tcpip 5555 4、然后adb push dropbearmulti /sdcard…

struts2批量删除

2019独角兽企业重金招聘Python工程师标准>>> 2012-10-27 12:48 997人阅读 评论(0) 收藏 举报 逻辑代码 [java] view plain copy package com.stu2; import java.util.ArrayList; import java.util.List; import java.sql.*; import com.s…

如何使用jquery刷新当前页面

如何使用jquery刷新当前页面 下面介绍全页面刷新方法&#xff1a;有时候可能会用到 window.location.reload()刷新当前页面. parent.location.reload()刷新父亲对象&#xff08;用于框架&#xff09; opener.location.reload()刷新父窗口对象&#xff08;用于单开窗口&#xff…

电子商务应用课程知识整理 第六章-数据挖掘

文章目录一、概述二、关联分析概念&#xff1a;关联分析步骤&#xff1a;用于寻找频繁项集的算法算法一&#xff1a;蛮力法算法二&#xff1a;Apriopri算法&#xff08;先验算法&#xff09;三、分类与预测k近邻算法&#xff08;kNN&#xff09;四、聚类分析k均值算法&#xff…

C语言之如何输出uint32_t和uint64_t和16进制

1、输出uint32_t uint32_t a 888;printf("a is %ld", a); 2、输出uint64_t uint64_t b 888;printf("b is %lu", b);printf("b is %lld", b); 3、输出16进制 int c 16;printf("c is 0x%08x", c);

《统计会犯错——如何避免数据分析中的统计陷阱》—第2章置信区间的优势

本节书摘来自异步社区《统计会犯错——如何避免数据分析中的统计陷阱》一书中的第2章置信区间的优势&#xff0c;作者【美】Alex Reinhart&#xff08;亚历克斯莱因哈特&#xff09;,更多章节内容可以访问云栖社区“异步社区”公众号查看。 置信区间的优势与考虑试验结果的显著…

.NET Core 返回结果统一封装

本文使用.NET Core Webapi演示&#xff01;一:新建.NetCore webapi项目为了方便开发,简化代码,也为了与前端方便对接,需要对接口服务返回结果进行统一处理。二:定义返回结果结构我们需要定义一个统一返回结果泛型类ApiResultpublic class ApiResult<T>{/// <summary&g…

第40周一

晚上地铁回来的路上&#xff0c;回顾总结下今天&#xff0c;有点莫名的忧伤&#xff0c;感觉现在同事间的协作内耗很大&#xff0c;为什么一个简单的定制&#xff0c;就感觉涉及到多道流程多个不同负责人后就变的很复杂&#xff0c;进而组织的整体效率可想而知。一天大部分时间…