《软件测试的有效方法(第2版)》要点整合(三)

  • A+
所属分类:资源分享

第三章 建立软件测试方法论

测试方法论是使测试策略得以实施的一套方法。依照需求恰当的使用测试策略矩阵。任务是决定测试、制定可行的测试方法,识别出风险。
1、测试目的:发现和消除软件的缺陷或者与预期结果的偏差。两类缺陷:
(1)与规格说明不符;
(2)与期望不符。
2、导致软件缺陷的原因:
(1)信息技术对需求的解释不正确;
(2)用户提出了错误需求;
(3)没有正确记录用户的需求;
(4)设计规格说明不正确;
(5)程序规格说明不正确;
(6)程序编码中有错误;
(7)数据输入错误;
(8)测试错误;
(9)纠错时出现错误;
(10)纠错条件导致另外的缺陷。
测试的费用主要取决于在项目生命周期的什么时期开始测试,越晚越贵。
测试应该从生命周期的第一个阶段开始,并贯穿于整个软件开发的生命周期。
生命周期测试:是对解决方案的持续测试,即使在软件开发计划完成后或者被测试的系统处于执行状态的时候,都不能中断测试。直到正式开始开发过程,生命周期测试才能开始。
3、四个测试技术:
(1)验证:确保系统遵循组织标准和规程,主要靠评审或一些不可执行的方法。
验证需要的评审有:
(1.1)需求评审:研究并讨论计算机系统的需求,以确保它能满足用户的需要及其可行性;
(1.2)代码走查:对程序源代码进行非正式的分析,以发现缺陷并且验证编码技术;
(1.3)代码审查:对程序源代码进行正式的分析,以发现为符合计算机系统设计规格说明所发生的设计缺陷;
(1.4)设计评审:研究并讨论计算机系统的设计,以确保它支持系统需求;
(1.5)回顾评审。
(2)确认:通过一系列可以看到和评价的测试来执行系统功能,以确保系统操作按照计划实现。
确认的测试有:
(2.1)单元测试:单独程序、模块或代码单元的测试;
(2.2)集成测试:相关的程序模块、代码单元测试;
(2.3)系统测试:对于整个计算机系统的测试;
(2.4)用户验收测试:对于计算机系统或系统某部分的测试,确保它们能配合系统工作,而无需考虑系统需求。
(3)功能测试:即黑盒测试。基本只能使用确认技术。
(4)结构测试:白盒测试。主要使用验证技术。
功能测试的优势:模拟实际系统的使用;进行没有系统结构的设想。
功能测试的不足:遗漏软件中潜在的逻辑错误;可能造成冗余测试。
结构测试的优势:可以测试软件的结构逻辑;测试时不用考虑是否完成了功能测试。
结构测试的不足:不能保证是否满足用户的需求;结构测试不可以模拟现实世界的情况。
两者结合才能确认整个系统。
4、工作流程:是一种方法,它用图示或文档的方式来说明指定的活动是如何完成的。
每一个工作流程由以下四个部分组成:输入、执行过程、检查过程、输出。
工作流程的概念可用作系统创建步骤的图示说明。
5、开发测试方法论中要考虑的八个问题
(1)获取和研究测试策略;
(2)确定开发项目的类型;
(3)确定软件系统的类型;
(4)确定项目的范围;
(5)确定战术风险;
(6)确定何时进行测试;
(7)建立系统测试计划;
(8)建立单元测试计划。
步骤如下:
(1)获取和研究测试策略;
(2)确定开发项目的类型;
项目类型:指开发的软件环境或方法论。
当环境变化大了,测试风险也会不同。
(3)确定软件系统的类型
软件系统的类型指该系统要完成的处理过程,一般有16种不同的软件处理类型:
(3.1)批处理:可以运行一般的批量处理;
(3.2)事件控制:由外部事件引发的实时处理数据;
(3.3)处理控制:从外部接收数据,根据收到的数据发出命令来控制某些行为;
(3.4)规程控制:控制其它软件;
(3.5)高级数学模型:类似于模拟和商业策略软件,但具有过多运用数学模型造成的复杂性;
(3.6)消息处理:管理输入输出消息,处理文本或者文本包中包含的信息;
(3.7)诊断软件:检测和隔离硬件错误,这些硬件存在于电脑或与其通信的硬件中;
(3.8)传感器和信号处理:类似于消息处理,但需更多的处理过程来分析输入数据,并使之转换成可用的数据处理格式;
(3.9)模拟:模拟一种环境、任务状况、其它硬件;从这些输入中得出对计算机程序或硬件最真实的评价;
(3.10)数据库管理:管理数据的存储和访问;
(3.11)数据采集:实时接收信息,并以某种形式保存数据,用作以后的处理;
(3.12)数据表示:格式化数据及转化数据;
(3.13)决策和计划辅助:使用人工智能技术提供一个专家系统来评价数据,为决策和政策制订者提供附加的信息和考虑;
(3.14)图形和图像处理:生成和处理计算机图像;
(3.15)计算机系统软件:为运行计算机程序提供服务;
(3.16)软件开发工具:为辅助软件开发提供服务;
(4)确定项目的范围:指包含在被测试的软件中的所有行为——可以理解的系统需求和规格说明的范围。
(5)确定战术风险  战术风险分为三类:
(5.1)结构化风险:应用系统及创建应用系统的方法中所涉及的风险;
(5.2)技术风险:创建和操作应用系统的技术所涉及的风险;
(5.3)规模风险:软件各方面的规模所设计的风险。
确定战术风险的步骤:
第一,理解风险和对风险的分级;
第二,确定被测试的软件系统中适当级值;
第三,计算和累计风险分数。
(6)确定何时进行测试
测试在项目的各个阶段都应该进行。在这些阶段的测试行为有:
A. 需求阶段行为:确定测试策略;确定需求是否恰当;创建功能测试条件。
B. 设计阶段行为:确定需求设计符合性;确定设计是否恰当;创建结构和功能测试条件。
C. 编程阶段行为:确定设计符合性;确定执行是否恰当;创建程序单元的结构和功能测试条件。
D. 测试阶段行为:确定测试计划是否恰当;测试应用系统。
E. 安装阶段行为:修改和重新测试系统。
(7)建立系统测试计划
测试计划要提供测试软件的背景信息、测试目标和风险,以及测试的业务功能和要完成的特殊测试。
测试计划类似于执行测试的路线图,它被分解成特殊测试和低级测试。
测试执行后,要测试结果生成测试报告。
(8)建立单元测试计划
把系统分成组件和单元来执行具体的处理,这些单元都要有自己的测试计划。根据软件对质量的要求程度,决定这些计划的复杂程度。
单元测试计划着重确定单元测试完成时间。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: