这几天一直在看一本书,《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. STL之一:字符串用法详解

    转载于:http://blog.csdn.net/longshengguoji/article/details/8539471 字符串是程序设计中最复杂的变成内容之一.STL string类提供了强大 ...

  2. POJ1679:The Unique MST(最小生成树)

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 38430   Accepted: 14045 ...

  3. [ 转载]Tomcat7 catalina.out 日志分割

    http://m.blog.csdn.net/blog/mark_qi/8864644 最近由于工作需要,tomcat 的catalina.out文件的不断扩大,导致系统磁盘空间边变小,而且管理也难于 ...

  4. ACM1325Is it A tree?

    通过这道简单而又坑人的题目,练习并查集和set 容器的使用: Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: ...

  5. Leetcode 234. 回文链表(进阶)

    1.题目描述 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O ...

  6. 大道至简第一章伪代码读后感o(╯□╰)o

    import.java.io*; import class duhougan; public static void main(Striing arges[]){ system.out.println ...

  7. PHP网页架站

    目前,Windows下已经有集成的PHP网页架站工具,例如:AppServ.WampServer.这些软件将Apache.PHP.MySQL.phpMyAdmin集成到一起,极大地方便了开发者架站.但 ...

  8. UnknownHostException

    1.查看Centos版本号,不同版本修改的方式可能不一样 cat /etc/issue 查看版本 2.通过hostname命令查看当前主机名 hostname 3.编辑network文件修改hostn ...

  9. 【51NOD-0】1008 N的阶乘 mod P

    [算法]简单数学 [题解]多项式展开:(a*b)%p=(a%p*b%p)%p #include<cstdio> #include<algorithm> #define rep( ...

  10. nmap导出处理脚本

    import sys log = open("result.gnmap","r") xls = open("output.csv",&quo ...