软件测试教案.doc

上传人:b****2 文档编号:391576 上传时间:2022-10-09 格式:DOC 页数:55 大小:1.61MB
下载 相关 举报
软件测试教案.doc_第1页
第1页 / 共55页
软件测试教案.doc_第2页
第2页 / 共55页
软件测试教案.doc_第3页
第3页 / 共55页
软件测试教案.doc_第4页
第4页 / 共55页
软件测试教案.doc_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

软件测试教案.doc

《软件测试教案.doc》由会员分享,可在线阅读,更多相关《软件测试教案.doc(55页珍藏版)》请在冰豆网上搜索。

软件测试教案.doc

第一章软件及其开发过程

[教学目的]

1、理解软件的含义

2、了解软件开发过程

[教学内容]

1.1软件的含义

1、软件概念

①能够完成预定功能和性能的、可执行的指令(计算机程序);

②使得程序能够适当地操作信息的数据结构;

③描述程序的操作和使用的文档。

④软件=程序+数据(库)+文档+服务

2、软件组成

①客户需求-CustomerRequirements

②市场需求文档-MRD(MarketingRequirementDocument)

③软件规格说明书-Specifications

④技术设计文档–TechnicalDesignDocs

⑤测试文档TestDocuments

⑥在线帮助-Onlinehelp

⑦产品发布注释-ReleaseNotes/ReadMe

⑧产品软件包-Releasepackages

3、软件特征

软件是逻辑的、知识性的产品集合,是对物理世界的一种抽象,或者是某种物理形态的虚拟化。

①软件是硬件的灵魂,硬件是软件的基础

②软件,是智慧和知识的结晶

③软件不会“磨损”,而是逐步完善.

1.2软件开发过程的特性

1.2.1软件开发的基本过程

①需求分析:

根据客户的要求,清楚了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。

②设计:

根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等,可以分为概要设计和详细设计,也可分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、界面设计等。

③编程:

将设计转换成计算机可读的形式。

④测试:

对设计、编程进行验证和用户需求确认的过程

⑤维护:

维持软件运行,修改软件缺陷、增强已有功能、增加新功能、升级等。

1.2.2软件开发过程模型

瀑布模型原型模型快速应用开发(RAD)模型改进的V模型螺旋模型增量模型和迭代模型构件组装模型并发模型XP模型

1.3软件测试的重要性

1.3.1软件所带来的悲剧

1、千年虫(缺陷问题)2、迪斯尼的圣诞节礼物(软件兼容性问题)3、美国航天局火星登陆事故(未进行集成测试)

为什么会发生这些问题?

没有足够测试缺乏测试平台不正确的测试环境缺少集成测试缺少性能测试缺少强度测试缺少可靠性测试……

1.3.2测试的重要性

“程序测试是为了发现错误而执行程序的过程”。

测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。

在软件开发过程中,分析、设计与编码等工作都是建设性的,惟独测试是带有“破坏性”,测试可视为分析、设计和编码3个阶段的“最终复审”,在软件质量保证中具有重要地位。

第二章软件测试的基本概念和方法

[教学目的]

1、理解软件测试的基本概念

2、理解软件测试在软件开发过程中的重要性

3、理解软件测试的意义

4、理解软件测试的基本方法和测试分类

[教学内容]

2.1软件质量

软件质量就是客户满意度

2.1.1软件质量的内涵

1、构成:

①软件产品的质量,即满足使用要求的程序

②软件开发过程的质量,即能否满足开发所带来的成本、时间、风险等要求

③软件在其商业环境中所表现出的质量

即就品质的软件应该是相对的无产品缺陷或只有极少量的缺陷,能够准时递交给客户,所花费用在预算内,并且满足客户需求,是可维护的。

2、特性:

可说明性、有效性、易用性。

广义的软件质量由产品质量、过程质量、商业环境质量三者决定。

2.2软件缺陷(bug)

软件缺陷:

计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误、或者隐藏的功能缺陷、瑕疵。

缺陷会导致软件产品在某种程序上不能满足用户的需要。

IEEE1983OFIEEEStandard729中对软件缺陷的定义:

从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题

从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背

软件缺陷的主要类型:

功能特性没有实现或部分实现设计不合理,存在缺陷实际结果和预期结果不一致运行出错数据结果不正确、精度不够用户不能接受的其它问题,如存取时间长,界面不美观等。

软件缺陷严重性级别:

①致命的(fatal):

致命的错误,造成系统或应用程序崩溃、死机、系统悬挂,或造成数据丢失、主要功能完全缺失

②严重的(critical):

严重的错误,指功能或特性没有实现,主要功能部分缺失,次要功能完全缺失,或致命的错误声明。

③一般的(major):

不及严重的错误,不影响系统的基本使用,但没有很好地实现功能,没有达到预期的效果。

④微小的(minor):

小问题,对功能几乎没有影响

⑤建议(suggestion)

软件缺陷的状态:

①激活状态

②己修正状态

③关闭或非渡海状态

2.2.2软件缺陷的产生

①技术问题

②团队工作

③软件本身

2.2.3软件缺陷的构成

图2-1软件缺陷构成示意图图2-2软件缺陷存在不同阶段分布

图2-3软件缺陷随着时间带来越来越大的成本

图2-4软件缺陷随着时间引起的成本曲线

2.3软件测试的基本方法

2.3.1软件测试的原则 P29

2.3.2白盒测试和黑盒测试

根据测试是针对系统的内部结构还是针对具体实现算法的角度,分为白盒测试和黑盒测试

1、黑盒测试(black-box-texting)(功能测试/数据驱动测试)

不管程序内部结构是什么,从用户出发,根据产品应该实现的实际功能和巳经定义好的产品规格验证产品所应该具有的功能是否实现,每个功能是不都能正常使用,是否满足用户的要求。

图2-5黑盒测试方法示意图

功能;用于软件确认测试

①是否有不正确或遗漏了功能

②在接口上,能否正确地接受输入数据,能否产生正确的输出信息

③访问外部信息是否有错

④性能上是否满足要求

⑤界面是否错误,是否不美观

⑥初始化和终止错误

方法:

等价类划分、边界值分析、错误推测法、因果图等

2、白盒测试(white-box-texting)(结构测试或逻辑驱动测试)

已知产品内部工作过程,清楚最终产生软件产品的计算机程序的结构和语句,按照程序内部的结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等,检验程序中的每条通路是否按规定正常进行。

功能:

用于软件验证

方法:

逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖)、基本路径测试、循环覆盖等

思考:

通过白盒测试的软件是否一定没有错误?

原则:

①保证每个模块中所有独立路径至少被使用一次

②对所有逻辑值均测试为真假值

③在上下边界及可操作范围内运行所有循环

④检查内部数据结构以确保其有效性

2.3.3静态和动态的方法

根据程序是否运行,测试可以分为静态和动态测试

静态测试:

对模块的源泉代码进行研读,查找错误或悼念一些度量数据,并不需要对代码进行编译和仿真运行。

①用人工检测

②计算机辅助静态分析

测试包括对软件产品的设计规格说明书的审查、对程序代码的阅读、审查

动态测试:

通过观察代码运行时的动作,来提供执行跟踪、时间分析,以及测试覆盖度方面的信息。

2.3.4验证和确认(verification&validation)

1、验证

检验软件是否已经正确地实现了产品规格说明书所定义的系统功能和特性

2、有效性确认

保证所生产的软件可追溯到用户需求的一系列活动。

确认过程提供证据表明软件是否满足系统需求,并解决相应问题

3、两者区别

验证:

是否正确构造了软件,检验软件是否与设计规格说明书一致

确认:

是否构造了正确的软件,是否满足用户的真正需求

2.3.5ALAC测试

ALAC(act-like-a-cusomer)基于客户使用产品的知识开发出来的测试方法。

用于功能测试

图2-6ALAC测试方法的原理示意图

ALAC测试方法适合特别的场合,如演示版、开发预算低,开发计划日程表紧等情况,降低测试成本,缩短测试时间,缺陷查找和改正针对客户最容易遇到的错误

2.3.6自动化测试和随机测试

自动化测试:

通过工具自动动执行软件的测试

可完成负载测试、性能测试、可靠性测试

随机测试:

模拟客户操作的随意性,进行大量的、自动化的随机测试,来发现今后用户可能会碰到的问题。

2.3.7软件测试的误区

①如果说发布出去的软件有质量问题,那是软件测试人员的错。

②软件测试技术要求不高,至少比编程容易多。

③有时间就多测试一些,来不及就少测试一些

④软件测试是测试人员的事,与开发人员无关

⑤根据软件开发瀑布模型,软件测试是开发的最后期的一个阶段

2.4软件测试的分类和阶段

2.4.1软件测试的分类

1、按测试范围分类

Ø单元测试

Ø组件测试

Ø集成测试

Ø系统测试

Ø验收测试

Ø安装测试

2、按测试目的分类

Ø正确性测试

n白盒测试

n黑盒测试

Ø性能测试

Ø可靠性测试

n强壮性测试

n异常处理测试

n负载测试

Ø安全性测试

3、按测试对象分类

Ø单元测试

Ø组件测试

Ø模块测试

Ø程序测试

Ø系统测试

Ø文档测试

4、按测试过程分类

Ø需求阶段的测试

Ø设计阶段的测试

Ø程序阶段的测试

Ø测试结果的评估

Ø安装测试

Ø验收测试

Ø测试变化

5、其它测试技术和方法

Ø回归法

Ø压力法

Ø恢复测试

Ø安全测试

Ø兼容性测试

2.4.2测试的阶段

图2-7软件测试阶段示意图

2.5软件测试的工作范畴

软件测试工作范畴

①软件测试工作的组织与管理

制定测试策略、测试计划、确认所采用的测试方法与规范、控制测试进度、管理测试资源

②测试工作的实施

编制符合标准的测试文档,研制测试环境,与开发组织协作实现各阶段的测试活动

软件测试工作的六个方面

①测试组织和管理

②测试计划

PDCA模型:

计划plan,执行do,检查check,措施action

图2-9软件开发流程改进模型PDCA示意图

Ø制定测试策略

分析测试的目标和指标、确定测试的对象和依据、明确测试的重点和所要采用的方法

Ø确定测试范围

Ø所需资源和日程安排

资源:

计算机硬件、软件、人力资源

资源安排:

项目经理、组长、系统工程师、测试设计工程师、资深测试工程师、一般测试工程师等,定义每个人的工作内容和责任

日程安排:

设置整个测试周期的项目进程,有产品设计规格说明书审查结束时间,测试计划初稿完成时间、设计测试用例的时间、测试计划/用例审查结束时间、单元测试完成的日期、系统测试完成的日期、测试全部完成的日期等。

③设计测试用例

测试用例是按一定顺序执行的,与测试目标相关的测试活动的描述,是确定怎样测试。

包括测试环境、输入值、期望结果或标准

测试用例的特性:

可复用性、有效性、可管理性、继承性、基础性

④测试实施

⑤测试结果分析

⑥测试评审与报告

第三章质量保证与测试策略

[教学目的]

1、理解软件质量保证体系

2、理解测试

3、理解测试计划的重要性及其内容

4、了解软件质量的可靠性评估

[教学内容]

3.1软件质量保证(softwarequalityassurance,SQA)

3.1.1SQA概述

1、SQA:

通过

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1