《软件测试技术》课程第八周随笔

软件测试第八周随笔,本周软件测试的课程已全部结束,随笔重点回顾下因果图。

 (一)概念:

因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例,同时,还能指出程序规范中存在什么问题,鉴别和制作因果图。

因果图法着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。

(二)一些常用的固定符号:

     C:表示原因(cause);  Ef:代表结果(effect); 相等:;   非:

与: ;   或:

E: 排他(exclusive);  I:at least(inclusive);  R:require ;

                                  

O:only one ;           M:强制标记(marking);

                       

(三)实例分析:

例:产品说明书:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。

以下给出用因果图法设计这个实例的测试用例的具体步骤:

(1)确定软件需求中的原因和结果:

原因:1.投入1元5角硬币(C1); 2.投入2元硬币(C2); 3.按“可乐”按钮(C3);

4.按“雪碧”按钮(C4);     5.按“红茶”按钮(C5);

中间状态; 1.投币完成; 2.按钮完成;

结果:    1.退还5角硬币(Ef1); 2.送出“可乐”(Ef2); 3.送出“雪碧”(Ef3); 4.送出“红茶”(Ef4);

(2)确定原因与结果间的关系:

•退5角:Ef1=C2∧(C3∨C4∨C5) ∧E (C3,C4,C5) ∧E(C1,C2)

•可乐:  Ef2=C3 ∧(C1∨C2) ∧E (C3,C4,C5) ∧E(C1,C2)

•雪碧:  Ef3=C4 ∧(C1∨C2) ∧E (C3,C4,C5) ∧E(C1,C2)

•红茶:  Ef4=C5 ∧(C1∨C2) ∧E (C3,C4,C5) ∧E(C1,C2)

(3)画出因果图:

      

(4)测试用例设计

C1,C2同时成立的测试用例是无法实现的。但是如果编程人员,把C1,C2用两个变量编程,则有可能C1,C2同时成立。

由于测试人员无法测试到,这就要靠白盒测试来完成。

时间: 2024-08-03 19:43:51

《软件测试技术》课程第八周随笔的相关文章

20135302魏静静——linux课程第八周实验及总结

linux课程第八周实验及总结 实验及学习总结 1. 进程切换在内核中的实现 linux中进程切换是很常见的一个操作,而这个操作是在内核中实现的. 实现的时机有以下三个时机: 中断处理过程(包括时钟中断.I/O中断.系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(): 内核线程可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度,也就是说内核线程作为一类的特殊的进程可以主动调度,也可以被动调度: 用户

《软件测试技术》课程第七周随笔

软件测试第二次试验 软件测试第二次试验为白盒测试,使用了单元测试 1. 实验准备 Windows 8.1,Visual Studio Ultimate 2013,被测试软件(Is it a prime number?) 2. 实验步骤 ①使用Windows8.1系统,安装好Visual Studio Ultimate 2013和被测试的软件Is it a prime number及其源代码. ②右键单击解决方案,选择添加→新建项目,在新建项目的对话框中选择已安装→Visual C#→Window

《Linux内核分析》课程第八周学习总结

姓名:何伟钦 学号:20135223 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-100002900 一.进程调度与进程切换 (一)不同的进程有不同的调度需求   第一种分类: I/O密集型(I/O-bound) 频繁的进行I/O 通常会花费很多时间等待I/O操作的完成 CPU密集型(CPU-bound) 计算密集型 需要大量的CPU时间进行运算 第二种分类: 批处理进程 不必与用

Java EE开发技术课程第五周(Applet程序组件与AJAX技术)

1.Applet程序组件 1.1.定义: Applet是采用Java编程语言编写的小应用程序,该程序可以包含在HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同.含有Applet的网页的HTML文件代码中部带有<applet> 和</applet>这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet. 1.2.工作原理及优势: 1.2.1  Java Applet 可以大大提高Web页面的交互

j2ee高级开发技术课程第六周

一.jsf(java server faces)的运行原理(工作方式) 1.jsf应用是事件驱动的,当一个事件发生时(比如用户单击一个按钮),事件通知通过HTTP发往服务器,服务器端使用叫做FacesServlet的特殊servlet处理该通知,web容器里每一个jsf应用都有它自己的FacesServlet; 在后台,每一个jsf请求都触发了3件事情: 1)FacesServlet创建FacesContext(该对象中包含Web容器传给FacesServlet的service方法的Servle

Java EE开发技术课程第七周(json)

JSON: https://baike.baidu.com/item/JSON/2462549?fr=aladdin JSON指JavaScript对象表示法(JavaScript Object Notation),是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,有效地提升网络传输效率. JSON 语法 JSON 语法规则 在 JS 语言中,一切都是对象.因此,任何支持的类型都可以通过 JSON 来表示,例如字符串.数字.对象.数组等.但是对象和数组是比较特殊且常用

软件测试技术第一周课堂随笔记录

写在前,这是软件测试技术的课堂随笔,记录了一些在课上所阐述的内容. 一.由于是第一周课,免不了讲起软件测试的定义:什么是软件测试. 软件测试是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期.对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求.预先定义的不一致性.-----------------百度百科. 个人的理解暂时就是:1.找bug.2.找出需求与实际的差别. 二.软件测试常见测试方法: 从测试是否针对软件结

第八周课程总结 &amp; 实验报告(六)

第八周课程总结 一.包装类 介绍 装箱与拆箱 应用 二.异常 基本概念 基本格式 异常类的继承结构 throws关键字 throw关键字 Exception类和RuntimeException类 自定义异常类 三.多线程 基本概念 进程 多线程 Java中线程的实现 继承Thread类 实现Runnable接口 Thread和Runnable的区别 一.包装类        1.介绍                                8种基本类型变包装类 (1)除了Character

第八周技术博客

简单的贪吃蛇 (function() { var canvas = document.getElementById("canvas"); var ctx = canvas.getContext('2d'); ctx.fillStyle = "#0f0"; ctx.strokeStyle = "#f00"; //按下键盘的响应参数 var keyList = { 37: [-1,0], 38: [0,-1], 39: [1,0], 40: [0,1