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

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

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

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

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

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

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

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

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

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

例题-设计一组测试用例

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

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

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

Original: https://www.cnblogs.com/a-tester/p/16009238.html
Author: ATester
Title: 读《软件测试的艺术》——第一章

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607215/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 6.20(HTML和CSS–>练习案例)

    HTML脑图:how2j找的阶段性练习,话说VScode编辑器确实比DW好用,简洁免费(不是打广告哈哈) #0 <head> <meta charset=&quo…

    Linux 2023年6月7日
    0109
  • 【Leetcode】64. 最小路径和

    给定一个包含非负整数的 m&#xA0;x&#xA0;n网格 grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动…

    Linux 2023年6月6日
    0100
  • Linux系统编程之匿名管道

    1.进程间通信介绍 1.1 进程通信的基本概念 在之前我们已经学习过进程地址空间。Linux 环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量…

    Linux 2023年6月8日
    0110
  • C语言怎么给函数添加形参的默认值

    如果不是机缘巧合,当年转到C++之后,恐怕很难再有机会还写C的代码。面向对象在现代coding中,就像圣经一样,在码农的口中自带光环,code起来左一个语法糖,右一个范式编程,各种…

    Linux 2023年6月6日
    0114
  • SQL87 最差是第几名(一)

    本题链接表结构如下所示。 +——-+——–+| grade | number |+——-+&#8…

    Linux 2023年6月13日
    087
  • 网络设备配置–6、通过RIP协议配置动态路由

    一、前言 同系列前几篇:网络设备配置–1、配置交换机enable、console、telnet密码网络设备配置–2、通过交换机划分vlan网络设备配置&#8…

    Linux 2023年6月8日
    0106
  • VR一体机如何退出FFBM

    Fast Factory Boot Mode(FFBM)是一种半开机的模式,它的主要目的是方便工厂测试,提高生产效率。正常情况下终端用户是不会碰到的。但售后的同学最近连续收到几台客…

    Linux 2023年6月7日
    0239
  • bare Git 仓库是什么?

    背景 今天,坐我旁边的同事问我一些关于服务器上命令的问题。其中有一个用了特殊参数的 git init 的命令,我也不认识,遂去 Google… bare Git 仓库 …

    Linux 2023年6月7日
    092
  • linux学习之搭建Apache 服务器

    本实验的主要任务是在CentOS操作系统中搭建Apache 服务器,练习文档根目录、首页文件、相关访间控制规则的配置。 ‎【实验目的】 ‎(1) 理解Apache 服务器主配置文件…

    Linux 2023年6月13日
    0101
  • 《拉钩课程 — 计算机网络通关》学习笔记

    一、概述 1、程序员基础知识大致可以分为七种基本科学:计算机组成原理、操作系统、计算机网络、算法和数据结构、图形学、编译原理、编辑技巧。 2、ISP:Internet Servic…

    Linux 2023年6月16日
    0121
  • 最小生成树-Kruskal算法

    与 Prim算法贪心选择不同,Kruskal算法采取 每次选择权值最小的边的方法,这样,在 不构成环且最后能够连接完所有边它们的权重和一定是最小的。 和之前Prim算法的图一样,便…

    Linux 2023年6月7日
    0118
  • 网络安全简单入门与扫描

    网络安全简单入门 内容大纲 策略制定 安全工具 其他 1、安全策略 1.1、安全三要素 要全面地认识一个安全问题,我们有很多种办法,但首先要理解安全问题的组成属性。前人通过无数实践…

    Linux 2023年6月7日
    093
  • 分区表、文件系统等计算机基础知识

    开机固件 BIOS UEFI 特别老的BIOS不支持GPT分区 目前已取代BIOS 分区表类型 MBR GPT 1.不支持2TB以上的硬盘2.主分区不能超过4个3.可以通过建立扩展…

    Linux 2023年6月7日
    0102
  • windows系统cmd切换盘符路径命令失效

    问题描述:比如当我在C盘想切换到D盘的某个文件夹路径下时 只是输出了那个路径 但是并没有真的切换 这时候需要再多操作一步就会成功了 Original: https://www.cn…

    Linux 2023年6月14日
    089
  • JQ 实现对比两个文本的差异并高亮显示差异部分

    利用jq对比两段文本的差异,差异的内容用不同颜色表示出来。 在线参考demo:http://incaseofstairs.com/jsdiff/ 项目地址:https://gith…

    Linux 2023年6月7日
    0111
  • 嵌入式软件开发中必备软件工具

    1、前言 作为一个软件开发人员,除了程序能力素养方面外,还应该熟练地使用各种常用的辅助工具,所谓”工欲善其事,必先利其器”;通过这些工具能提升自己的专业素养…

    Linux 2023年6月7日
    0108
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球