软工——详解白盒测试

软件测试,是一个容易被遗忘的过程。人们都看到了软件开发的美好,却忽视了软件测试的重要性。

软件测试目的:发现程序中的错误。

为了发现程序的错误,测试用例的制定也是非常重要的。只有尽可能用较少的测试用例,检测出程序的错误。

软件测试计划的制定:

之前学习软件工程的时候,白盒测试中的覆盖不太清楚。在复习软考的过程中,又重新看了一遍软工。终于明白各种覆盖,究竟是什么意思了。接下来请看详解。

对于软件的测试,是在软件开发的全部生命过程中。只是不同阶段,测试的重心和测试方法不同而已。

计划何时制定:

计划何时执行:

而测试计划的执行,正好与制定计划相反。

在详细阶段:编码的时候伴随着单元测试。

完成之后,进行集成测试。

确认完成,交工的时候,进行一次确认测试。(确认测试,即检测系统
 是否与需求相匹配)

本节,主要讲解白盒测试逻辑覆盖标准。

白盒测试

用于单元测试。

白盒,就是要了解程序的内部结构进行的测试。相对黑盒来说,要求测试人员的水平较高。

首先看一下白盒逻辑覆盖标准:

1、语句覆盖

2、判定覆盖

3、条件覆盖

4、判定-条件覆盖

5、条件组合覆盖

6、路径覆盖

覆盖程度依次增强。

看到上面6类方法,是不是很头疼。

首先,对于以上概念,首先要区分一下,什么是条件,什么是判定。区分开这两种,上面的6种方法,也就迎刃而解了。

判定:

决定逻辑的分支

条件:

进行决定逻辑分支的一个子条件

还是看一个例子吧

例子中存在的判定:

1、T1:A>=80 and B>=80

2、T2:A+B>=140 and(A>=90 or B>=90)

例子中存在的条件

1、T11:A>=80

2、T12:B>=80

3、T21:A+B>=140

4、T22:A>=90

5、T23:B>=90

例子中的路径

三条:①②③

语句覆盖:

从头执行到尾。只需要一个测试用例就可以。

判定覆盖:

在测试用例中,被测试程序,每个判定的可能取值至少执行一次。

4个判定,只需要全部包含在测试用例中就可以了。

可以设置2个测试用例

例:

如上的可能的用例结果中。

可以实现判定覆盖的组合:

1、①②

2、③④

3、①②③

……

n、①②③④

只要满足,所有的判定,在用例中至少存在一次的。就是判定覆盖。

条件覆盖

在若干个测试用例中,运行被测程序,使得程序中每个判定的每个条件的可能取之至少执行一次。

如上10个条件,每个必须至少执行一次。

条件覆盖,与判定覆盖做法一致,只是判定的数目有变化。

只要所选取的测试用例中,每列中都存在两个判定,这样的测试用例组。就称之为条件覆盖。

判定条件覆盖:既是判定覆盖,又是条件覆盖。

条件组合覆盖:

判定的重点,在与T11与
T12 的组合。

对于以上例题,条件组合覆盖测试用例最少为:

路径覆盖

顾名思义,就是对于所有的分支至少经过一次。

通过流程图很容易看出来。三条路径,分别需要三条测试用例。

通过以上的例子,白盒测试,就是追求以较少的测试用例,来找出更多的错误。

总结

白盒测试标准。也就分三方面进行测试:判定、条件、路径。

白盒测试,比起黑盒测试来说,对测试人员的要求比较高。因为是要测试程序内部的结构。所以,制定合理的测试用例,也是一件很不容易的事情啊。测试的工作也同样很重要。有不正确的地方,望斧正。

时间: 2024-10-26 02:48:30

软工——详解白盒测试的相关文章

软考详解---三范式

关系型数据库是现在广泛应用的数据库类型,对关系型数据库的设计就是对数据进行组织化和结构化的过程.对于小规模的数据库我们处理起来还是比较轻松,但是随着数据库规模的扩大我们将发现用户操控数据库的SQL语句将变得笨拙.复杂.更糟糕的是很有可能导致数据不完整,不准确.所以我们有必要将数据设计的更加符合规范.怎样使我们的数据库更加规范呢,在数据库的世界里一共总结了五个范式,常用的有三个,今天小编就简单的总结一下三范式,三范式的内容也是软考中必考内容,希望对小伙伴们有帮助,小编会首先简单的介绍一个各个范式的

this软拷贝详解

