软件测试》教学大纲

2013版)

 

 

 

 

 

课程编码:0611103503

课程名称:软件测试

学时/学分:48/3

先修课程:《程序设计基础》、《软件工程》

适用专业:计算机科学与技术

开课教研室:软件工程教研室

 

 

 

 

 

 

 

 

 

 

 

 

执笔:

审定:

 

 

 

 

一、课程性质与任务

1.课程性质:本课程是软件技术专业的专业课。其教学目的是通过本课程学习,使学生系统地学习软件测试的基本概念和基本理论,深刻理解和掌握软件测试和软件测试过程的基本方法和基本技术。了解和掌握现代各种新的软件测试技术和主要发展方向。为学生将来从事实际软件测试工作和进一步深入研究打下坚实的理论基础和实践基础。

2.课程任务:根据软件测试教学性质的特点,可以将软件测试课程的任务做如下规划:教授给学员基本的软件测试技术,让学员了解软件测试的一般过程,掌握初级的测试用例设计和测试报告的编写工作,让学生掌握软件测试的基本思想和途径,为从事计算机软件开发和应用奠定良好的基础。

二、课程教学基本要求

本课程的基本要求是让学生掌握软件测试的基本理论和基础方法,能熟练使用一些常用的软件测试工具,了解工程项目的质量管理思想和方法,能够胜任软件测试工程师的岗位要求。本课程侧重培养学生的测试思维和基本的测试流程、测试方法、测试技术,为后续设计测试和实施测试打基础;主要内容包括软件测试的方法、软件测试相关技术、黑盒测试、白盒测试、系统测试和验收测试。教学环境、上机环境要求:要求安装Eclipse集成开发环境、VC++6.0开发环境。

本课程共计学时:48,理论学时32,实践学时16

成绩考核形式:末考成绩(开卷考试)(70%)+平时成绩(平时测验、作业、课堂提问、课堂讨论等)(30)。成绩评定采用百分制,60分为及格。

三、课程教学内容

第一章    测试概述

1.教学基本要求

了解软件测试的起源,了解软件测试的发展,掌握软件测试的目的,正确认识软件测试的现状和前景。

2.要求学生掌握的基本概念、理论、技能

通过课堂教学,使学生了解软件测试的背景,熟悉软件缺陷是什么,熟练掌握软件测试的定义和基本概念。

3.教学重点和难点

教学重点是软件测试基础理论,软件测试过程。教学难点是理解软件测试的意义以及软件测试的生命周期。

4.教学内容

1)软件测试背景

主要知识点:软件缺陷与软件故障案例;软件缺陷的定义;软件缺陷的特征;软件缺陷产生的原因。

2)软件测试基础理论

主要知识点:软件测试的定义(狭义和广义两种角度去解释软件测试的定义);软件测试的基本理论(软件测试的目的、原则、测试在各个开发阶段的作用);软件测试和缺陷修复的代价;软件测试技术概要(软件测试策略和技术)。

3)软件开发过程

主要知识点:软件产品的组成;软件开发项目组;软件开发基本过程;软件开发模型。

第二章    软件测试实例介绍

1.教学基本要求

介绍三角形问题,让学生知道对于比较复杂的输入对应着正确的输出该如何处理。在遇到这类问题开始的时候怎么样和开发人员沟通规格需求。介绍NextDate问题,让学生了解输入变量之间的逻辑关系复杂性。

2.要求学生掌握的基本概念、理论、技能

根据软件测试的模型来详细介绍一下模型当中各个重要的测试阶段。并带领学生正确地认识软件测试,让学生对软件测试有一个更深入的理解。

3.教学重点和难点

教学重点是理解三角形问题以及NextDate问题。教学难点是从软件测试的角度理解三角形问题以及NextDate问题,分析其测试过程。

4.教学内容

1)软件测试的方法与策略

主要知识点:单元测试、集成测试、系统测试及验收测试、静态测试与动态测试的概念。

2)软件测试用例的概念

主要知识点:测试用例的依据;测试用例的更新和维护。

3测试案例分析

主要知识点:三角形问题;NextDate问题。

第三章    黑盒测试

1.教学基本要求

介绍几种常用的黑盒测试方法,其中包括等价类划分、边界值分析、决策表测试等。掌握和使用这些方法并不困难,但是,每种方法各有所长,应针对软件开发项目的具体特点,选择合适的测试方法,有效地解决软件开发中的测试问题。

2.要求学生掌握的基本概念、理论、技能

通过课堂讲解,要求学生掌握黑盒测试的基本概念;掌握等价类划分法、边界值分析、因果图法。

3.教学重点和难点

