测试小笔记(黑\白盒测试及区别、测试用例的设计)

  • 测试的概念:

  • 白盒测试

  • 黑盒测试

  • 白盒测试、黑盒测试优劣比较

  •   测试用例的设计

一般而言,在所有的方法中效率最低的是随机输入测试,即在所有可能的输入值中随机选取某个子集来对程序进行测试的过程。

白盒测试的方法:1)语句覆盖。2)判定覆盖。3)条件覆盖。4)判定/条件覆盖。5)多重条件覆盖。

1.>语句覆盖:较弱的准则,将程序中的每条语句至少执行一次。

2.>判定覆盖或分支覆盖:较强的逻辑覆盖准则,必需编写足够的测试用例,使得每个判断都至少有一个为真和为假的输出结果。也就是说每条分支路劲都必须至少遍历一次

3.>条件覆盖:比判定覆盖更强的准则,条件覆盖要编写足够的测试用例以确保将一个判断中的每个条件的所有可能的结果至少执行一次。

4.>判定/条件覆盖:设计出充足的测试用例,将一个判断中的每个条件的所有可能的结果至少执行一次,将每个判断的所有可能的结果至少执行一次,将每个入口点都至少调用一次。

5.> 多重条件覆盖:要求编写足够多的测试用例,将每个判定中的所有可能的条件结果的组合,以及所有的入口点都至少执行一次。 总的来说,对于包含每个判断只存在一种条件的程序,最简单的测试准则就是设计出足够数量的测试用例,实现:1)将每个判断的所有结果 都至少执行一次;2)将所有的程序入口(例如入口点或ON单元)都至少调用一次,以确保全部的语句都至少执行一次。而对于包含多重条件判断的程序最简单的测试准则是设计出足够数量的测试用例,将每个判断的所有可能的条件结果的组合,以及所有的入口点都至少执行一次(加入“可能” 二字, 是因为有些组合情况难以生成)。

黑盒测试的方法:1)等价类划分。2)边界值分析。3)因果图分析。4)错误猜想。

1.>等价类划分:1)确定等价类;2)生成测试用例。

确定等价类:选取每一个输入条件(通常是规格说明中的一个句子或短语)并将其划分为两个或更多的组。有效等价类(代表对程序的有效输入)无效等价类(代表的则是其他任何可能的输入条件,即不正确的输入值)。

生成测试用例:1)为每个等价类设置一个不同的编号。2)编写新的测试用例,尽可能的覆盖那些未被覆盖的有效等价类,直到所有的有效等价类都被测试用例覆盖(包含进去)。3)编写新的用例,覆盖一个且仅一个尚未被涵盖的无效等价类,直到所有的无效等价类都被测试用例所覆盖。

2.>边界值分析:指输入和输出等价类中的那些恰好处于边界、或超越边界、或在边界以下的状态。

1)与从等价类中挑选出任意一个元素作为代表不同,边界值分析需要选择一个或多个元素,以便等价类的每个边界都经过一次测试。

2)与仅仅关注输入条件(输入空间)不同,还需要考虑从结果空间(输出等价类)设计测试用例。

3.>因果图:是一种形式语言,用自然语言描述的规格说明可以转换为因果图。因果图实际上是一种数字逻辑电路(一个组合的逻辑网络),但没有使用标准的电子符号,而是使用了稍微简单点的符号。

1) 将规格说明分解为可执行的片段。

2) 确定规格说明中的因果关系。

3) 分析规格说明的语义内容,并将其转换为连接因果关系的布尔图。所谓的因果图。

4) 给图加上注解符号,说明由于语法或环境的限制而不能联系起来的“因”和“果”。

5) 通过仔细的跟踪图中的状态变化情况,将因果图转换成一个有限项的判定表。表中的每一列代表一个测试用例。

6) 将判定表中的列转换成测试用例。

因果图方法是一个根据条件的组合而生成测试用例的系统性的方法。可以替代这种方法的是特殊选取的条件组合,但在这个过程中,很可能会遗漏很多可由因果图方法确定的“令人感兴趣”的测试用例。

4.>错误猜测:利用直觉和经验猜测出错的可能类型,然后编写测试用例来暴露这些错误。

测试策略:1)如果规格说明中包含输入条件组合的情况,应首先使用因果图分析方法。 2)在任何情况下都应使用边界值分析方法。3)应为输入和输出确定有效和无效等价类,在必要情况下对上面确认的测试用例进行补充。 4)使用错误猜测技术增加更多的测试用例。5)针对上述测试用例集检查程序的逻辑结构。

时间: 2024-12-28 00:57:07

测试小笔记(黑\白盒测试及区别、测试用例的设计)的相关文章

