在多次惨痛“开发泥潭”教训的背景下,为了摆脱软件危机,计算机科学家和工业界巨头们于20世纪60年代正式提出了软件工程的概念。软件工程的提出给软件行业带来了新的契机并成功支持了软件行业的巨大发展。然而,当软件开始在各个行业占据重要位置并成为人们不可或缺的工具之后,频繁发生的软件失效事件却使得人们不得不把软件质量放在一个重要的位置上。
作为软件质量保证的主要手段之一,软件测试已成为软件开发过程中的必经阶段。然而,即使是这样,由于软件失效造成重大损失的案例仍然屡见不鲜。在这种情况下,提高软件测试水平、使得软件测试能够真正起到保证产品质量的作用就是每一个测试从业者不得不考虑的问题。
本章主要通过典型的测试案例介绍一下测试发展历史,以及测试在国内的发展情况。通过本章的内容使读者了解测试的历史和测试在软件工程中的地位,以及国内测试行业的发展趋势。
2.1 测试案例
2003年,美国东部时间8月14日下午4时左右,发生了美国历史上最糟糕的电力系统失控事件,包括纽约在内的美国东北部发生了大面积停电,造成了严重的影响。根据美国2004年4月的新闻报告,2003年的断电事件,软件缺陷是导致这次事故的一个主要因素。断电给5千万用户造成了损失,100座发电厂被迫关闭,经济损失达6亿美元。缺陷主要发生在一个销售商提供的能量监控系统中,不能正常的提交和报告局部事件开始时的异常影响。这个缺陷在检查几百万行代码后得到了更正。
让我们回顾一下事情发生的全过程(以下信息摘录于《中国电力报》):
从2003年8月14日下午12时15分开始,第一能源公司和美洲电力公司控制区内发生了一系列的突发事件。这些事件的累计效应最终导致了东部电网的大停电。依照一些重要事件的时间顺序,事故演变过程可分为如下几个阶段:
第一阶段:一系列突发事件使系统运行情况逐渐恶化。
这一阶段从12时05分到14时04分,期间有三个重要事件发生:
13:31的 Eastlake5号机掉闸——Eastlake5号机位于俄亥俄州北部,对当地的电压起著较重要的支撑作用。
… …
14:02的345千伏Stuart-Atlanta掉闸——345千伏Stuare-Atlanta线位于代顿电力和照明(DPL)公司控制区域内。14时02分由于对树木放电造成对地短路掉闸。Stuare-Atlanta线路故障造成了MISO状态估计软件不能够有效运行,以至于16时04分之前MISO都没能够判明第一能源系统已经很危险的运行状态。
12:15到16:14时MISO的状态估计软件失效。
8月14日12时15分左右,MISO的状态估计软件计算出一个误差很大的结果。分析师发现了这一问题,并修正了这条线路的状态。但是为了处理上述故障,他退出了程序每5分钟一次的自启动功能。维修结束后,他忘记了恢复这一功能,使软件没有恢复到正常的自动运行状态。这样,直到14时40分人们才发现状态估计软件没有按照程序进行每5分钟自动运行。到16时04分,该问题才被发现和解决,而此时距离系统开始崩溃只有大约两分钟了。这造成了MISO没能及时对8月14日下午电网安全问题提早告警。
第二阶段:14:14至15:19第一能源公司的自动化系统故障。
第一能源公司的告警系统失效。
… …
EMS远方终端的损失。
在14时20分至14时25分之间,第一能源公司的一些安装在变电站的远方控制终端停止了运行。
… …
EMS服务器故障。
14时41分,负责EMS告警处理功能的主服务器当机。备用服务器在13分钟后,也就是14时54分,也发生当机。
… …
第三阶段:15:05至15:57第一能源公司的三条345千伏输电线路跳闸
… …
第四阶段:15:39到16:08俄亥俄州北部138千伏输电系统的崩溃。
… …
第五阶段:系统崩溃的扩展和停止。
16时05分,第一能源的Sammis-Star线路跳闸,触发了345千伏高压系统的崩溃。7分钟内,大停电横扫美国东北部和加拿大。至16时13分,超过263个电厂531台机组解列,数千万人停电。
… …
分享到:
相关推荐
#### 第二章:软件质量体系 **2.1 软件能力成熟度模型:CMM** 2.1.1 初始级 在这个级别,组织的项目管理过程通常是即兴的、混乱的,缺乏明确的步骤。 2.1.2 可重复级 此级别的特点是项目管理过程被明确定义,...
第二章 系统分析 - 6 - 2.1 系统描述 - 6 - 2.2 需求分析 - 6 - 2.2.1 理解需求 - 7 - 2.2.2 需求分析 - 7 - 2.2.3 学生管理系统的功能模块 - 7 - 2.2.4 运行环境 - 8 - 2.3 可行性分析 - 8 - 2.3.1 数据录入的...
软件测试方法和技术,共17章 1.1 软件的含义 1.2 软件开发过程的特性 1.3 软件测试的重要性 2.1 软件质量就是客户的满意度 2.2 软件缺陷(Bug)是什么 2.3 软件测试的基本方法 2.4 软件测试的分类和阶段 2.5 软件测试...
第二章 系统的需求分析:本章节将对软件测试超市进销存管理系统的需求进行分析,包括理解需求、需求分析任务、用况分析和系统描述等内容。需求分析是软件开发的重要一步,它将帮助开发者了解用户的需求,从而开发出...
第二章 校园网络需求分析 - 7 - 2.1质量需求 - 7 - 2.2系统安全需求 - 7 - 2.3可管理需求 - 8 - 2.9 网络分布需求: - 8 - 第三章 校园网建设目标 - 9 - 3.1 设计目标 - 9 - 3.2 设计原则 - 10 - 3.2.1实用...
第二章 测试对象 在软件测试中,测试对象是非常重要的,它可以帮助我们更好地了解软件的功能和性能。在图书馆管理系统中,测试对象包括用户和管理员两个方面。用户可以进行图书的查询、借阅、预约和归还等操作,而...
第二章深入探讨了测试架构的概念及其重要性,特别是在软件开发过程中。 - **2.1 什么是测试架构**:解释了测试架构的定义及其在软件开发中的作用。测试架构是为了支持测试活动而设计的结构框架,它定义了测试活动的...
第4章 软件测试过程与管理 4.1 软件测试过程 4.2 评价过程的特性 4.3 评价过程 4.4 评价与生存周期的关系 4.5 评价过程的要求 4.6 配置管理 4.7 测试的组织与人员 4.8 软件测试风险分析 4.9 软件测试的成本管理 第二...
"软件测试第2章 需求和设计评审" 软件测试是一个复杂的过程,需要多方面的评审和检查,以确保软件的质量和可靠性。本章节将详细介绍软件评审的方法与技术、产品需求评审和设计审查。 2.1 软件评审的方法与技术 ...
#### 第二章:软件测试的定义 - **2.1 软件生存周期**:软件生存周期包括项目规划、需求定义与分析、软件设计、程序编码、软件测试以及运行维护等阶段。每个阶段都可能产生错误,因此测试不仅仅是针对编码阶段,...
#### 第二章 测试分类 **2.1 测试方式分类** - **静态测试**:关注代码规范、界面和文档审查,不运行程序。 - **动态测试**:涉及程序的实际运行,检验功能和性能。 **2.2 按阶段分类** - **单元测试**:占...
2. **第二章:软件生命周期** - 讨论软件从诞生到消亡的过程,包括需求获取、系统分析、设计、实现、测试、部署和维护等阶段。 3. **第三章:需求工程** - 需求是软件开发的起点,本章将深入讲解需求的识别、收集、...
#### 第二章:自动化测试工具 ##### 2.1 什么是自动化测试工具? 自动化测试工具是一种利用软件程序来模拟和执行测试人员手动操作的软件。它可以快速执行大量测试用例,节省时间和提高测试的准确性和可靠性。 ###...
### 软件测试报告模板的关键知识点 #### 1. 测试报告的结构与组成 在软件测试领域,一个完整的测试报告通常包含了多个关键部分,这些部分有助于清晰地展示测试的过程、结果及其对项目的整体影响。给定的“软件测试...
第4章 软件测试过程与管理 4.1 软件测试过程 4.2 评价过程的特性 4.3 评价过程 4.4 评价与生存周期的关系 4.5 评价过程的要求 4.6 配置管理 4.7 测试的组织与人员 4.8 软件测试风险分析 4.9 软件测试的成本管理 第二...
第二章 光谱测试系统原理 2.1 光谱测试系统概述 光谱测试系统主要涉及光谱灵敏度的计算方法、光电器件光谱灵敏度的测定方式以及系统的结构设计。光谱灵敏度计算用于确定设备对不同波长光的响应,而测定方法则通过...
第二章 系统的开发 5 2.1 题库定义 5 2.2 题库总体数据结构 6 2.2.1 定义 6 2.2.2 在实际中的应用 6 2.2.3 设计时需考虑的问题 6 2.2.4 系统框图 7 2.3系统开发过程 7 2.3.1 窗口界面 7 2.3.2 数据库 8 2.3.3 窗体 9...
### 第二章 需求分析 2.1 功能需求 - **住户信息管理**:系统应能记录和管理小区内所有住户的基本信息,包括住户身份、联系方式、房屋位置等,方便物业进行日常管理和沟通。 - **投诉管理**:住户可以通过系统...
### 2009网络工程师辅导第二章:系统开发和运行基础知识 #### 一、章节概览 2009年网络工程师辅导书第二章详细介绍了系统开发与运行的基础知识,这一章节对于备考网络工程师考试的学员来说至关重要。通过本章节的...