教学重点是黑盒测试的基本概念与基本方法。教学难点是掌握等价类划分法、边界值分析、因果图法。

4.教学内容

1)等价类划分测试

主要知识点:等价类划分;常见的等价类划分测试形式;等价类划分测试举例;等价类划分测试的指导方针。

2)边界值分析

主要知识点:边界条件;次边界条件;边界值分析测试;健壮性测试;边界值分析举例;边界值分析的局限性。

3决策表测试

主要知识点:决策表;决策表在黑盒测试中的应用;决策表测试的指导方针。

4其他黑盒测试方法

主要知识点:因果图和决策表法;特殊值测试;故障猜测法。

5黑盒测试效率

第四章    白盒测试

1.教学基本要求

本章将介绍几种常见的白盒测试方法,如逻辑覆盖、数据流测试、域测试、符号测试、路径分析、程序变异以及程序插装技术等,其中多数方法比较成熟,也有较高的实用价值,个别方法存在一定的局限性。

2.要求学生掌握的基本概念、理论、技能

通过课堂讲解,要求学生了解静态测试的必要性;理解静态测试的方法,包括代码检查、静态结构分析、代码质量度量。

3.教学重点和难点

教学重点是代码检查和编程风格。教学难点是代码质量度量。

4.教学内容

1)程序控制流图

2)逻辑覆盖

3路径分析

主要知识点:程序路径表示;程序中路径数的计算;逻辑覆盖;路径分析;独立路径测试。

4数据流测试

主要知识点:数据流分析;定义/使用测试。

5符号测试

6域测试策略

7程序变异

主要知识点:程序强变异;程序弱变异;程序插桩。

第五章    集成测试与系统测试

1.教学基本要求

一些模块能够单独正常工作,并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响到功能的发挥。集成测试就是将多个模块组合在一起进行测试的过程。通过单元测试和集成测试,仅能保证软件开发的功能得以实现。但不能确认在实际运行时,它能否满足用户的需求,是否存在实际使用条件下可能被诱发的故障隐患。为此,对完成开发的软件必须经过规范的系统测试。

2.要求学生掌握的基本概念、理论、技能

通过课堂教学,使学生了解系统集成测试的基本概念,功能测试在系统集成中的应用,掌握驱动模块、测试桩的概念,熟练掌握系统集成的模式与方法。

3.教学重点和难点

教学重点是常用的系统测试类型;配置测试;可用性测试;兼容性测试;文档资料测试;网站测试。教学难点是自顶向下和自底向上的增式集成测试方法。

4.教学内容

1)集成测试

主要知识点:增式集成测试与非增式集成测试;自顶向下集成测试与自底向上集成测试。

2)系统测试

主要知识点:性能测试;强度测试;安全性测试;恢复测试;安装测试;可靠性测试;配置测试;可用性测试;兼容性测试;文档资料测试;网站测试。

第六章    验证测试和确认测试

1.教学基本要求

验证就是对诸如需求规格说明,设计规格说明和代码之类的产品进行评估和审查的过程,有时被称为人工测试,可应用到开发早期一切可以被评审的事物上,以确保该阶段的产品正是所期望的。实践证明,验证是一条最可靠、最有效的质量改进之路。确认是在开发过程中或结束时进行的评估系统或组成部分的过程,目的是判断系统是否满足规定的要求,包括实际软件或仿真模型的运行,是基于计算机的测试。验证和确认是为捕获不同类型的软件故障而设置的过滤器,它们相互补充,以保证最终软件产品的正确性、完善性和一致性。

2.要求学生掌握的基本概念、理论、技能

通过课堂教学,使学生了解系统集成测试的基本概念,功能测试在系统集成中的应用,掌握驱动模块、测试桩的概念,熟练掌握系统集成的模式与方法。

3.教学重点和难点

教学重点是掌握验证的基本方法;验证活动;确认策略;确认活动。教学难点是如何进行验证测试和确认测试。

4.教学内容

1)验证的基本方法

主要知识点:软件审查;走查;伙伴检查;建议。

2)验证活动

主要知识点:审查单;需求验证;功能设计验证;详细设计验证;代码验证。

3)通用代码审查单

4)确认测试

主要知识点:确认任务;确认测试策略;确认测试活动;累进测试和回归测试;测试执行。

第七章    测试计划与测试文档

1.教学基本要求

软件测试的目标是以尽可能少的成本,尽可能早地找出软件中尽可能多的故障,并保证其得到修复。事实上,高效率的测试是经过计划的,成功的测试需要有一定的方法。利用组织良好的测试计划、测试用例和测试报告,正确交流和制订测试工作是测试人员达到目标的保障。本章主要讨论与每一个测试活动有关的具体任务和可交付的文档。