在国外,资深的软件测试人员大多是手动测试,他们厉害之处在于测试用例的设计,但在国内,很多测试人员都把自动化测试当成很厉害的资本,为什么?

导语:”在国外,资深的软件测试人员大多是手动测试,他们厉害之处在于测试用例的设计,但在国内,很多测试人员都把自动化测试当成很厉害的资本,为什么?” 偶然在知乎上看到一篇关注度很高的话题,标题如上. 作为一名从业8年有余的软件测试工程师,并且一直在外企做测试的我, 忍不住想发表一些自己的看法和见解. 我觉得在国内,很多公司或者个人把自动化测试当成一个了不起的资本,根本是源于国内大家对代码的无上崇拜,这也造就了国内现在IT互联网行业内一个鄙视链: 开发---> 测试开发--->自动化测试---&g

测试基础知识(白盒测试,黑盒测试,测试用例,功能测试等等)

测试基础知识 找实习工作的过程中总结了下测试基础知识,编程能力重要,测试基础同样重要,希望对大家有帮助 软件测试方法:静态测试和动态测试                     白盒测试和黑盒测试                     传统测试与面向对象测试 软件测试过程:单元测试,集成测试,系统测试,验收测试 按测试类型:功能.性能.界面.易用性测试.兼容性测试.安全性测试.安装测试 (单元测试:在编码过程中,对每个小程序单元测试) (集成测试:将单元集成在一起后,可称为组件) 回归测试.冒

【iOS开发每日小笔记(五)】实测copy到底是个神马玩意

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.该分类的文章,内容涉及的知识点可能是很简单的.或是用很短代码片段就能实现的,但在我看来它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.其实,90%的作用是帮助自己回顾.记忆.复习.如果看官觉得太easy,太碎片,则可以有两个选择:1,移步[iOS探究]分类,对那里的文章进行斧正:2,在本文的评论

关于C#做个小笔记

RichTextBox控件很强大,不用滚动条就能上下移动看文本. 但是编程中它在winform和WPF里,略有不同. 但是一般的TextBox这个控件在两者里面,我暂时没看到区别,都能用textbox1.Clear()清除文本框. 下面是RichTextBox在winform和WPF里有哪些不同. ------------------------------------------ 分割线 1.RichTextBox控件对象 如何追加文本 并换行 在winform中,向RichTextBox控件

【iOS开发每日小笔记(十)】自制带圆框的头像 利用在CALayer设置“寄宿图”

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.90%的作用是帮助自己回顾.记忆.复习. 在上一篇文章中,我详细地回顾.复习了Core Graphics框架中利用Quartz 2D来绘制各种各样的图形,其实这些绘图就是绘制到了UIView的CALayer层上.这次,受到另一篇博文(http://

【iOS开发每日小笔记(九)】在子线程中使用runloop,正确操作NSTimer计时的注意点 三种可选方法

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.其实,90%的作用是帮助自己回顾.记忆.复习. 一直想写一篇关于runloop学习有所得的文章,总是没有很好的例子.正巧自己的上线App Store的小游戏<跑酷好基友>(https://itunes.apple.com/us/app/pao-k

测试小感1

本人自从事测试以来已经3个多星期了,一直都是在手动的进行功能测试,在测试的过程中发现很多问题,但做为一名新入职的实习生也不好说什么,毕竟自己还没真正对这个多年组合起来的开发团队模式进行深入的了解过,看到的也可能只是一些表象的东西. 1:测试分工不明确. 2:开发过程对于测试和产品人员来说不透明. 3:需求变更快,但变更后信息传达却比较慢,只有提出需求变更和修改确认的人员明白,但其他未能参与的人员不能及时了解进度便会造成一些无用功. 4:产品和开发人员不能很好的协商解决确认功能的话,则某些bug的

【iOS开发每日小笔记(十二)】仿Facebook登录界面 错误提示抖动 利用CAAnimation设置动画效果

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.90%的作用是帮助自己回顾.记忆.复习. 原本以为国庆假期可以有时间看看书,写写博客.实际上大部分时间都被赶场参加婚礼和到处去亲戚家串门吃饭所占用.眼看明天还剩最后一天时间,今天赶紧来更新一篇,也算是没有完全荒废这7天长假吧! Facebook的客

【iOS开发每日小笔记(十一)】iOS8更新留下的“坑” NSAttributedString设置下划线 NSUnderlineStyleAttributeName 属性必须为NSNumber

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.90%的作用是帮助自己回顾.记忆.复习. 测试组的小伙伴们大显神威,iOS8刚发布,他们就把测试设备急速升级了,然后就是扑面而来的各种bug和他们各种幸灾乐祸的笑.没办法,老老实实修复bug! 来看看今天我遇到的一个问题: 项目中,我将一个简化的H