2.7.4 谓词测试准则

我们最关心的是如何从给定的谓词pr生成测试集T,使其满足:(a) T是最小集合;(b) T保证能够检测出pr实现中存在的符合前文所述故障模型的所有故障。为了获得这样的测试集,定义了三个准则,通常称作BOR、BRO、BRE测试准则。名称BOR、BRO、BRE分别对应于布尔运算符、布尔和关系运算符、布尔和关系表达式。三个准则的形式化定义如下:

对于复合谓词pr,如果测试集T确保能够检测出pr实现中存在的所有单/多布尔运算符故障,则T满足BOR测试准则,称T为BOR充分测试集,记为TBOR。

对于复合谓词pr,如果测试集T确保能够检测出pr实现中存在的所有单/多布尔运算符及关系运算符故障,则T满足BRO测试准则,称T为BRO充分测试集,记为TBRO。

对于复合谓词pr,如果测试集T确保能够检测出pr实现中存在的所有单/多布尔运算符、关系表达式以及算术表达式故障,则T满足BRE测试准则,称T为BRE充分测试集,记为TBRE。

注意,上文中的“单/多故障”和“确保能够检测出”需要仔细揣摩。

设Tx为从谓词pr导出的测试集,其中x∈{BOR,BRO,BRE}。设pf为通过向谓词pr注入单/多故障而得到的另一谓词,注入的故障属于三种类型之一,即布尔运算符故障、关系运算符故障、算术表达式故障。若存在t∈Tx,使得p(t)≠pf(t),则称Tx确保能够检测出pf中的故障。下面的例子说明一个BOR充分测试集示例及其故障检测效力。

例2.25考虑复合谓词pr:ad。设S为pr上的约束集合

下面的测试集T满足约束集合S以及BOR测试准则:

由于T满足BOR测试准则,从而确保能够检测出pr中存在的所有单/多布尔运算符故障。通过针对测试集T,计算pr及其经注入布尔运算符故障后得到的变体的真值,就能验证这一点。

表2-6列出了谓词pr以及经注入单/多布尔运算符故障后得到的7个故障谓词。对于每个谓词,都使用T中的3个测试用例分别进行计算。注意,对于故障谓词,至少存在一个测试用例,使其取值与pr取值不同。

表2-6例2.25中BOR充分测试集对单/多布尔运算符故障的检测能力(故障谓词与谓词pr的计算结果的差异用斜体标识)

很容易验证,如果从表2-6中删去任意一个测试用例,则至少存在一个故障谓词对于剩余的两个测试用例,其真值与谓词pr的真值相同。例如,删去t2,则故障谓词4与谓词pr对于测试用例t1、t3所得结果一致。因此,可以肯定,T是谓词pr的最小且满足BOR充分性的测试集。

练习2.28与上面的例子类似,要求验证所给的两个测试集分别是BRO充分的和BRE充分的。在下一节,将讨论生成BOR、BRO、BRE充分测试用例的算法。

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

