课程概况
开课单位 |
软件学院 |
课程类型 |
学科基础课程和专业必修课程 |
|||||||
课程名称 |
软件质量保证与测试 |
课程代码 |
1610362B |
|||||||
开课学期 |
第6学期 |
学时/学分 |
32/2.5 |
|||||||
选课对象 |
软件工程专业本科生 |
|||||||||
先修课程 |
软件工程导论、软件架构设计、需求工程、软件构造 |
|||||||||
课程教材 |
朱少民. 软件测试方法和技术(第3版,国家十二五规划教材). 清华大学出版社 |
|||||||||
课程简介: 本课程为软件工程专业开设的必修课,也是计算机科学与技术软件开发方向课程。 本课程与培养目标的关系是:软件测试工作要求学生具备软件测试基本理论、技术方法和项目测试实施及项目测试管理等职业能力,使学生能够设计测试用例、使用自动化工具完成完整的项目测试和项目测试管理,使学生能基本承担起软件测试的工作任务,具备软件测试岗位必备的职业能力,同时为学生获取软件测试工程师职业资格证书奠定基础。 课程主要讲述的内容为:测试基本理论与技术、主流的自动化测试工具、软件项目的测试实施及项目测试管理等内容。 |
||||||||||
课程目标(Course Objectives, CO) |
对应的专业培养目标 (Learning Objectives, LO) |
|||||||||
(CO1)掌握软件测试的基本概念和知识 |
(LO3)具备语言、交流、写作等基本的软件从业能力,拥有较好的沟通技巧和团队工作能力,通晓、遵守、认同现行的法律、道德和伦理。 (LO5) 受到良好的软件工程训练,具有较强的工程实践能力;熟悉软件工程相关工具,具备运用先进的工程化方法、技术和工具从事某一应用领域软件分析、设计、开发、维护等工作的能力。 (LO6) 对软件系统、计算机系统、信息系统乃至与计算机软件相关的社会系统具有系统级的认识能力,有较强的实践能力,具有一定的系统分析和软件设计的能力,初步具备面向领域需求的信息化系统设计和开发能力。 |
|||||||||
(CO2)掌握软件测试的方法、技术及其工具 |
||||||||||
(CO3)基于项目背景和用户需求,能够完成测试任务的分析、设计和执行 |
||||||||||
教学方式(Pedagogical Methods, PM) |
√PM1.讲授法教学 |
16 学时 45 % |
√PM2.研讨式学习 |
8 学时 25 % |
||||||
√PM3.案例教学 |
4 学时 15 % |
□PM4.网络教学 |
学时 % |
|||||||
□PM5.角色扮演教学 |
学时 % |
√PM6.体验学习 |
4 学时 15 % |
|||||||
□PM7.服务学习 |
学时 % |
□PM8.自主学习 |
学时 0 % |
|||||||
评估方式(Evaluation Methods, EM) |
√EM1.课堂测试 |
15% |
□EM 2.期中考试 % √EM5.实验分析报告 15% |
□EM3.期末考试 |
% |
|||||
√EM4.作业撰写 |
15% |
√EM6.期末报告 |
35 % |
|||||||
√EM7.课堂演讲 |
15% |
□EM8.论文撰述 % □EM11.设计报告 % |
√EM9.出勤率 |
5 % |
||||||
□EM10.口试 |
% |
|||||||||
教学安排
课次 |
学时 |
课程目标 |
教 学 主 要 内 容 |
教学方式 |
评估方式 |
1 |
2 |
CO1 |
课程介绍、软件测试基本概念 |
PM1 |
EM9 |
2 |
2 |
CO1 |
软件质量、质量度量模型、测试与SQA关系 |
PM1 |
EM4 |
3 |
2 |
CO2 |
软件测试基本方法-基于需求的测试方法 |
PM2 PM6 |
EM4 |
4 |
2 |
CO3 |
软件测试基本方法-结构化测试方法 |
PM3 |
EM7 |
5 |
2 |
CO3 |
实验一 针对某个具体问题的验证进行测试用例设计 |
EM5 |
|
6 |
2 |
CO1 |
过程模型和标准 |
PM3 |
EM7 |
7 |
2 |
CO2 |
单元测试-代码评审 |
PM1 |
EM1 |
8 |
2 |
CO2 |
单元测试-JUnit |
PM3 |
EM7 |
9 |
2 |
CO3 |
实验二 JUnit安装和应用 |
EM5 |
|
10 |
2 |
CO2 |
持续集成测试 |
PM1PM6 |
EM8 |
11 |
2 |
CO3 |
实验三 搭建持续集成测试的环境 |
EM5 |
|
12 |
2 |
CO2 |
系统功能测试 |
PM1 |
EM4 |
13 |
2 |
CO2 |
国际化/本地化 |
PM1 |
EM4 |
14 |
2 |
CO2 |
系统测试 -性能测试 |
PM3 PM6 |
EM7 |
15 |
2 |
CO3 |
实验四 针对应用系统完成其基本的性能测试 |
EM5 |
|
16 |
2 |
CO2 |
系统测试 -安全性测试 |
PM3 |
EM7 |
17 |
2 |
CO2 |
验收测试 |
PM1 |
EM4 |
18 |
2 |
CO3 |
实验五 针对应用系统进行渗透性测试 |
EM5 |
|
19 |
2 |
CO2 |
自动化测试原理与工具 |
PM1 PM6 |
EM4 |
20 |
2 |
CO3 |
实验六 构建轻量级的自动化测试框架 |
EM7 |
|
21 |
2 |
CO2 |
测试用例设计与维护 |
PM1 |
EM8 |
22 |
2 |
CO2 |
缺陷报告与测试报告 |
PM1 |
EM4 |
23 |
2 |
CO3 |
课程期末答辩 |
PM2 |
EM6 |
总学时44 其中课内 32学时,实验12学时 上机0学时 |
教学日历表
课程类别 |
专业必修课 |
课程代码 |
5204150 |
课 序 号 |
01 |
|||||||||||||
课程名称 |
软件质量保障与测试 |
学分 |
2.5 |
归属学院 |
信息学院 |
|||||||||||||
主讲教师 |
朱少民 |
授课章节 |
全部 |
联系电话 |
||||||||||||||
答疑时间与地点 |
17周周一到周五下午第二大节 |
|||||||||||||||||
总学时 |
学 时 分 配 |
授课班级 |
||||||||||||||||
讲授 |
实验 |
上机 |
讨论课 |
2014计科1、2、3、4 |
||||||||||||||
48 |
32 |
16 |
||||||||||||||||
课程建设 |
精品或重点课程 |
双 语 |
||||||||||||||||
o国家级 o市级 o校级 o院级 |
¡是 ●否 |
|||||||||||||||||
考核性质 |
●考试 ¡考查 |
考核形式 |
¡开卷 ¡闭卷 ¡论文 ●答辩 |
|||||||||||||||
成绩评定 |
总成绩比 % |
平时成绩比 % |
||||||||||||||||
期末 |
平时 |
出勤 |
作业 |
实验 |
实习 |
讨论 |
测验 |
其它 |
||||||||||
40 |
60 |
10 |
15 |
20 |
30 |
10 |
15 |
0 |
||||||||||
成绩评定和学习要求描述 |
以开卷、实验情况与小论文相结合。主要考核学生对软件质量保证与软件测试策略和方法的掌握,以及对测试技术的应用。成绩构成:最终理论考试、平时考核(包括作业、小测验、提问等)、实验环节考核成绩的总和。 |
|||||||||||||||||
教 材 |
名 称 |
软件测试方法与技术 |
编著者 |
朱少民 |
||||||||||||||
版 别 |
清华大学出版社 |
版 次 |
2014 年6 月 第 3 版 |
|||||||||||||||
性 状 |
●统编 ¡自编 ¡翻印 |
n近三年 n国省部优秀 n国家规划 |
||||||||||||||||
周次 |
星期 |
学时 |
授课主要内容和形式 |
课后作业及阅读 |
1 |
1 |
2 |
课程介绍、引论 |
阅读《软件测试的艺术》 |
1 |
3 |
2 |
软件测试的基本概念:缺陷、质量、质量模型 |
教材第2章思考题2、3 |
2 |
1 |
2 |
软件测试基本方法-基于需求的测试方法 |
教材第3章思考题4、6 |
2 |
3 |
2 |
软件测试基本方法-结构化测试方法 |
|
3 |
1 |
2 |
上机练习:用例设计(第3章思考题3、5、8) |
|
3 |
3 |
2 |
软件测试流程、过程模型、标准规范 |
阅读ISO 29119文档 |
4 |
1 |
2 |
单元测试-面向对象的测试、代码评审 |
教材第5章思考题6、8 |
4 |
3 |
2 |
上机练习:JUnit 安装及其应用 |
阅读《有效的单元测试》 |
5 |
1 |
2 |
系统功能测试 |
阅读《全程软件测试》 |
5 |
3 |
2 |
上机练习:移动app功能测试 |
|
6 |
1 |
2 |
国际化/本地化测试 |
阅读教材 |
6 |
3 |
2 |
负载测试原理和性能测试 |
教材第5章思考题3 |
7 |
1 |
2 |
上机练习:Web 服务器性能测试 |
|
7 |
3 |
2 |
安全性测试 |
阅读OWASP材料 |
8 |
1 |
2 |
上机练习:安全性测试 |
|
8 |
3 |
2 |
验收测试 |
阅读《全程软件测试》 |
9 |
1 |
2 |
自动化测试原理与工具 |
阅读:自动化测试最佳实践 |
9 |
3 |
2 |
上机练习:Selenium + WebDriver |
|
10 |
1 |
2 |
测试风险分析、测试估算、测试计划 |
教材第10章思考题2 |
10 |
3 |
2 |
测试用例设计与维护 |
教材第11章思考题1 |
11 |
1 |
2 |
测试执行、缺陷报告与缺陷跟踪 |
教材第13章思考题2 |
11 |
3 |
2 |
软件测试和质量分析报告 |
教材第14章思考题3、5 |
12 |
1 |
2 |
课程期末答辩 |
|
12 |
3 |
2 |
课程期末答辩 |
附注:1. 本表(电子版)于每学期开学预备周交学院,同时需上传EOL网络教学平台,供选课学生查看。
2. 填写时,可续页,可自行调整行高,但不要改变列宽及其它格式。
教学内容及要求
(I) 课程部分
第一单元(章) 引论
教学要求
了解软件测试的概念、软件测试的发展历史,理解为什么要进行软件测试、软件测试和软件开发的关系。
教学重点
软件测试的概念、软件测试和软件开发的关系
教学难点
从不同视角理解什么是软件测试。
第二单元(章) 软件测试的基本概念
教学要求
了解缺陷、质量、软件测试的分类、阶段和过程等概念,理解软件测试辩证的关系、质量保证与测试的区别、为什么测试越早越好等。
教学重点
软件缺陷(Bug)的含义,验证和确认、软件测试的分类,静态测试与动态测试、主动测试与被动测试、黑盒测试与白盒测试、测试级别:单元、集成、系统和验收、软件测试计划与用例、质量保证与测试的区别。
教学难点
软件测试分类、软件测试辩证的关系、质量保证与测试的区别。
第三单元(章)软件测试方法
教学要求
了解各种软件测试方法,理解软件测试方法的应用场景,掌握软件测试的各种具体方法,如等价类划分、边界值分析、判定表、因果图、两两组合方法、正交实验法、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、基本路径覆盖。
教学重点
基于直觉和经验的方法、基于输入域的方法、基于组合及其优化的技术、基于逻辑覆盖的方法、基于故障模式的测试方法。
教学难点
基于模型的测试方法、形式化方法。
第四单元(章)软件测试流程和规范
教学要求
了解软件测试流程和规范,理解传统的软件测试过程与敏捷测试过程的区别、软件测试学派的特点,掌握基于风险的测试策略。
教学重点
传统的软件测试过程、敏捷测试过程、基于风险的测试策略、测试过程改进、软件测试规范。
教学难点
基于风险的测试策略、测试过程改进。
第五单元(章)单元测试与集成测试
教学要求
了解单元测试与集成测试的相关知识,理解单元测试的重要性和不同形式的应用场景,掌握单元测试与集成测试的方法、工具等。
教学重点
代码评审、动态测试技术、单元测试的常用工具、持续集成测试环境搭建。
教学难点
动态测试技术、持续集成测试环境搭建。
第六单元(章) 软件系统测试
教学要求
了解系统的不同测试类型及其过程,理解不同类型的系统测试特点、回归测试策略,掌握不同类型的系统测试的方法和工具。
教学重点
功能测试与回归测试、性能测试、压力测试、容量测试、安全性测试、容错性测试、兼容性测试的方法和工具。
教学难点
性能测试、安全性测试、回归测试策略。
第七单元(章) 验收测试
教学要求
了解验收测试及其相关测试的过程,理解传统开发中验收测试和敏捷开发中验收测试的区别,掌握验收测试的方法。
教学重点
用户界面和易用性测试、可安装性和可恢复性测试。
教学难点
易用性测试、可恢复性测试
第八单元(章)软件本地化测试
教学要求
了解软件国际化(I18N)和本地化(L10N)的概念、过程,理解为什么要进行I18N、L10N测试,掌握I18N、L10N测试方法、工具等。
教学重点
软件国际化(I18N)和本地化(L10N)的测试方法和注意事项,包括对字符集、语言、时区、度量衡单位、文化等方面的验证。
教学难点
字符集、时区、文化等方面的验证。
第九单元(章) 软件自动化测试及其框架
教学要求
了解软件自动化测试及其框架等概念和相关知识,理解软件自动化测试实现的原理,掌握自动化测试工具的使用。
教学重点
流行测试工具的分类和应用,包括自动化测试框架、数据驱动脚本、关键字驱动脚本。
教学难点
自动化测试框架、关键字驱动脚本
第十单元(章)测试需求分析与测试计划
教学要求
了解测试需求分析与测试计划的具体工作,理解测试需求分析与测试计划的重要性,掌握如何进行测试需求分析、如何制定测试计划的方法。
教学重点
测试目标和准则、测试需求分析、测试风险和测试策略、测试项目的估算与进度安排、测试计划的内容与编制。
教学难点
测试需求分析、测试风险和测试策略。
第十一单元(章) 测试用例设计
教学要求
了解测试用例设计的具体工作,理解测试用例的重要性,掌握测试用例设计的基本原则和书写格式等。
教学重点
测试用例设计书写标准、测试用例设计基本原则和考虑因素。
教学难点
测试用例设计基本原则。
第十二单元(章) 测试执行、缺陷报告与跟踪
教学要求
了解测试执行、缺陷报告与跟踪的具体工作,理解软件缺陷跟踪和分析的重要性,掌握测试执行、缺陷报告与跟踪等方法、工具和实践。
教学重点
软件测试执行与跟踪、软件缺陷生命周期、软件缺陷的描述、软件缺陷跟踪和分析、软件缺陷跟踪系统。
教学难点
软件测试执行与跟踪、软件缺陷生命周期。
第十三单元(章) 质量分析与软件测试报告
教学要求
了解质量分析与软件测试报告的具体工作,理解质量度量、测试覆盖率等内涵,掌握质量分析方法、工具。
教学重点
软件产品的质量度量、评估系统测试的覆盖程度、基于缺陷分析的产品质量评估、测试报告的具体内容。
教学难点
评估系统测试的覆盖程度、基于缺陷分析的产品质量评估。
(II)实验部分
一、实验项目与内容提要
学时 |
实验项目 |
实 验 主 要 内 容 |
实验类别 |
2 |
实验一 针对某个具体问题的验证进行测试用例设计 |
1. 加深对测试概念的理解 2. 运用基本的测试方法来设计测试用例 3. 验证测试用例的合理性和正确性 |
验证、设计性 |
2 |
实验二 JUnit安装和应用 |
1. 熟悉单元测试的工具 2. 运用JUnit在代码层完成测试 3. 检验测试代码的有效性 |
验证、设计性 |
2 |
实验三 搭建持续集成测试的环境 |
1. 综合运用版本构建工具、配置管理工具、静态测试工具 2. 构建完整的持续集成环境 |
验证、设计性 |
2 |
实验四 针对应用系统完成其基本的性能测试 |
1. 设计性能测试场景,包括负载模式 2. 开发性能测试脚本 3. 运用性能测试工具 4. 对测试结果进行分析 |
验证、设计性 |
2 |
实验五 针对应用系统进行渗透性测试 |
1. 了解网络应用软件安全性漏洞 2. 掌握安全性测试工具 3. 验证和评估系统的安全性 |
验证、设计性 |
2 |
实验六 构建轻量级的自动化测试框架 |
理解自动化测试框架的构成 测试工具开发能力训练 |
验证、设计性 |
二、实验的主要仪器设备
本实验课程主要使用的自动化测试工具,主要是开源的单元测试、功能测试、性能测试、安全性测试工具。
三、实验指导书具体要求
目标:使学生加深所学理论知识的理解,掌握常用的软件测试设计方法、自动化脚本开发技术;提高学生解决实际问题的能力。
要求:
(1)以实验内容为核心,讲述实验内容和实验方法;
(2)安排预习内容及思考题,增强学生独立思考和解决问题的能力;
(3)采用典型案例和学生自己软件工程项目相结合的方式,保证学生在对基本方法消化吸收的基础上,提高学生的实践操作能力;
(4)每个实验后都有针对实验的相关思考题。
四、实验报告内容及要求
实验报告内容含三个部分:
1、预习部分:
(1)明确实验的目的;
(2)明确实验的具体任务;
(3)了解实验要操作和使用的测试工具,阅读工具的相关文档(如用户指导手册);
(4)预习和实验相关的理论知识,在测试计算机上安装好工具。
2、实验中操作部分:
(1)设计测试用例、开发自动化测试脚本,并执行用例或脚本;
(2)记录测试结果,对结果进行分析;
(3)如果发现缺陷,按缺陷格式记录所发现的缺陷。
3、实验后:
(1)提交完整的测试报告;
(2)回答实验指导书中的相关思考题;
实验报告的要求:
(1)数据必须客观、准确。
(2)能够描述或记录完整测试过程,包括测试环境、所做的测试、不能执行的测试。
实践(大作业)要求
一、每个小组选定一个应用,各组所选定的应用不能相同,选定的应用应事先(某个时间前)报告给老师,获得老师的肯定。
(1)可以是C/S 架构,也可以是B/S架构,但必须包含两部分客户端(web/Windows/Mac)和服务器
(2)应用不能过于简单,测试可以选其中一个模块或组件
二、基于这个应用,完成下列测试
(1)单元测试:针对Java、C++的代码进行单元测试,代码量在千行数量级,工具采用JUnit、CppUnit, 提交测试类代码和测试结果(Log)等。
(2)功能测试:针对Windows客户端或Web客户端,功能测试工具:Selenium 或 AutoIT
要求:
-
设计20个以上的测试用例;
-
采用两种及其以上的方法(等价类、边界值、决策表等)来设计测试用例;
-
开发相应的测试脚本,包括修改、调试脚本的关键记录;
-
执行测试用例,发现若干个缺陷。
(3)性能测试:针对Web服务器、数据库服务器或应用服务器,进行测试。
性能测试工具:JMeter 或 LoadRunner
要求:
-
说明如何选定关键业务
-
设计合适的负载模式,包括负载大小、加载方式等
-
参数设计,如Thinking time , 通过testaction的 threadpause 和 constanttimer两种方法实现;
-
测试2种及2种以上的协议(FTP/HTTP/JDBC/LDAP),其中HTTP是必选项;
-
使用HTTP Cookie 管理器、HTTP授权管理器等;
-
需要验证某些必要的结果,使用两种以上的Assertion(断言)。
-
对测试结果(表格和图形)进行分析
三、需提交的内容
-
功能测试用例及其脚本:文档类型为Word、Excel,以及脚本程序文件
-
性能测试方案设计和结果分析:Word 文档
-
缺陷报告:Excel 文档
-
总的测试报告:Word 文档
-
总结陈述报告:PPT文件, 包括对上面3项内容的总结,以及每个成员的贡献。
四、内容提交的截止时间
某日,过期算自动放弃,这部分(30%)得分为零.
五、答辩时间:
某日 ( 答辩可作为考试)
课程教材
十二五”普通高等教育本科国家级规划教材、教育部高等学校软件工程专业教学指导委员会规划教材。提供PPT课件,教学大纲。
作者:朱少民
定价:44.50元
ISBN:9787302370314
本书共分为三篇: 软件测试的原理与方法、技术和实践。本书首先系统地介绍软件测试相关概念,从不同的视角来探讨软件测试的本质及其内涵; 全面而又系统地讲解了软件测试所需的基本方法,按照SWEBOK 3.0对方法进行了重新分类和组织,能够满足不同应用系统的测试需求; 并且简要地介绍了软件测试规范、软件测试过程及其改进等内容,有利于读者提纲挈领地掌握软件测试的知识全貌。
本书的第2篇介绍了软件测试各个层次(单元测试、集成测试、系统测试和验收测试)的测试技术及其工具,系统、务实而有效,和业界的实践保持高度一致,学以致用; 而且还介绍了软件国际化和本地化的测试、软件测试自动化的原理和框架,可使读者有效地提高动手能力。为了更好地将测试方法和技术应用于实际项目中,本书的第3篇从软件测试需求分析、测试计划开始,逐步深入测试用例设计、测试环境部署、测试执行、缺陷报告跟踪与报告、测试结果分析与报告,贯穿整个软件开发生命周期。
《软件测试方法和技术(第3版)》的配套实验教程
作者:朱少民 等
定价:39.50元
ISBN:9787302523734
这本实验教程是对教材《软件测试方法和技术》的有力补充,指导教学过程中所需要的实验,含实验目的、环境、内容和详细的过程指导。全书共有19个实验,覆盖单元测试、集成测试、功能测试、性能测试、安全性测试和验收测试等,主要以当今流行的Web应用、移动App应用为测试对象,并增加了一些深度的实验,如反编译安全测试、开源测试框架Fitnesse的解析等,是软件测试教学不可多得的实验教材。
以上两本书详细目录及内容介绍,可以在书圈搜索查询书号。
-----------
点击页面下方[阅读原文], 可以查看几十门课程教学大纲
文章评论