软件测试课程 教学大纲.docx
《软件测试课程 教学大纲.docx》由会员分享,可在线阅读,更多相关《软件测试课程 教学大纲.docx(20页珍藏版)》请在冰豆网上搜索。
软件测试课程教学大纲
软件测试课程教学大纲
适用专业:
软件工程、软件技术、软件测试、嵌入式技术与应用专业
学时:
80
说明部分
一、前言
软件测试是软件工程内涵的重要组成。
软件测试实质是通过各种策略、技术与方法,寻找软件中存在的各种缺陷(或错误、故障)以及对软件系统(产品)的质量进行度量,以保障软件产品(系统)的可靠与功效。
软件测试存在于软件产品的整个生命周期内,及开发的过程中。
随着软件规模的扩大和复杂性的日益增强,软件测试的标准化与规范性,从业人员的专业程度及其具备的高效工作能力越来越受到重视与较严格的要求。
目前发达国家的软件企业中,软件测试与质量保障人数与开发人员的数量之比,通常为1:
1,或更高。
目前国内软件企业两者的比例约为1:
8,一些企业甚至还处于基本没有测试与质量保障专业人才的状况。
软件行业、企业竞争与技术发展的需求,高质量、能承担与胜任软件测试工作的专业人才的培养和使用问题,将在一个较长时期存在。
软件测试是具有创造性的工作,所需专业知识与技术能力,特别是系统掌握理论和具备开创性的工程运用能力,通常需得到系统化的学习和能力训练来培养,软件测试课程针对培养软件专业领域的技术与管理人才的需求与培养目标应运而生。
在高等学校开设软件测试专门课程,组织教学,培养专门人才,这对补充和强化软件专业人才的知识范畴与工程能力将十分有利,对提升软件专业技术与管理人员的职业素质,适应我国软件业整体水平的不断提高,加快技术进步的步伐,缩小与先进国家软件企业的差距,增强企业的软件产品开发能力,提高产品质量与国际竞争力都具有现实与长远的意义和作用。
本课程将主要学习软件测试的基本理论、基本知识和实际测试工程中实用、主流的测试技术,以及国际软件测试行业标准与技术规范的工程方法。
本课程实施课堂理论教学(理论知识与技术原理)与实践教学(工程知识与技术运用)相结合的教学思想和教学方法。
二、课程性质、目的和任务
软件测试是软件类专业的一门重要专业课程。
本课程将主要学习软件测试的基本知识、基本技术和工程方法。
通过课程内容的组织与贯彻,将认识和理解软件测试的理论知识和主流技术,掌握基本的工程方法并能够运用到测试的实际工作中去,承担和完成相应的工作任务。
同时,为进一步深入学习软件测试理论和掌握更为复杂的测试技术与方法奠定较坚实的基础。
三、教学要求
正确认识与理解软件测试在软件工程中的重要作用与地位;
正确认识与理解软件测试的基本概念和基本组成要素;
正确认识与理解软件质量的概念与质量度量的方法与标准;
正确认识与理解软件生命周期中的各层级的测试特点(类别、方法、过程);
正确认识与理解软件测试的基本原理与基本过程;
熟悉与明确软件生命周期的各阶段的测试过程及各类测试的准则;
熟悉软件静态测试的适用范围,掌握静态测试技术并能分析与解决测试工程的具体问题;
熟悉软件动态测试的适用范围,掌握动态测试技术并能分析和解决测试工程的具体问题;
熟悉与掌握运用软件测试的技术与工程方法解决测试需求、测试设计和测试实施中各类问题。
熟悉与理解软件测试的主要国际行业标准和技术规范,并能在实际测试实践中加以运用。
本课程的教学(学习)对象应具有计算机及软件专业方面的基本知识和基本技能。
如,计算机
系统、操作系统知识、数据结构、数据库系统、计算机网络、Web应用系统等方面的系统性知识,和在软件设计与程序编写(面向过程和面向对象)、各种系统的应用操作等方面的基本技能,以利于该课程教学能获得积极成效,每个个体得到最大的学习收益。
本课程的教学师资已具备软件学科、软件工程和软件技术各领域的综合性知识和运用能力。
文本部分
四、课程内容体系组成
五、课程教学内容
课程内容及编排涵盖了软件测试的基本知识与基本概念,以及主要、主流的技术应用。
突出测试工程运用的特征。
内容体系构成层次分明、系统深入、概念清晰、逻辑关联、详略适当。
通过知识点的学习认识,形成知识链;通过技术理论分析和运用,形成对工程能力的基本要求和基本训练。
本课程教学内容(资源)主要由下列形式:
课程教学录像(共50讲);
与课程录像对应的演讲PPT文稿(共50讲);
每章节独立的作业与习题(含题解);
软件项目的测试工程实践等教学过程的组织及安排内容;
课程教学的效果检验与考评标准(含课程试卷);
课程学习的指导文本、推荐教材、参考文献(技术标准文本及目录)。
1.第1章软件测试概述
主要内容:
软件测试基本概念与相关的基础知识理论。
教学进程:
软件测试产生与发展->软件测试概念->软件测试基本要素->软件测试的基本原理->软件开发模式与测试的关系->软件测试模型->软件质量概念与质量模型->软件质量体系与测试策略。
教学要求:
正确理解软件测试产生背景、软件缺陷、故障等基本概念和术语,软件测试的定义与本质,软件测试的基本要素,软件测试的基本原理。
熟悉软件工程与开发过程与软件测试的关系,软件测试模型,以及正确理解软件质量的概念及质量模型。
教学资源:
课程教学大纲,本章教学文件(教学要求、重点难点、教学设计、考核评价),教学录像(第1-4讲)及对应的演示文稿,相对应的教材章、节内容,本章作业与习题,参考文献。
2.第2章软件生命周期的测试
主要内容:
软件生命周期中的各层级测试活动及测试内容、测试过程。
教学进程:
软件生命周期的概念->V模型->软件测试的策略与测试流程->软件测试的主要类型->组件测试->集成测试->系统测试->确认测试与验收测试
教学要求:
正确理解软件生命周期测试的概念,V模型所包含的实质含义,软件生命周期中软件测试的层级与开发的关联及对应;明确软件测试的复杂性和正确的测试方法与策略;理解和认识软件测试的主要类型及层级测试内涵,掌握单元测试的主要任务、方法与过程,集成测试任务、方法与过程,系统测试内容和类型,基本的测试方法与过程,理解确认测试和验收测试的主要内容和相关配置。
理解各类测试的准则。
教学资源:
课程教学大纲,本章教学文件(教学要求、重点难点、教学设计、考核评价),教学录像(第5-10讲)及对应的演示文稿,相对应的教材章、节内容,本章作业与习题,参考文献。
3.第3章软件测试的静态测试技术
主要内容:
软件测试的静态测试技术及工程的方法。
教学进程:
静态测试概念->静态测试的框架->静态测试的方法(数据流分析与控制流分析、程序复杂度计算)->静态测试的分析工具与其应用->软件评审策略与方法
教学要求:
静态分析是测试工程实践中不可或缺的策略和过程。
理解静态测试是软件测试的两大技术之一,在软件生命周期的各个阶段,而在软件需求阶段、分析阶段基本上采用的是静态测试分析,学会并熟悉静态测试的各种技术是全面掌握测试的必须。
熟悉静态测试的方法主要为,对针对程序作数据流分析和控制流的分析(将通过借助程序复杂度的计算或度量达到)和软件评审的策略(多种评审方式)。
对软件测试静态分析或测试工具的学习和应用方法,也是本章教学应达到目标。
教学资源:
课程教学大纲,本章教学文件(教学要求、重点难点、教学设计、考核评价),教学录像(第11-14讲)及对应的演示文稿,相对应的教材章、节内容,本章作业与习题,参考文献。
4.第4章软件测试的动态测试技术
主要内容:
软件测试的动态测试技术及工程的方法。
教学进程:
软件测试动态测试概念–>动态测试技术分析–>基于规格说明的动态测试(黑盒测试)->等价类划分法->边界值分析法->因果图法->决策表法–>状态转换法->正交实验测试法->基于程序结构的动态测试(白盒测试)->逻辑覆盖(语句覆盖、分支覆盖、分支/条件覆盖、MC/DC覆盖)->路径测试(基本路径测试、Z路径测试)–>动态测试用例的设计
教学要求:
软件测试的动态测试技术包括了多种技术或方法,动态测试主要寻找软件的缺陷和错误,基于三种模式:
基于软件(程序规格说明书)的测试、基于程序结构的测试和基于经验的测试。
其运用测试手段为黑盒测试、白盒测试等。
本章介绍了常用的基本测试方法及其应用,每种技术方法都有其局限性和适用解决具体测试问题的范围。
动态测试技术的掌握及运用,表现在对具体问题的测试用例设计上,这是本章教学的目标终结。
教学资源:
课程教学大纲,本章教学文件(教学要求、重点难点、教学设计、考核评价),教学录像(第15-24讲)及对应的演示文稿,相对应的教材章、节内容,本章作业与习题,参考文献。
5.第5章软件自动化测试技术
主要内容:
软件自动化测试及其应用(工程方法)
教学进程:
软件自动化测试概要->软件自动化测试方法学->软件自动化测试系统建立->自动化测试用例与脚本->自动化测试工具及运用->自动化测试系统->软件系统的自动化测试应用(可针对软件生命周期各层级阶段的测试)。
教学要求:
本章要求能够正确理解软件自动化测试的基本概念和自动化测试生存周期方法学及应用,了解一个软件自动化测试系统如何建立的过程和运用的过程。
学会教学所针对、后续将运用的自动化测试平台(工具)的基本工作原理和基本的使用方法,所适解的测试领域或范围。
教学资源:
课程教学大纲,本章教学文件(教学要求、重点难点、教学设计、考核评价),教学录像(第25-30讲)及对应的演示文稿,相对应的教材章、节内容,本章作业与习题,参考文献。
6.第6章软件测试管理
主要内容:
软件测试管理的策略方法与过程(工程方法)
教学进程:
软件测试管理的概念->软件测试管理框架->软件测试组织管理->软件测试计划管理->软件测试过程管理->软件测试事件(缺陷、用例)管理->软件测试的配置管理(配置和文档)
教学要求:
本章主要阐述实施软件测试所必须的各类管理的策略。
理解测试管理的概念、内容、方法及过程。
测试组织管理、测试需求管理、测试用例(脚本)管理、测试执行管理、缺陷的管理、测试报告(文档)的管理,以及测试环境的构建和测试配置的问题都是本章学习和需求掌握的内容。
测试管理是测试工程的重要内容和不可或缺的环节。
测试管理的过程涉及组织形成、管理策略、平台工具、标准规范等,这些也是学习者应了解和在实践中需要运用与遵循的规则。
教学资源:
课程教学大纲,本章教学文件(教学要求、重点难点、教学设计、考核评价),教学录像(第31-36讲)及对应的演示文稿,相对应的教材章、节内容,本章作业与习题,参考文献,技术文档。
7.第7章软件测试工程实践
主要内容:
软件测试工程实践。
针对软件生命周期的测试层级和测试类型,学习以组件测试、功能测试、性能测试的测试工程的各项任务、工作和主要的过程。
教学进程:
软件组件测试:
组件测试的步骤及过程–>典型组件测试工具Logiscope的功能分析与应用介绍–>Logiscope的应用(测试分析原理与实现机制、质量审计模式与方法、规则与检验、动态测试与测试结果的解析与说明)–>组件测试项目测试的工程实践。
软件系统的功能测试:
功能测试的概要–>功能测试的需求分析–>功能测试计划的制定–>功能测试测试用例的设计–>正交实验法设计测试用例–>用PICT工具生成测试用例–>发现并报告缺陷–>软件项目功能测试的实施(项目教学实施)
软件系统的性能测试:
性能测试概要–>性能测试需求分析–>性能测试的设计与开发–>性能测试RPT测试平台功能分析与应用介绍–>软件项目性能测试的实践(项目教学实施)
教学要求:
明确组件测试、功能测试和性能测试方法及过程,掌握三项测试过程所应用的自动化测试平台(工具)的各项功能及性能,正确认识理解并学会基本的使用方法。
通过教学,要求学习者能“举一反三”,针对给出的测试项目,通过对所要完成或解决的指定工程问题的构思-设计-实施-操作4个过程,体现项目测试的需求分析、方案策划、用例设计、测试实施、结果分析、测试总结6个环节运用能力。
通过教学,要求最终达到对测试过程方法论的认识和基本的运用和掌握。
教学资源:
课程教学大纲,本章教学文件(教学要求、重点难点、教学设计、考核评价),教学录像(第37-50讲)及对应的演示文稿,相对应的教材章、节内容,本章作业与习题,工程项目,参考文献、技术文档。
五、教学方法基本要求与建议
本课程以课堂教学与实践教学相结合的方式进行(部分实践教学的时间可安排在课外)。
该课程内容基本涵盖了软件测试基本理论、基本技术方法和工程方面较全面内容,因课时限制,
课堂教学需要对内容精讲。
课堂教学以讲授理论知识、分析技术原理为主,并阐述软件测试的工程方法及实现过程的内容。
实践教学以示范、引导和具体实施相结合(课内与课外),体现“工学结合、实践驱动、项目体现”的教学思想与教学过程,并依赖和借助现代教育技术的手段,通过远程网络方式进行课程
教学和获得相应的课程共享资源。
课堂教学要求重点在于基本概念、基本知识的准确理解和认识,讲解应深入浅出、抓住实质,建立知识点,形成概念和体系。
该课程的第二个重点是对测试技术方法原理分析和运用,其重点在于技术方法的理论依据和所能解决问题的范畴及领域,以及技术方法实现步骤与过程,并总结规律。
本课程测试工程实践方面的教学,应重点分析准备要解决的测试项目的背景(领域问题)和测试内容(测试问题)。
通过针对软件测试对象的分析、设计、实施、过程及总结(对测试结果分析和对测试工作总结)的示范方式,达到对此类测试问题解决的方法论。
教学中所用项目或案例,应作为方法论学习的教学载体,由此,获得“举一反三”的效果和作用。
实践教学需要先由教师给出项目(或提出问题),组织学生以小组或团队形式,按照工程问题的解决方案和过程规范,去完成项目的各项任务(学习与体验的过程),以获得对实际问题的分析、解决能力。
实践教学的过程不仅仅理解为是一种知识与技术的应用,而应把这个过程的组织与实施看作是一项实际工作的过程,从中贯彻和体会项目的管理过程和作用。
实践教学需要授课教师具有工程项目的实施经验和控制过程、实施管理的能力。
六、教学考核与评价方式
本课程的教学考核与评价方式:
过程性学习成绩考核(作业及实践练习的完成情况),课程结业性考核(卷面题试),项目实践情况考核(针对过程)三种方式。
其中:
过程性学习考核成绩占比20%,课程结束考核成绩占比40%,实践项目完成情况考核成绩占比40%。
卷面试题:
考核内容由软件测试基本理论知识、软件质量度量、软件生命周期的测试,所介绍和学习过的主要测试技术方法及运用,软件测试标准与规范及测试管理的内容过程,以及对测试工程的过程体验组成。
实践学习考核:
测试项目的完成情况(全过程)。
考核内容设计为:
测试项目的测试需求分析、测试方案设计、测试用例(场景)设计、测试执行过程、测试结果分析、测试总结报告。
考核方式设计为:
设计方案汇报演讲(第一次评审答辩),测试完成总结汇报演讲(第二次评审答辩)。
其方法的示例和样板在第7章的项目实践案例中给出,可作为实际执行时的参考。
本课程的教学(学习)效果的检验方式,还可以通过报考软件测试的专业资质认证考试进行。
这里推荐国际软件测试专业资质认证(ISTQB-FL)考试,或国家人事部软件人员水平(能力)考试-软件评测师的考试。
事实上,本课程已基本覆盖了国际软件测试专业资质认证(ISTQB-FL)考试大纲的内容和要求,并给出了国际软件测试专业资质认证(基础级,ISTQB-FL)的考试大纲,供学习者参考。
关于国际软件测试专业资质认证(ISTQB)的详细情况请自行查询ISTQB网站。
七、教材及参考资料
1.教材
1.《软件测试教程(第2版)》,贺平编著,电子工业出版社,2010.1
ISBN978-7-121-06491-3
2.《软件测试(本科)》,贺平编著,中央广播电视大学出版社,2011.1
ISBN978-7-304-05033-7
2.软件测试技术标准或文档
1.IEEEStd829-2008(IEEEStandardforSoftwareandSystemTestDocumentation)
2.ISO/IEC9126-2004软件产品质量特性
3.计算机软件配置管理计划规范GB/T12505-90,中国电子工业部,1990
4.软件测试专业术语表(中英对照),中国软件测试委员会(CSTQB),2009
5.国际软件测试专业资质认证(ISTQB测试人员认证初级(基础级)大纲2011版(中文),中国软件测试委员会(CSTQB),2011
3.软件测试工具(平台)
1.组件测试工具TelelogicLogiscopeV6.3
2.软件系统性能测试平台IBM®Rational®PerformanceTesterV8.1.0
3.软件系统功能测试工具PICT(PairwiseIndependentCombinatorialTesting)ToolV3.3
八、课程学时分配与建议
1、课程资源使用说明
(1)本课程教学内容的基本资源主要组成。
课程教学录像(50讲);与课程录像对应的演讲PPT文稿(50讲);每章节独立的作业与习题;软件项目的测试工程实践内容。
课程的前6章内容具有逻辑上的关联性和渐进性,教学的组织、设计与过程应考虑这个因素,以取得预期教学的效果。
(2)关于第7章的教学。
本课程所给出的内容是关于组件测试、功能测试和性能测试三个测试层级(类别)的工程方法及过程,其中所涉及的自动化测试平台或工具为教学的内容和目的而特定,但并非惟一,各教学组织者可根据自己所拥有的自动化测试平台(或工具)作相应的内容变换。
实际上,关于组件测试、功能测试和性能测试的自动化工具(平台)不仅仅限于课程所给出的这几种。
(3)本课程建议安排的课程学时。
根据该课程多年的教学实施与经验总结,课内学时为80,其中课堂教学64,实践教学(学习)16。
教学与资源的使用者可根据教学目标与要求,自身的基础及学习能力,作适当增、减,以满足课程的要求与自主学习的需要。
课外学时应安排不少于24学时,以能够完成习题作业和项目测试实践。
2、学时分配表
序号
教学内容及题目
学时分配
小计
讲课
工程实践
作业习题
1
第1章软件测试概述
1.1软件测试概念
2
2
(课外)
2
第1章软件测试概述
1.2软件测试基本要素
2
2
(课外)
3
第1章软件测试概述
1.3软件测试模型
1.4软件质量体系与测试
2
2
(课外)
4
第2章软件生命周期的测试
2.1软件测试策略与流程
2
2
(课外)
5
第2章软件生命周期的测试
2.2软件测试主要类型
2
2
(课外)
6
第2章软件生命周期的测试
2.3组件测试
2
2
(课外)
7
第2章软件生命周期的测试
2.4集成测试
2
2
(课外)
8
第2章软件生命周期的测试
2.5系统测试
2
2
(课外)
9
第2章软件生命周期的测试
2.6确认测试与验收测试
2
2
(课外)
10
第3章软件测试的静态测试技术
3.1静态测试框架
1
1
(课外)
11
第3章软件测试的静态测试
3.2静态测试方法
2
2
2
(课外)
12
第3章软件测试的静态测试技术
3.3静态测试分析工具与应用
4
4
(课外)
13
第3章软件测试的静态测试技术
3.4软件评审
1
1
(课外)
14
第4章软件测试的动态测试技术
4.1动态测试技术分析
1
1
(课外)
15
第4章软件测试的动态测试技术
4.2黑盒测试技术
1
1
(课外)
16
第4章软件测试的动态测试技术
4.3等价类划分法
2
2
2
(课外)
17
第4章软件测试的动态测试技术
4.4边界值分析法
2
2
2
(课外)
18
第4章软件测试的动态测试技术
4.5因果图法
2
2
2
(课外)
19
第4章软件测试的动态测试技术
4.6决策表法
2
2
2
(课外)
20
第4章软件测试的动态测试技术
4.7状态转换法
2
2
2
(课外)
21
第4章软件测试的动态测试技术
4.8白盒测试概要
2
2
(课外)
22
第4章软件测试的动态技术
4.9逻辑覆盖
2
2
2
(课外)
23
第4章软件测试的动态技术
4.10路径测试
2
2
2
(课外)
24
第5章软件自动化测试
5.1软件自动化测试概要
1
1
(课外)
25
第5章软件自动化测试
5.2自动化测试系统建立
1
1
(课外)
26
第5章软件自动化测试
5.3自动化测试用例与脚本
2
2
(课外)
27
第5章软件自动化测试
5.4自动化测试工具及运用
2
2
(课外)
28
第5章软件自动化测试
5.5软件自动化系统平台
2
2
(课外)
29
第5章软件自动化测试
5.6软件系统自动化测试应用
2
2
(课外)
30
第6章软件测试管理
6.1软件测试管理框架
1
1
(课外)
31
第6章软件测试管理
6.2软件测试组织管理
1
1
(课外)
32
第6章软件测试管理
6.3软件测试计划管理
2
2
(课外)
33
第6章软件测试管理
6.4软件测试过程管理
2
2
(课外)
34
第6章软件测试管理
6.5软件测试事件管理
2
2
(课外)
32
第6章软件测试管理
6.6软件测试配置管理
2
2
(课外)
33
第7章软件测试工程实践
7.1组件测试Logiscope的应用
(1)
7.2组件测试Logiscope的应用
(2)
4
4
4
(课外)
34
第7章软件测试工程实践
7.3软件系统功能测试-测试需求分析
7.4软件系统功能测试-制定测试计划
7.5软件系统功能测试-设计测试用例
7.6软件系统功能测试-正交实验法设计测
试用例
7.7软件系统功能测试-用PICT工具生成
测试用例
7.8软件系统功能测试-发现并报告缺陷
6
6
10
(课外)
35
第7章软件测试工程实践
7.9软件系统的性能测试-性能测试
7.10性能测试基础
7.11性能测试需求分析
7.12性能测试设计与开发
7.12RPT测试平台
7.13RPT应用
(1)
7.14RPT应用
(2)
6
6
10
(课外)
合计
80
64
课内16
课外24