这几天一直在看一本书,《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》的一个例子的更多相关文章

  1. 《the art of software testing》第四章 测试用例的设计

    白盒测试 逻辑覆盖测试: 逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术.它属白盒测试.白盒测试的测试方法有代码检查法.静态结构分析法.静态质量度量法.逻辑覆盖法.基本路径测试法.域测试.符 ...

  2. 《the art of software testing》第六章

    更高级别的测试 模块测试的目的是发现程序模块与其接口规格说明之间的不一致 功能测试的目的是为了证明程序未能符合其外部规格说明 系统测试目的是为了证明软件产品与其初始目标不一致 功能测试,作者从三个方面 ...

  3. 《the art of software testing》第五章

    构建大型程序测试的第一个步骤:模块测试 测试用例的设计 在为模块测试设计测试用例时,需要两种信息:模块的规格说明和模块源代码: 模块测试总体上面向白盒测试: 模块测试的测试用例设计过程:使用一种或多种 ...

  4. 《the art of software testing》 第三章 人工测试

    在深入研究较为传统的计算机测试技术之前,要先进行"人工测试". 代码检查与走查是两种主要的人工测试方法. 代码检查与走查是对过去桌面检查过程(在提交测试前由程序员阅读自己程序的过程 ...

  5. 《the art of software testing》 (1-2)章

    软件测试的心理学,重点是要认清: 测试时为发现错误而执行程序的过程 成功的测试:如果在测试某段程序时发现了错误,而且这些错误是可以修复的,就将这次合理设计并得到有效执行的测试称作是"成功的& ...

  6. Exploratory Software Testing

    最近找到去年上半年看过一本关于测试方面书籍的总结笔记,一直放在我的个人U盘里,当时是用Xmind记录的,现在重新整理下分享给大家了! James A.Whittaker [美] 詹姆斯·惠特克(软件测 ...

  7. 软件测试software testing summarize

    软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性.完整性.安全性和质量的过程.软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对 ...

  8. JUnit 3一个例子就懂

    JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture f ...

  9. 探索式软件测试—Exploratory Software Testing

    最近找到去年上半年看过一本关于测试方面书籍的总结笔记,一直放在我的个人U盘里,当时是用Xmind记录的,现在重新整理下分享给大家了! James A.Whittaker [美] 詹姆斯·惠特克(软件测 ...

随机推荐

  1. mybaties分页

    首先引入jar包: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId> ...

  2. [codeforces/edu5]总结(F)

    链接:http://codeforces.com/contest/616 A题: 统一成1e6长度的字符串,右对齐比较字典序. B题: 求所有行的最小值,里面最大的那个.暴力. C题: 先用dfs给每 ...

  3. 使用 Rational AppScan 保证 Web 应用的安全性,第 2 部分: 使用 Rational AppScan 应对 Web 应用攻击

    1 当前 Web 安全现状 互联网的发展历史也可以说是攻击与防护不断交织发展的过程.目前,全球因特网用户已达 13.5 亿,用户利用网络进行购物.银行转账支付和各种软件下载,企业用户更是依赖于互联网构 ...

  4. centos6.5 配置mongodb3

    下载地址 http://www.mongodb.org/downloads 下载 curl -O -L https://fastdl.mongodb.org/linux/mongodb-linux-i ...

  5. ZooKeeper配额指南(十)

    配额 ZK有命名空间和字节配额.你可以使用ZooKeeperMain类来设置配额.ZK打印警告信息如果用户超过分配给他们的配额.这些信息被打印到ZK的日志中. $java -cp zookeeper. ...

  6. Codeforces 617E XOR and Favorite Number莫队

    http://codeforces.com/contest/617/problem/E 题意:给出q个查询,每次询问区间内连续异或值为k的有几种情况. 思路:没有区间修改,而且扩展端点,减小端点在前缀 ...

  7. Ubuntu 15.04 编译UE4 for Linux版

    源 起 Unreal Engine 4 是全球最先进的Realtime Illumination & Physical 引擎: 长期以来,UE4都只有Windows版和Mac版,今年终于向Li ...

  8. 【BZOJ】1529 [POI2005]ska Piggy banks

    [算法](强连通分量)并查集 [题解] 1.用tarjan计算强连通分量并缩点,在新图中找入度为0的点的个数就是答案. 但是,会爆内存(题目内存限制64MB). 2.用并查集,最后从1到n统计fa[i ...

  9. google protobuf序列化原理解析 (PHP示例)

    一.简介 Protocol Buffers是谷歌定义的一种跨语言.跨平台.可扩展的数据传输及存储的协议,因为将字段协议分别放在传输两端,传输数据中只包含数据本身,不需要包含字段说明,所以传输数据量小, ...

  10. centos 挂载数据盘

    第一.检查硬盘设备是否有数据盘 fdisk -l 第二.数据硬盘分区 fdisk /dev/vdb 第三.ext3格式化分区 mkfs.ext3 /dev/vdb1 第四.挂载新分区 A - 新建目录 ...