学习日志之software engineering(14)——黑白盒测试
V&V过程要处理的对象是Failure,Fault和Defect
Failure是由一个或多个Fault引起的,其结果是用户运行程序得到的结果不理想。
Fault可能会引起Failure但是也可能不引起,其发生的原因是和需求文件不对应或者是软件写得很辣鸡
Defect是Fault和Failure的总称,进行V&V的过程就是要将这个玩意给消灭掉使程序按照requirement里走。这个过程是越靠前所需要的成本就越低。消除Defect的方式之一就是testing
Testing的分类:
> Unit testing:旨在发现存在Unit中的问题,将每个Unit从系统中分离开单独测试
> Intergration testing:测试每个Unit连接接口上的问题
> System testing:测试整个系统是否符合要求
> Regression testing:随着时间和环境变换,测试可能产生的问题
对于黑白盒测试而言对象都是单独的Unit
黑盒测试(function)
这个测试主要是基于requirement document而言的,我们需要知道的只由客户的需求,对于Unit内部结构并不关心。需要进行黑盒测试的主要步骤有三:
1. 定义Criteria
2. 定义针对每一个Criteria的产生的情况的预测
2.1 对于这个预测可以进行分类,分类成多个partition。这样做的理由是尽量不漏任何一种可能的情况尽量做到完善。同时从Partition的分类情况来看也可以看出有哪些情况是不必要进行test的,这些case就可以删掉了。
3. 为每一种预测的情况写test case
当然对于选择predicate的点,我们需要注意以下三个步骤:
> 随机选点
> 将预测的情况分类成几个partition,然后每一个partition中随机选点
> 选择边界点测试极端情况
白盒测试(structure)
主要专注于测试系统内部的结构,因此需要尽可能的在测试中覆盖到所有必要的要素。
statement coverage(node coverage): test case要确保尽可能覆盖到所有的node(每一个操作在流程图中就是一个圆角方框即node),其量化定义为运行的node占所有node的比例
decision coverage(edge coverage): test case要确保尽可能覆盖到所有的edge,即所有的箭头。其量化定义为运行到的edge占所有edge的比例
condition coverage: 这是针对代码中测试的条件语句,每个条件要尽量cover到其所有正确或错误的结果,主要有两种写test case的方法
simple: 针对条件语句中所有的条件,每个调件都需要至少有一个T和一个F的情况包括在内(这个情况称为满足simple condition coverage),但是仅仅是针对一个语句里的子条件,整个条件语句的结果可能不会满足一定有T和F(这种情况为满足condition coverage)。
multiple: 这种方法就是不仅要满足每个子条件有T有F还要将所有可能的子条件的组合情况给列出来
path coverage: 在test case中需要尽量包括所有的路径(即到每一个可能终点的可能路径),值得注意的是如果没有循环才肯能cover到所有的情况,即使只有一个循环也无法cover到所有的情况
loop coverage: 其实算是path coverage的一部分,其旨在测试代码中的循环。
学习日志之software engineering(14)——黑白盒测试相关推荐
- Software Engineering at Google翻译-III-11-Testing overview(测试概述)
参考: https://github.com/daizhenhong/swe-at-google/blob/main/Part_III_Processes/total/Chapter-11-total ...
- FPGA学习日志——OV7670寄存器配置
FPGA学习日志 鼓励自己每天进行学习总结:2021.2.6 找到了ov7670寄存器的配置具体介绍 转载自: OV7670配置和调试总结--浩爹 SCCB协议介绍与应用和OV7670摄像头的寄存器配 ...
- 论文阅读:Empirical software engineering experts on the use of students and professionals in experiments
题目:Empirical software engineering experts on the use of students and professionals in experiments ES ...
- Software Engineering at Google
Google的Fergus Henderson在Software Engineering at Google中介绍了Google的软件工程实践. 软件开发 源码仓库 单一源代码仓库,除了核心配置和安全 ...
- opencv生成日志_OpenCV-Utils学习日志:VideoCapture使用样例
1.VideoCapture可以打开多种来源的数据流,但常见的是相机.视频及图像序列三类数据流: (1)打开相机数据流,需要指定相机在主机上的设备编号,若主机上只有一个相机则编号通常是0. (2)打开 ...
- SoftWare Engineering -- WEEK.3
SoftWare Engineering – WEEK.3 2022.3.18 @Raoquan WEEK.3 List 0. Coursework some details 1. Requireme ...
- VB6编程:DirectX 2D图形学习日志20伽玛校正
VB6编程:DirectX 2D图形学习日志20伽玛校正 教程下载地址:https://download.csdn.net/download/gosub60/13696651 作用:通过按↑和下方向键 ...
- 苏嵌学习日志08 07.16
学习日志 刘易中 07.16 今日学习任务 C51单片机的基本常识.LED灯.蜂鸣器.普通按键.矩阵按键 今日任务完成情况 复习了C51单片机的理论知识,介绍了LED灯.蜂鸣器.按键的简单编程和仿真 ...
- oracle安装搜狗输入法教程,Linux入门学习教程:在Ubuntu 14.04中安装使用搜狗拼音输入法...
然后,访问搜狗输入法Linux版的官网,http://pinyin.sogou.com/linux,下载搜狗输入法Linux版.从官网可以看到,该输入法官方只支持Ubuntu(不过网上有人通过将deb ...
最新文章
- SpringBoot培训教程--史前文明之Spring简介
- PMP-【第2章 项目运行环境与项目经理】2021-1-4(49页-60页)
- LoadRunner11设置场景百分比模式完成多台客户端负载测试
- LeetCode(9) - Palindrome Number
- rhino5.0安装教程
- 没有暑假的Ada 要好好努力咯 C#继续
- Atitit 软件国际化原理与概论
- dell主板恢复出厂设置_DELL(戴尔)BIOS进入及恢复默认值
- java jmail_jmail和javamail的区别
- IT之家精华:苹果iOS系统发布/固件下载/升级更新大全表~
- NAT MASQUERADE
- Quara 上一些有趣的问答
- VM虚拟机Ubuntu设置静态IP方法
- STM32F103开发环境的搭建
- 推荐算法架构2:粗排
- dnf神龙95端不显示服务器,《DNF》95版本任务BUG解决办法 95版本任务找不到怎么回事...
- OPPO跨越 “挑战者深渊”
- python用字符串输出月份_python 输出上个月的月末日期实例
- 会导致小程序onhide码 手机息屏_小程序onshow事件
- windows tabular数据流协议
热门文章
- winform皮肤控件【皮肤文件使用及错误解决办法】
- 苹果天气不显示_为何我苹果手机通讯录里的电话号码显示不出来
- 证件照转数字人只需几秒钟,微软实现首个3D扩散模型高质量生成效果,换装改形象一句话搞定 | CVPR 2023...
- chown 命令使用方法
- Flash 3D引擎全集
- java tofixed,js toFixed()方法的坑
- 请每天吃一碗:试试效果如何
- 「人造太阳」背后,能源为什么值得关注?
- Android车机 USB1音乐播放界面,拔插USB2,闪退到主界面,音乐停止播放(#10329)
- 如何查看服务器数据库管理系统,怎么查看服务器的mysql数据库