<script> if( !Function.prototype.softBind ){ Function.prototype.softBind = function( obj ){ var fn = this;//2.把函数foo的引用赋给fn //14.把函数foo的引用赋给fn var curried = [].slice.call( arguments, 1 );//3.截取softBind函数参数的第二位并返回一个函数 //15.截取softBind函数参数的第二位并返回一个函数 v

2019年上半年软考各科真题及答案详解下载(网工、软设、系统集成、高项、系分、数据库、监理)

2019年上半年网络工程师上午真题及答案详解https://down.51cto.com/data/2461773 2019年上半年信息系统项目管理下午真题及答案详解https://down.51cto.com/data/2461776 原文地址:https://blog.51cto.com/8381666/2400214

强引用、软引用、弱引用、虚引用详解

强引用.软引用.弱引用.虚引用详解 先说一下垃圾回收机制GabageCollection: GC是垃圾收集的意思(GabageCollection).和JAVA一样,ANDROID系统也是由GC来自动回收内存的.android中一个应用的启动,android系统都会为这个应用分配一个dalivk虚拟机,以便这个应用运行在这个独立的虚拟机上,可是一个虚拟机内存大小一般也是限制的(20M左右).可见,一个应用的运行所申请的内存不可能无限大的. 通常,GC是在一个单独的比较低优先 级线程中运行.这样其

LinearLayout详解四:彻底解决软键盘遮挡输入框的问题

之前把预备知识都介绍完了,话说学以致用,接下来我们要通过重载LinearLayout类来解决软键盘覆盖的问题. 首先阐述一下这个问题,如下图所示: 然后看挡住输入框的情况 然后我们给出xml的源代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:lay

《信息系统项目管理师软考辅导——3年真题详解与全真模拟》主要创新点、关注点

<信息系统项目管理师软考辅导--3年真题详解与全真模拟>主要创新点.关注点 新增2014年5月.11月两份真题试卷的360°透彻解析: 更新2013年5月.11月真题试卷的解析: 紧扣考纲,基于历年真题分析,心血创作了一套全新的全真模拟卷: 与时俱进创作了部分前沿信息技术(例如,4G技术.云数据中心.大数据技术等).法规标准的新题,并更新至各份闯关密卷中: 细致地订正了前一版书籍在编写.校对.排版.印刷等环节中所存在的错漏之处(例如,部分语句表述不够准确到位,部分数据上标排版错位等问题),对待

《系统集成项目管理工程师软考辅导——3年真题详解与全真模拟》主要创新点、关注点

<系统集成项目管理工程师软考辅导--3年真题详解与全真模拟>主要创新点.关注点 新增2014年5月.11月两份真题试卷的360°透彻解析: 更新2013年5月.11月真题试卷的解析: 紧扣考纲,基于历年真题分析,心血创作了一套全新的全真模拟卷: 与时俱进创作了部分前沿信息技术(例如,4G技术.云数据中心.大数据技术等).法规标准的新题,并更新至各份闯关密卷中: 细致地订正了前一版书籍在编写.校对.排版.印刷等环节中所存在的错漏之处(例如,部分语句表述不够准确到位,部分数据上标排版错位等问题),

《网络工程师软考辅导——3年真题详解与全真模拟》主要创新点、关注点

"质量第一,开拓创新"是编写这套考试辅导用书的指导思想:出版精品是我们坚持不懈的奋斗目标! <网络工程师软考辅导--3年真题详解与全真模拟>主要创新点.关注点 新增2014年5月.11月两份真题试卷的360°透彻解析: 更新2013年5月.11月真题试卷的解析: 紧扣考纲,基于历年真题分析,心血创作了一套全新的全真模拟卷: 与时俱进创作了部分前沿信息技术(例如,4G技术.云数据中心.大数据技术等).法规标准的新题,并更新至各份闯关密卷中: 细致地订正了前一版书籍在编写.校对

网工最实用最常用的网络命令之一——Ping 命令详解(一)

Ping是Windows.Unix和Linux系统下的一个命令.ping也属于一个通信协议,是TCP/IP协议的一部分.利用"ping"命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障. 网工最实用最常用的网络命令之一--Ping 命令详解(一)使用格式:ping -参数 (中间有个空格) 很多时候大家都只单独ping 加IP地址,验证本机到目的IP地址之间的网络是否连通,其实加上一些参数会获得不一样的结果. 1.ping -t 目标主机IP地址 机房的环境有多噪音大家都