随着软件规模越来越大,复杂度越来越高,应用领域越来越广泛和深入,社会对软件产品的质量要求,尤其是可靠性、安全性等要求越来越高,软件产品的质量风险越来越大,重要软件,如果生产过程中没有严格的质量保证措施,不经过充分测试,就投入使用,可能造成恶性事故,导致难以挽回和无法估量的巨大损失,在这样的发展背景下,软件质量保证与测试越来越重要。
《软件质量保证与测试》是软件工程专业的一门核心课程。本课程主要讲授软件质量保证与测试的发展过程、基本概念、核心思想、基础知识、基本原理、主要方法、基本过程、常用技术和工具。
本课程要求学习者通过对软件质量保证与测试的重要性和意义、原则和局限性、静态测试和动态测试、黑盒测试和白盒测试、软件质量和模型、人工测试和自动化测试、测试过程和环节、测试组织和管理、软件评审等内容的学习和实践,掌握软件质量保证与测试的原理、方法和技术,掌握自动化测试工具和辅助工具软件的使用,具备软件测试需求分析能力,具备软件测试项目的计划和组织能力,具备软件测试分析和测试用例设计能力,具备软件测试的执行、记录、结果分析和评价能力。
为方便学习者学习、测验和交流互动,本课程配备了教学视频、PPT课件、课堂提问、测验题、讨论题等。为培养学生自学能力,本课程安排一部分拓展学习内容,要求学习者自行通过查阅资料、交流讨论等来进行学习。
每一个学习单元对学习者的考核环节包括:视频学习中的随堂提问、测试、作业、讨论。
课程学习结束有期末考试。
1. 视频学习中的随堂提问不计分;
2. 单元测验各单元题目数量不等,总题数为100题,计入总分,占10%;
3. 单元作业各单元题目数量不等,总题数为20题,计入总分,占10%;
4. 期末考试,计入总分,占60%;
5. 完成一份测试文档的撰写,计入总分,占10%;
6. 参与网络学习、讨论,计入总分,占10%。
60分以上获得合格证书,85分以上优秀证书。
1. 程序设计(结构化程序设计、面向对象程序设计)
2. 软件工程过程
这些预备知识,学习者既可以通过先修课程《软件工程导论》、《Java面向对象程序设计》或者《Java程序设计》等来获得,也可以通过自学来获得。
具有编程经验的学习者能更好的理解课程的知识点,掌握相关的方法和技术。
第1章 绪论 2课时
1.1软件质量保证与测试的产生与发展
1.2软件缺陷、软件错误、软件失败
1.3软件质量保证与测试的意义、原则和挑战
第2章 软件测试策略 2课时
2.1软件测试的模型、过程和生命周期
2.2软件测试的方法和技术
第3章 黑盒测试 6课时
3.1黑盒测试概述
3.2等价类划分
3.3边界值法
3.4错误推测法
3.5判定表驱动法
3.6因果图法
3.7场景法
3.8正交试验法
第4章 白盒测试 6课时
4.1白盒测试技术概述
4.2程序静态测试
4.3逻辑覆盖
4.3_1逻辑覆盖测试
4.3_2逻辑覆盖标准小结
4.4基本路径覆盖
4.5循环测试
4.6程序变异测试
4.7符号测试
4.8程序插桩和调试
第5章 软件测试过程 8课时
5.1单元测试
5.1.1单元测试简介
5.1.2单元测试的任务
5.2集成测试
5.2.1集成测试简介和相依性分析
5.2.2需要进行集成测试的原因
5.2.3集成测试方法和分析
5.2.4自顶向下和自底向上集成
5.2.5核心系统先行集成
5.2.6基于调用的集成
5.2.7高频集成
5.2.8其它集成测试方法
5.3系统测试
5.3.1系统测试概述
5.3.2系统测试项目1
5.3.3系统测试项目2
5.3.4系统测试项目4
5.4验收测试
5.5回归测试
第6章 面向对象测试 1课时
6.1面向对象测试简介
第7章 自动化测试 1课时
7.1自动化测试概述
7.2自动化黑盒测试
第8章 软件评审 1课时
8.1软件评审概述
8.2软件评审会议
第9章 软件质量与软件质量管理 3课时
9.1软件错误及分类
9.2程序中隐藏错误数量估计
9.3软件质量
9.4软件质量模型
9.5软件质量管理
9.6软件质量管理体系
第10章 软件测试组织和管理 2课时
10.1人员和资源组织
10.2过程和进度管理
10.3文档、用例和缺陷管理
参考书目:
[1] Bill Hetzel,《The complete guide to software testing》,Qed Information Sciences, 1988
[2] Glenford J.Myers,张晓明等译,《软件测试的艺术》第3版,机械工业出版社,2013
[4] Stephen Vance, 《优质代码:软件测试的原则、实践与模式》,人民邮电出版社,2015
[5] Graham,D.等,朱少民等译,《自动化测试最佳实践:来自全球的经典自动化测试案例解析》,机械工业出版社,2013
[6] Andrew Hunt,《单元测试之道java版——使用junit》,电子工业出版社,2005
[7] 郑人杰.软件测试(第1版).北京:人民邮电出版社,2011.
[8] 佟伟光等,软件测试技术,人民邮电出版社,2010
[9] 朱少民,《全程软件测试(第2版)》,电子工业出版社,2014
[10] 朱少民等,《软件测试方法和技术(第3版)》,清华大学出版社,2014
[11]王智钢 等.软件测试实验指导与习题.南京:南京大学出版社,2013.
[12]朱少民.软件测试(第二版).北京:人民邮电出版社,2016.
[13]Ron Patton 著 张小松,王钰,曹跃 等译. 软件测试. 北京:机械工业出版社,2014.
参考数字化资源:
中国大学慕课软件测试 https://www.icourse163.org/course/NJU-1001773008
中国大学慕课软件测试与质量 https://www.icourse163.org/course/HUST-1001907003
优课在线软件质量保证与测试在线课程 https://www.uooconline.com/course/1420294878
金陵科技学院软件质量保证与测试在线课程 https://mooc1.chaoxing.com/course/201139148.html
金陵科技学院软件质量保证与测试精品课程 https://it.jit.edu.cn/course/rjzlbzycs
慕测平台 https://www.mooctest.net/
软件测试网 https://www.51testing.com/html/
全国大学生软件测试大赛 https://www.mooctest.org/#/
1. Q : 软件开发人员也需要学习软件质量保证与测试吗?
A : 是的,软件质量保证与测试贯穿于整个软件过程,软件开发人员也需要参与相关工作,每一个软件开发人员都应对自己的工作承担质量责任,例如程序员应对自己开发的代码完成单元测试。
2.Q : 本课程主要面向的对象是谁?
A : (1)应用型本科院校软件工程、计算机及相关专业的学生;(2)软件开发、测试、项目管理、质量保证等从业人员;(3)准备参加计算机等级“软件测试”科目考试的学生;(4)准备参加“软件测试”岗位职业能力评测的在职人员。
3.Q : 本课程的先修课程有哪些?
A : 本课程的先修课程有(1)《软件工程导论》 (2)《Java面向对象程序设计》或者《Java程序设计》
4.Q : 本课程一般在教学计划中的第几学期开设?
A : 本课程一般在教学计划中的第4、第5或者第6学期开设。
5.Q : 本课程每个学期都在线同步开设吗?
A : 是的,本课程每个学期都在线同步开设。