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)——黑白盒测试相关推荐

  1. Software Engineering at Google翻译-III-11-Testing overview(测试概述)

    参考: https://github.com/daizhenhong/swe-at-google/blob/main/Part_III_Processes/total/Chapter-11-total ...

  2. FPGA学习日志——OV7670寄存器配置

    FPGA学习日志 鼓励自己每天进行学习总结:2021.2.6 找到了ov7670寄存器的配置具体介绍 转载自: OV7670配置和调试总结--浩爹 SCCB协议介绍与应用和OV7670摄像头的寄存器配 ...

  3. 论文阅读: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 ...

  4. Software Engineering at Google

    Google的Fergus Henderson在Software Engineering at Google中介绍了Google的软件工程实践. 软件开发 源码仓库 单一源代码仓库,除了核心配置和安全 ...

  5. opencv生成日志_OpenCV-Utils学习日志:VideoCapture使用样例

    1.VideoCapture可以打开多种来源的数据流,但常见的是相机.视频及图像序列三类数据流: (1)打开相机数据流,需要指定相机在主机上的设备编号,若主机上只有一个相机则编号通常是0. (2)打开 ...

  6. SoftWare Engineering -- WEEK.3

    SoftWare Engineering – WEEK.3 2022.3.18 @Raoquan WEEK.3 List 0. Coursework some details 1. Requireme ...

  7. VB6编程:DirectX 2D图形学习日志20伽玛校正

    VB6编程:DirectX 2D图形学习日志20伽玛校正 教程下载地址:https://download.csdn.net/download/gosub60/13696651 作用:通过按↑和下方向键 ...

  8. 苏嵌学习日志08 07.16

    学习日志 刘易中 07.16 今日学习任务 C51单片机的基本常识.LED灯.蜂鸣器.普通按键.矩阵按键 今日任务完成情况 复习了C51单片机的理论知识,介绍了LED灯.蜂鸣器.按键的简单编程和仿真 ...

  9. oracle安装搜狗输入法教程,Linux入门学习教程:在Ubuntu 14.04中安装使用搜狗拼音输入法...

    然后,访问搜狗输入法Linux版的官网,http://pinyin.sogou.com/linux,下载搜狗输入法Linux版.从官网可以看到,该输入法官方只支持Ubuntu(不过网上有人通过将deb ...

最新文章

  1. SpringBoot培训教程--史前文明之Spring简介
  2. PMP-【第2章 项目运行环境与项目经理】2021-1-4(49页-60页)
  3. LoadRunner11设置场景百分比模式完成多台客户端负载测试
  4. LeetCode(9) - Palindrome Number
  5. rhino5.0安装教程
  6. 没有暑假的Ada 要好好努力咯 C#继续
  7. Atitit 软件国际化原理与概论
  8. dell主板恢复出厂设置_DELL(戴尔)BIOS进入及恢复默认值
  9. java jmail_jmail和javamail的区别
  10. IT之家精华:苹果iOS系统发布/固件下载/升级更新大全表~
  11. NAT MASQUERADE
  12. Quara 上一些有趣的问答
  13. VM虚拟机Ubuntu设置静态IP方法
  14. STM32F103开发环境的搭建
  15. 推荐算法架构2:粗排
  16. dnf神龙95端不显示服务器,《DNF》95版本任务BUG解决办法 95版本任务找不到怎么回事...
  17. OPPO跨越 “挑战者深渊”
  18. python用字符串输出月份_python 输出上个月的月末日期实例
  19. 会导致小程序onhide码 手机息屏_小程序onshow事件
  20. windows tabular数据流协议

热门文章

  1. winform皮肤控件【皮肤文件使用及错误解决办法】
  2. 苹果天气不显示_为何我苹果手机通讯录里的电话号码显示不出来
  3. 证件照转数字人只需几秒钟,微软实现首个3D扩散模型高质量生成效果,换装改形象一句话搞定 | CVPR 2023...
  4. chown 命令使用方法
  5. Flash 3D引擎全集
  6. java tofixed,js toFixed()方法的坑
  7. 请每天吃一碗:试试效果如何
  8. 「人造太阳」背后,能源为什么值得关注?
  9. Android车机 USB1音乐播放界面,拔插USB2,闪退到主界面,音乐停止播放(#10329)
  10. 如何查看服务器数据库管理系统,怎么查看服务器的mysql数据库