当前位置: 首页 > news >正文

第六章:Property-based Testing and Test Oracles

文章目录

  • Test Oracles
    • Active and Passive Test Oracles
    • Types of Test Oracles
      • Formal, executable specifications
      • Solved examples
      • Metamorphic oracles
    • Alternative implementations (备用实现)
    • Heuristic oracles (启发式)
    • The Golden Program!
    • Oracle Deviation (Oracle偏差)

Test Oracles

测试的三部分:

  • test input

  • expected output

  • testing environment

  • 执行测试用例的正常流程是:

    • 使用测试用例中的输入来执行程序,记录结果,
    • 然后确定所获得的输出是否为失败。
  • 谁或什么决定了程序产生的结果是否为失败?一种方式是由人工测试员查看输入并手动计算他们认为输出应该是什么。在这种情况下,人工测试员扮演着一个 test oracle 的角色。

  • 一个 test oracle 是指某个人或某个事物判断程序是否通过了或未通过了该测试用例。当然,它也可以是另一个返回“yes”(表示实际结果不是失败)或“no”(表示实际结果为失败)的程序。

在这里插入图片描述

  • test oracle 决定了根据当前的 test input, 系统给出的 output 是否 fail (充当了判官的角色)
  • 理想情况下,Oracle 应该是自动化的(在运行时没有人为干预),因为这样我们可以执行更多的测试用例并获得程序更广泛的覆盖率,但实际上这通常并不容易。

Active and Passive Test Oracles

在这里插入图片描述

  • 自动化预言可以分为两类:

    • 主动预言(active oracle): 一个程序,给定一个待测试程序的输入,能够生成该输入的期望输出。

    • 被动预言(passive oracle): 一个程序,给定一个待测试程序的输入和该待测试程序产生的实际输出,验证实际输出是否正确。

一般情况下更倾向于使用 被动预言。这有两个主要原因。

  1. Easier Implementation 实现更简单

    • Active oracles might require simulating the entire program-under-test. 主动 oracle 可能需要模拟整个被
http://www.lryc.cn/news/221326.html

相关文章:

  • react生命周期函数
  • QSqlDatabase使用Sqlite
  • 宝马——使用人工智能制造和驾驶汽车
  • java入门,Map<? extends String, ?>
  • Spring Boot 统一处理功能
  • 香港金融科技周VERTU CSO Sophie谈Web3.0的下一个风口 手机虚拟货币移动支付
  • 分布式单元化
  • wvp-gb28181-pro接入海康摄像头
  • 近视眼选择什么台灯好?专家推荐的防近视台灯
  • 数据标注工具【LabelImg】安装使用 用VOC制作自己的数据集
  • Zeus IoT : 基于 SpringBoot 的分布式开源物联网大数据平台
  • 面试—如何介绍项目中的多级缓存?
  • PyTorch入门学习(十七):完整的模型训练套路
  • 《 Hello 算法 》 - 免费开源的数据结构与算法入门教程电子书,包含大量动画、图解,通俗易懂
  • 数据库之事务
  • NOIP2023模拟12联测33 B. 游戏
  • 代码随想录打卡第六十三天|84.柱状图中最大的矩形
  • python tempfile 模块使用
  • 【软件测试】接口测试实战详解
  • 轻量封装WebGPU渲染系统示例<20>- 美化一下元胞自动机之生命游戏(源码)
  • Nodejs的安装以及配置(node-v12.16.1-x64.msi)
  • 03【保姆级】-GO语言变量和数据类型和相互转换
  • mermaid学习第一天/更改主题颜色和边框颜色/《需求解释流程图》
  • SAP MASS增加PR字段-删除标识
  • 【手把手教你】训练YOLOv8分割模型
  • 物料主数据增强屏幕绘制器DUMP
  • vue 实现在线预览Excel-LuckyExcel/LuckySheet实现方案
  • AIGPT重大升级,界面重新设计,功能更加饱满,用户体验升级
  • Web逆向-mtgsig1.2简单分析
  • 【蓝桥杯省赛真题41】Scratch电脑开关机 蓝桥杯少儿编程scratch图形化编程 蓝桥杯省赛真题讲解