读《软件测试的艺术》——第一章

简介

《软件测试的艺术》作为元老级别的测试理论书籍,在业内非常经典且有口皆碑,书中提出的软件测试为求错而非求证的观点至今仍在学术界被广泛讨论。本书还为计算机界一个最为重要的主题提供了一个长期、基本的指南:

如何确保所开发的所有软件做了应该做的,同样重要的是,未做不该做的

40多年前本书最早出版时,有一条著名的经验:

在一个典型的编程项目中,软件测试或系统测试大约占用50%的项目时间和超过50%的总成本。

事实上,即使在40多年后的今天,同样的经验仍然成立。在任何软件开发项目中,测试依然扮演重要角色。然而,与软件开发的任何其他方面相比,人们对软件测试仍然知之甚少,软件测试从始至终未曾成为热门课题。测试,依然是软件开发中的“黑色艺术”。
随着软件测试的重要性越来越受到现代软件企业的重视,本书也如同被尘封的宝藏一般被发掘并受到追捧。
尽管市面上的测试书籍琳琅满目,但它们的源泉之一正是本书。本书旨在成为实用且脚踏实地的手册,其精悍凝练的篇幅可以让人在最短时间内获得关于软件测试的真知灼见。正如一位豆瓣读者所言:

很直白的软件测试书,覆盖面很全面。看过之后,令以前对软件测试一知半解的人顿时对软件测试有了新的、系统性的了解。

作为一个测试领域的小学生、初学者,我会把本书作为一本入门参考书;
而有一定经验的测试工程师更应当将本书作为理论指南,借此机会梳理自己的知识框架;
对开发人员而言,本书可以帮助你在最短时间内建立起一个测试理论框架,从而在编码时保有一些测试思想。同时,在极限编程中,开发者需要编写单元测试用例;
对测试管理者(项目经理)而言,本书内容有助于你根据具体项目情况指定更合理、更有效的测试计划。
总之,测试是个相比开发来讲门槛不算太高的职业(当然要做到精深绝非易事)。

一次自评价测试

40年来,软件测试变得比以前容易得多,也困难得多。
之所以变得更困难,是由于大量编程语言、操作系统以及硬件平台的涌现。今天“计算机”这个概念也变得越来越广泛和越来越难被准确定义。
之所以变得更容易,是由于大量软件和操作系统内部已提供了充分测试过的例程以供应用程序集成,无需从头设计(造轮子)。

定义

软件测试,是一个过程或一系列过程,用以确认计算机代码完成了其应该完成的功能,且不执行其不该有的操作。软件应当是可预测且稳定的,不会给用户带来意外惊奇。

例题-设计一组测试用例

这个程序从一个输入对话框中读取三个整数值,这三个整数值代表了三角形三条边的长度。程序显示提示信息,指出该三角形是何种三角形:不规则三角形、等腰三角形还是等边三角形。

设计好用例集后,请用你设计的用例集回答如下问题,对每个回答“是”的问题,得1分:

  1. 是否有测试用例代表一个有效的不规则三角形(如3,4,5)?
  2. 是否有测试用例代表一个有效的等边三角形(如3,3,3)?
  3. 是否有测试用例代表一个有效的等腰三角形(如3,3,4)?
  4. 是否有至少三个测试用例代表有效的等腰三角形,以确保测试覆盖到任意两边相等的所有三种可能情况?
    (如3,3,4; 3,4,3; 4,3,3)
  5. 是否存在测试用例,其中某边长度为0?(如0,3,3)
  6. 是否存在测试用例,其中某边长度为负数?(如-1,3,3)
  7. 是否存在测试用例,三个整数皆大于0,其中两个整数之和等于第三个?(如1,2,3)
  8. 是否存在至少三个测试用例,覆盖了第7类中的所有情况?
    (如1,2,3; 1,3,2; 3,1,2)
  9. 是否存在测试用例,三个整数皆大于0,其中两个整数之和小于第三个?(如1,2,4)
  10. 是否存在至少三个测试用例,覆盖了第9类中的所有情况?
    (如1,2,4;1,4,2;4,1,2)
  11. 是否存在测试用例,三边长度皆为0?
  12. 是否存在测试用例,输入边长为非整数值?(如2.5,3.5,4.5)
  13. 是否存在测试用例,输入边长的个数错误?(如1,2)
  14. 对每一个测试用例,除定义输入值之外,是否定义了针对该输入值的预期输出?

事实上,即使测试用例集满足上述所有条件,也不能确保查找出程序所有可能的错误。(本书后续还会提到测试用例的设计方法,读者可以在阅读完第4章后重新回顾本题,相信你可以设计出更完备的用例集)根据数据统计,高水平的专业程序员在本题的平均得分仅为7.8/14。
但通过对本书的学习,相信你可以认识到充分测试是完全可以实现的一项工作。

posted @   ATester  阅读(234)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示