软件测试作业谓词测试,2.7.4 谓词测试准则相关推荐

  1. 软件测试作业垃圾分类系统,垃圾分类最强小测试,看看你能得几分?

    原标题:垃圾分类最强小测试,看看你能得几分? 上海开始实行垃圾分类,身在广州的我本来悠哉游哉的看着各大网站上大家的吐槽和调侃,还因为猪很忙这个梗笑得不行. 但万万没想到广州也被列入试点了,一瞬间有点慌 ...

  2. 软件测试作业4:测试要素

    作业4 1.选择一个测试要素 (Lec.10, slide 9),以你实现的或者熟悉的一个软件作品为例,分别讨论该要素在软件生命周期的需求.设计.编程.测试.安装.验收和维护各阶段的测试目标和内容. ...

  3. 软件测试作业3:软件测试的16条公理

    作业3 1.综述软件测试的16条公理 (参见 Lec.8, slide 43) 答: 利益相关者公理: 测试是代表测试利益相关者执行的信息或情报收集的活动 公理1(利益相关者公理): 测试需要利益相关 ...

  4. 软件测试种类(一):包括功能性测试,可靠性测试,强度测试等

    软件测试种类(一) 软件测试是由一系列不同的测试组成,主要目的是对以计算机为基础的系统进行充分的测试. 功能测试 功能测试是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有无严重错误. ...

  5. 叮当软件测试简历,软件测试作业..doc

    软件测试作业. 软件测试作业 第1题 设有一个档案管理系统,要求用户输入以年月表示的日期.假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月.现用 ...

  6. 东华软件测试题,东华大学软件测试作业整理.docx

    东华大学软件测试作业整理 一.当测试结果与测试用例中描述的有所不同时,有哪些可能的原因呢?为什么说测试的初始状态很重要?答: 测试环境不同,测试步骤出现差异,测试系统本身bug.因为在进行测试时,需要 ...

  7. 东华软件测试题,东华大学软件测试作业整理

    东华大学软件测试作业整理 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 一.当测试结果与测试用例中描述的有所不同时,有哪些可能的原 ...

  8. 软件测试需要学什么?年薪30W+的测试工程师需要掌握哪些技能?

    ​ 从事任何一个行业,不论想入行的新人还是已经在职的从业人员,一定要系统化的掌握自身的学习路线和发展方向,随时对自身的优劣点掌握清楚.尤其是对于软件测试这个岗位.测试职业所涉及的技能范围比较广,测试流 ...

  9. 软件测试是采用(A)执行软件的活动,测试(Test)测试是一项采用测试用例执行软件的活动,在这.ppt...

    测试(Test)测试是一项采用测试用例执行软件的活动,在这.ppt Beta 测试是从用户角度进行的测试.( Y ) 项目立项前测试人员不需要提交任何文档. ( Y ) 单元测试能发现大部分的软件缺陷 ...

  10. 软件测试作业7:构建弱健壮的等价类测试用例

    软件测试作业7:构建弱健壮的等价类测试用例 1.构造下述三角形问题的弱健壮的等价类测试用例. 三角形问题:输入三个不超过100的正整数作为三角形的三条边,判断三角形是等边三角形.等腰不等边三角形.完全 ...

最新文章

  1. 数学 计算机工作,不过有人说先学数学,后学计算机后劲足一点,工作也可以的,这估...
  2. 【c语言】蓝桥杯算法提高 输出三个整数的最大数
  3. itextpdf中文不显示_LaTeX实时预览中文
  4. 用“ul+li”及css制作韩国风格菜单
  5. java hashtable排序_java中哈希表中有迭代器模式的实现,可以认为其是顺序表吗?...
  6. 神竜出击 合三为一!
  7. Event Logging 技术简介(转载)
  8. C#LeetCode刷题之#697-数组的度( Degree of an Array)
  9. 网络爬虫ip代理服务器【程序样例】
  10. php 加载慢,PHP版网站缓存加快打开速度的方法分享
  11. python软件下载3版本-python
  12. Java NIO 基础
  13. 你家的APS系统有这些功能吗?排程系统功能盘点
  14. python app逆向_python之app逆向破解data参数中的PassWord DES加密无填充
  15. Tomcat 7 证书配置中遇到的一个问题
  16. fluent加载第三方(C++,Fortan等)动态链接库
  17. python通过pop3方式登录邮箱(qq,新浪,网易)
  18. (附源码)springboot校园疫情智慧防控微信小程序 毕业设计 011133
  19. 段码液晶屏实现原理和需要注意的事项
  20. 中介兴风 深圳楼市起浪

热门文章

  1. vue项目中引入iconfont
  2. SMBMS(超市管理系统)
  3. Linux mint 安装步骤
  4. windows7重装系统
  5. 车载部标服务器源码,部标JT T808-2013协议与样例代码
  6. 【javascript】form提交 不执行onsubmit事件解决方案
  7. 山东大学软件学院数据库系统实验五
  8. 优雅处理头像加载失败
  9. 磁性材料测量中最常见的5个错误
  10. js中将一句英文中每个单词的首字母转成大写 (how are you and are you fine)