2.要求学生掌握的基本概念、理论、技能

通过课堂教学,使学生了解测试计划的概念,如何进行测试计划的验证与确认。

3.教学重点和难点

教学重点是使学生了解测试计划的概念。教学难点是验证测试计划;确认测试计划;软件测试文档。

4.教学内容

1)测试计划

2)软件测试文档

3)主测试计划

4)验证测试计划

主要知识点:制定验证测试计划;验证执行。

5)确认测试验证测试计划

主要知识点:制定确认测试计划;测试结构设计;详细测试设计;测试执行和事故报告。

6)测试评估

7)用户手册

8IEEE/ANSI测试文档概述

9软件生存周期各阶段的测试任务与可交付的文档

主要知识点:需求阶段;功能设计阶段;详细设计阶段;编码阶段;测试阶段;运行、维护阶段。

第八章    面向对象的软件测试

1.教学基本要求

使用面向对象的软件开发技术,代码重用率高,测试要求更严格,以避免故障的繁衍。面向对象软件测试的主要目标是用尽可能低的测试成本和尽可能少的测试用例,尽可能多地发现软件中隐藏的各种故障。面向对象程序设计语言中特有的封装、继承和多态等机制,给面向对象的测试带来了新的问题,增加了测试的难度。

2.要求学生掌握的基本概念、理论、技能

通过课堂教学,使学生了解面向对象的概念,面向对象的软件测试与传统软件测试之间的不同,面向对象的单元测试以及面向对象的集成测试。

3.教学重点和难点

教学重点是使学生了解面向对象的概念,面向对象的软件测试与传统软件测试之间的不同,面向对象的单元测试以及面向对象的集成测试。教学难点是如何开发面向对象的测试用例。

4.教学内容

1)面向对象的概念

主要知识点:对象;消息;接口;类;继承;动态绑定。

2)面向对象的测试与传统软件测试的区别

3)面向对象软件测试

4)类测试

5)面向对象的集成测试

第九章    软件测试自动化和测试工具

1.教学基本要求

软件测试自动化可以省去许多繁杂的工作,节省软件测试时间,提供比手工测试更好、更快的测试执行方式。使用测试自动化和测试工具会对整个软件开发工作的质量、成本和周期带来非常显著的效果。

2.要求学生掌握的基本概念、理论、技能

通过课堂教学,使学生理解软件自动化测试生存周期方法学及其应用,认识软件自动化测试工具与测试平台的获取及引入,了解软件自动化测试工具与测试平台的获取及引入。

3.教学重点和难点

教学重点是使学生了解软件测试自动化的概念。教学难点是让学生了解几款自动化测试工具的使用。

4.教学内容

1)测试与测试自动化

2)测试工具

主要知识点:白盒测试工具;黑盒测试工具;测试设计和开发工具;测试执行和评估工具;测试管理工具;测试工具的选择。

3)常用测试工具简介

主要知识点:Junit单元测试工具;黑盒测试工具WinRunner;数据库测试工具;测试管理工具TestDirector

4)测试自动化和测试工具的好处

5)测试自动化和测试工具存在的问题

四、学时分配表

1.讲授内容及学时分配

章序

内容

课时

备注

测试概述

3

 

软件测试实例介绍

3

 

黑盒测试

5

 

白盒测试

5

 

集成测试与系统测试

4

 

验证测试和确认测试

4

 

测试计划与测试文档

2

 

面向对象的软件测试

2

 

软件测试自动化和测试工具

4

 

合计

32

 

2.实践内容及学时分配

序号

项目

名称

内容提要

学时

/选开

1

SQL注入的实现与预防

通过本次试验,使学生了解软件测试的重要性,熟练掌握软件测试的定义和基本概念。理解SQL注入与软件测试之间的关系。

4

必开

2

Cookie漏洞的预防

编写避免Cookie漏洞的应用程序代码,防范Cookie漏洞。

4

必开

3

三角形问题黑盒、白盒测试方案的设计与实现

通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致

4

必开

4

使用Junit测试工具测试三角形问题程序

运用JUnitJava程序展开单元测试

4

必开

合计

16

 

五、主用教材及参考书

(一)主用教材:

《软件测试技术详解及应用》主编:胡铮 出版社:科学出版社 出版时间:2011年。

(二)参考书:

1. 软件测试方法和技术》主编:朱少民 出版社:清华大学出版社 出版时间:2010年。

2. 软件测试技术概论》主编:古乐 出版社:清华大学出版社 出版时间:2009年。

3. 面向对象系统的测试》主编:Ron Patton 出版社:机械工业出版社 出版时间:2009年。