《The art of software testing》的一个例子
这几天一直在看一本书,《The art of software testing》,里面有一个例子挺有感触地,写出来和大家分享一下:
[问题]
从输入对话框中读取三个整数值,这三个整数值代表了三角形三边的长度。程序显示提示信息,指出该三角形究竟是:不规则三角形/等腰三角形/等边三角形。
[测试]
下面是一个测试人员要想得问题,你测试一下自己,如果是你设计测试用例,你可以想到多少个测试用例?每想到一个1分。看答案之前最好先想想。
[答案]
1,是否有这样的测试用例,代表了一个有效的不规则三角形?234
2,是否有这样的测试用例,代表了一个有效的等要三角形?223
3,是否有这样的测试用例,代表了一个邮箱的等边三角形?222
4,是否至少有三个这样的测试用例,代表有效的等腰三角形,从而可以测试到两等边的所有三种可能情况?223 232 322
5,是否有这样的测试用例,某边的长度等于0? 012
6,是否有这样的测试用例,某边的长度等于负数?-123
7,是否有这样的测试用例,三个整数都大于0,其中两个整数之和等于第三个?123
8,是否至少有三个第七类的测试用例,列举了一边等于另外两边之和的全部可能情况?123 132 312
9,是否有这样的测试用例,三个整数都大于0,其中两个整数之和小于第三个整数?124
10,是否至少有三个第9类的测试用例,列举了一边大于另外两边之和的全部可能情况?124 142 412
11,是否有这样的测试用例,三边都是0?000
12,是否有这样的测试用例,输入的边为非整数?2.5 3.5 5.5
13,是否有这样的测试用例,输入的边的个数不对?
14,对于每一个测试用例,除了定义输入值之外,是否定义了程序针对该输入值得预期输出值?
[分析]
作者说:高水平的专业程序员平均得分7.8。 这只是一个衡量标准,你可以达到更高的水平。
[小结]
作者在书中还挺出了几个测试的原则,记录以下,以更好的鞭策自己:
- 测试用例中一个必须部分是对预期输出或结果进行定义
- 程序员应当避免测试自己编写的程序
- 编写软件的组织不应当测试自己编写的软件
- 应当彻底检查每个测试的执行结果
- 测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况
- 检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
- 应避免测试用例后即弃,除非软件本身就是一个一次性的软件
- 计划测试工作时不应默许假定不会发现错误
- 程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比
- 软件测试是一项极富创造性,极具智力挑战性的工作
[感悟]
什么都有一个刚刚开始,我也是刚刚开始,所以在认真做事的基础上,不要着急,慢慢学习,相信会有所获。
如果青春一场固执的游戏,而你就是我最在乎的坚持
TT
《The art of software testing》的一个例子的更多相关文章
- 《the art of software testing》第四章 测试用例的设计
白盒测试 逻辑覆盖测试: 逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术.它属白盒测试.白盒测试的测试方法有代码检查法.静态结构分析法.静态质量度量法.逻辑覆盖法.基本路径测试法.域测试.符 ...
- 《the art of software testing》第六章
更高级别的测试 模块测试的目的是发现程序模块与其接口规格说明之间的不一致 功能测试的目的是为了证明程序未能符合其外部规格说明 系统测试目的是为了证明软件产品与其初始目标不一致 功能测试,作者从三个方面 ...
- 《the art of software testing》第五章
构建大型程序测试的第一个步骤:模块测试 测试用例的设计 在为模块测试设计测试用例时,需要两种信息:模块的规格说明和模块源代码: 模块测试总体上面向白盒测试: 模块测试的测试用例设计过程:使用一种或多种 ...
- 《the art of software testing》 第三章 人工测试
在深入研究较为传统的计算机测试技术之前,要先进行"人工测试". 代码检查与走查是两种主要的人工测试方法. 代码检查与走查是对过去桌面检查过程(在提交测试前由程序员阅读自己程序的过程 ...
- 《the art of software testing》 (1-2)章
软件测试的心理学,重点是要认清: 测试时为发现错误而执行程序的过程 成功的测试:如果在测试某段程序时发现了错误,而且这些错误是可以修复的,就将这次合理设计并得到有效执行的测试称作是"成功的& ...
- Exploratory Software Testing
最近找到去年上半年看过一本关于测试方面书籍的总结笔记,一直放在我的个人U盘里,当时是用Xmind记录的,现在重新整理下分享给大家了! James A.Whittaker [美] 詹姆斯·惠特克(软件测 ...
- 软件测试software testing summarize
软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性.完整性.安全性和质量的过程.软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对 ...
- JUnit 3一个例子就懂
JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture f ...
- 探索式软件测试—Exploratory Software Testing
最近找到去年上半年看过一本关于测试方面书籍的总结笔记,一直放在我的个人U盘里,当时是用Xmind记录的,现在重新整理下分享给大家了! James A.Whittaker [美] 詹姆斯·惠特克(软件测 ...
随机推荐
- JQuery选择符的理解与应用
JQuery强大的选择符可以让我们获得页面中任何元素进行操作,并且使用简单方便,可读性强.本章内容根据本人在开发中常用到的选择符作为例子来进行讲解,如有更多常用的简单的例子可回复提供,参与讨论,一起学 ...
- Using CORS(译)
原文地址:https://docs.webplatform.org/wiki/tutorials/using_cors 总结 一篇对"Cross Origin Resource Sharin ...
- xml 通过正则抓取字段
$str = '<xml> <appid><![CDATA[wxd49ea66070209a6e]]></appid> <bank_type> ...
- defer与async的区别
当浏览器碰到 script 脚本的时候: <script src="script.js"></script> 没有 defer 或 async,浏览器会立即 ...
- ES6数组的扩展运算符
一.基本使用 ES6中函数可以使用 rest参数 接收函数的多余参数,组成一个数组,放在形参的最后面. let fn = (a, ...value) => { console.log(a); c ...
- 耐心排序Patience Sorting
这个排序的关键在建桶和入桶规则上 建桶规则:如果没有桶,新建一个桶;如果不符合入桶规则那么新建一个桶 入桶规则:只要比桶里最上边的数字小即可入桶,如果有多个桶可入,那么按照从左到右的顺序入桶即可 举个 ...
- PHP扩展--APC缓存安装与使用
apc安装 wget http://pecl.php.net/get/APC-3.1.13.tgz tar zxvf APC-3.1.13.tgz cd APC-3.1.13 /usr/local/p ...
- Python标准库笔记(1) — string模块
String模块包含大量实用常量和类,以及一些过时的遗留功能,并还可用作字符串操作. 1. 常用方法 常用方法 描述 str.capitalize() 把字符串的首字母大写 str.center(wi ...
- nginx路由文件配置
nginx中文文档 Nginx 的请求处理有多个阶段,比如说rewrite.access.content等等,不同的配置字段属于不同的配置阶段,不同阶段的先后执行顺序不一样,例如rewrite在con ...
- 【Windows使用笔记】Windows日常使用软件
整理一些对于我来说日常使用的Windows软件. 排名不分先后,仅凭我想起来的顺序! 1 MadAppLauncher 这个对我来说非常需要了. 使用它可以快速启动日常常用的软件,非常快捷高效.一般来 ...