第八章-测试程序

  首要记住的是,软件错误不同于硬件的错误。桥梁、建筑物和其他工程建筑可能由于劣质的材料、差强的设计、构件的老化而失败。但是循环在上百次的迭代后不会老化,参数不会从一个构件到另一个构件传递中丢失。如果一段特殊的代码没有恰当的工作,如果一个劣质的硬件不是错误的根源,我们可以确信代码中存在错误。由此,许多软件工程师拒绝用 bug 这个词来描述软件错误。把错误叫做 bug 意味着在代码与代码之间已经使开发者无法控制此错误。在搭建软件中,我们运用软件工程经验来控制代码的质量。

  在开发一个大的系统时,测试通常涉及许多步骤。首先,每个程序组件要孤立与系统其他组件进行自我测试。已知的这样的测试有模块测试,组件测试或单元测试,这种测试校验组件在设计中期望的输入条件下功能正常。单元测试尽可能在一个受控的环境下进行。因此测试小组输入一些预定的数据给组件测试,观察输出情况和产生的数据。另外,测试小组要检查内部数据结构,输入和输出数据的逻辑和边缘条件。当组件的集合进行了单元测试时,下一步是确保组件间的接口正确定义和处理。集成测试是一个确保系统各组件按照系统描述和设计需求统一工作的过程。一旦我们确信组件按照设计的要求工作,我们测试系统保证它实现预期的功能。功能测试评估一个系统是否能够作为一个完整的系统实现需求分析中描述的功能。结果是一个功能系统。

  你可能仅考虑了你的程序是解决问题的一种方法;你并没有考虑问题的本身。如果这样,你的测试数据仅选择了某些用例中正确的结果,忽略了错误的存在。在这种方式下写出和演示的程序仅代表你的编程技巧。因此,心理上你可能认为对于你程序的批评是对你的能力的批评。测试你的程序正确工作是你对老师展示能力的一种方法。然而,当你为客户开发一个系统时,他们不关心系统在特定条件下的正确工作。相反,他们关心的是系统能够在任何条件下工作。所以作为一个开发者你的目标是尽可能的消除过多的错误,不管错误在那里发生,由谁产生。惨痛的教训不允许在开发过程中发现错误。因此,许多软件工程师采纳了一种叫做忘我编程的态度,这种态度要求程序被看作大系统的组件,是谁编写的并不重要。当错误发现或失败产生,忘我的开发小组关心的是纠正错误,不是给那一位开发者带来耻辱。

时间: 2024-10-06 13:43:17

第八章-测试程序的相关文章

第八章,测试程序

由于软件程序员在变成中的失误和操作者在使用中的错误都会是程序出现这样那样的问题.因此,我们必须熟知程序错误的类型和分类,以便于我们解决这些错误,是我们的程序更加的完美. 错误鉴定是确定什么错误导致失败的过程,错误纠正或者清除是修改系统除去错误的过程.计算和精度的错误在公式的执行或者不需计算所需精度结果的情况下发生.当文档和程序实际运行不匹配,常见的错误有文档错误.超载错误.容载.边缘错误,时钟和协调错误,吞吐或性能错误,恢复错误,,硬件和系统软件的错误,标准和程序错误. 软件测试分为模块测试,组

程序员修炼之道第八章读后感

第八章是注重实效的项目,主要讨论的是能使项目成功或失败的几个关键因素.主要是组织和管理团队.工作流程自动化.项目测试.编写文档和是使投资人高兴的诀窍等几个方面. 首先我明白了要修正那些容易的小漏洞,不然这些小漏洞一旦过多,大漏洞就比较难处理了.然后就是每个人都要注意环境的变化,比如说需求的变化以及其他硬件软件环境的变化.我 还明白了开发团队中要有交流,不然团队协作性就不好,无法发挥团队的力量,比如说文档不一致.我知道了团队中要有分工,这样工作起来才能更高效.我还学习到了正交性,项目中 各个活动要

#这个测试程序有助于我们理解wxPython的界面设计,基本的控件和事件调用都有

#!/bin/env python # -*- coding: utf-8 -*- ################################################################################# #这个测试程序有助于我们理解wxPython的界面设计,基本的控件和事件调用都有 ################################################################################# imp

《Linux内核设计与实现》读书笔记 第十八章 调试

第十八章调试 18.1 准备开始          需要准备的东西: l  一个bug:大部分bug通常都不是行为可靠而且定义明确的 l  一个藏匿bug的内核版本:找出bug首先出现的版本 l  相关内核代码的知识和运气 最好能让bug重现,有一些bug存在而且有人没办法让他重现,因为内核与用户程序和硬件间的交互很微妙. 18.2内核中的bug 可以有无数种原因产生,表象也变化多端.代码中的错误往往引发一系列连锁反应,目击者才看到bug. 18.3通过打印来调试 内核提供了打印函数printk

PHP中测试程序执行时间

通常为了估测某段较复杂的程序的执行时间或比较多种方案中个方案的执行效率,我们需要计算程序执行所耗费的时间,代码如下: $start_time = microtime(true);          //获取程序开始执行的时间 $end_time = microtime(true);            //获取程序执行结束的时间 $exec_time = $end_time - $start_time;   //计算差值 echo $exec_time; PHP中测试程序执行时间,布布扣,bu

OpenCV 1.0在VC6下安装与配置(附测试程序)

步骤: 1 安装Visual C++ 6.0         2 安装OpenCV 1.0        3 配置Windows环境变量         4 配置Visual C++ 6.0             4.1 全局设置             4.2 项目设置 5 测试程序 1.安装Visual C++ 6.0          链接就不放了,网上下载安装即可. 2.安装OpenCV 1.0 下载OpenCV1.0安装程序.本人将OpenCV安装到D:\Program Files\

第八章、Linux 磁盘与文件系统管理

第八章.Linux 磁盘与文件系统管理 1. 认识 EXT2 文件系统 1.1 硬盘组成与分割的复习 1.2 文件系统特性: 索引式文件系统 1.3 Linux 的 EXT2 文件系统(inode): data block, inode table, superblock, dumpe2fs 1.4 与目录树的关系 1.5 EXT2/EXT3 文件的存取与日志式文件系统的功能 1.6 Linux 文件系统的运行 1.7 挂载点的意义 (mount point) 1.8 其他 Linux 支持的文

记录-Kaa测试程序

有感于一天的折腾,总的留个纪念. 以下的内容不是我的原创,只是自己的一个记录. Kaa是什么?去官网看看就知道了 ,我也没咋细看,哈哈. 一.测试环境准备 Host OS:WIN7 Vbox:版本 5.1.14 r112924 (Qt5.6.2) Sandbox:一个Kaa配置好的测试用虚拟机镜像.这个只是用来测试或者小范围应用的,官方也提供在AWS上直接部署,方便测试.如果是要配置集群,you can download ready-to-use Debian or RPM packages f

Java 第八章 类的方法(一) 笔记

Java 第八章 类的方法(一) 一.类的方法语法: 访问修饰符 返回值类型 方法名(){             方法体:      } 二.方法名的规范:     1.必须以字母."_"或"$"开头     2.可以有数字,但不能以数字开头.     3.如果方法名是多个单词组成 ,第一个单词的首字母小写,      其后单词首字母单词大写.     4.方法名都采用动词. 三.方法的返回值     1.有返回值:必须告知返回值的数据类型,并且返回相应的值.