课程概述

        随着软件规模越来越大,复杂度越来越高,应用领域越来越广泛和深入,社会对软件产品的质量要求,尤其是可靠性、安全性等要求越来越高,软件产品的质量风险越来越大,重要软件,如果生产过程中没有严格的质量保证措施,不经过充分测试,就投入使用,可能造成恶性事故,导致难以挽回和无法估量的巨大损失,在这样的发展背景下,软件质量保证与测试越来越重要。
        《软件质量保证与测试》是软件工程专业的一门核心课程。本课程主要讲授软件质量保证与测试的发展过程、基本概念、核心思想、基础知识、基本原理、主要方法、基本过程、常用技术和工具。
        本课程要求学习者通过对软件质量保证与测试的重要性和意义、原则和局限性、静态测试和动态测试、黑盒测试和白盒测试、软件质量和模型、人工测试和自动化测试、测试过程和环节、测试组织和管理、软件评审等内容的学习和实践,掌握软件质量保证与测试的原理、方法和技术,掌握自动化测试工具和辅助工具软件的使用,具备软件测试需求分析能力,具备软件测试项目的计划和组织能力,具备软件测试分析和测试用例设计能力,具备软件测试的执行、记录、结果分析和评价能力。
        为方便学习者学习、测验和交流互动,本课程配备了教学视频、PPT课件、课堂提问、测验题、讨论题等。为培养学生自学能力,本课程安排一部分拓展学习内容,要求学习者自行通过查阅资料、交流讨论等来进行学习。

证书要求

网络教学部分的成绩按占总学时(总的理论是32学时)的比重来折算。

为保证网络教学的质量,网络教学阶段的考核环节包括:视频学习中的随堂提问、测试、作业、讨论。
其中:

1.     视频学习中的随堂提问不计分;

2.     单元测验占15%

3.     单元作业占20%

4.     视频完整学习及考勤占10%

5.     参与网络学习、讨论占5%

6.     以上成绩总和为平时成绩,期末考试占50%

 

预备知识

        1. 程序设计(结构化程序设计、面向对象程序设计)
        2. 软件工程过程

        这些预备知识,学习者既可以通过先修课程Java程序设计、《软件工程》等来获得,也可以通过自学来获得。

        具有编程经验的学习者能更好的理解课程的知识点,掌握相关的方法和技术。

授课大纲

说明:

A-   应掌握的知识点

B-   应理解的知识点

C-   应了解的知识点


1 绪论(2学时)                                                       

1.0 课程概述(C)

1.1软件质量保证与测试的产生与发展(C)

1.2软件缺陷(B)

1.3软件质量保证与测试的意义、原则和挑战(C)

 

2 软件测试策略(2学时)                                                      

2.1软件测试的模型、过程和生命周期(B)

2.2软件测试的方法和技术(B)

 

3 黑盒测试 6学时)                                                             

3.1黑盒测试概述(C)

3.2等价类划分(A)

3.3边界值法(A)

3.4判定表驱动法(B)

3.5因果图法(C)

3.6场景法(B)

3.7正交试验法(C)

 

4 白盒测试 6学时)                                                           

4.1白盒测试技术概述(C)

4.2程序静态测试(B)

4.3逻辑覆盖(A)

4.4基本路径覆盖(B)

4.5循环测试(C)

4.6程序变异测试(C)

4.7程序插桩和调试(C)

5 软件测试过程(6学时)                                                    

5.1单元测试(A)

5.2集成测试(B)

5.3系统测试(B)

5.4验收测试(C)

5.5回归测试(C)

 

6 面向对象测试(2学时)                                                    

6.1面向对象测试简介(C)

6.2面向对象测试的层次与数据流(B)

6.3 面向对象的单元测试、集成测试(B)

参考资料

参考书目:

[1] 朱少民.软件测试(第二版).北京:人民邮电出版社,2016.Bill Hetzel

[2] Glenford J.Myers,张晓明等译,《软件测试的艺术》第3版,机械工业出版社,2013

[4]秦航. 软件质量保证与测试(2) 清华大学出版社,2018

[5] GrahamD.等,朱少民等译,《自动化测试最佳实践:来自全球的经典自动化测试案例解析》,机械工业出版社,2013

[6] Andrew Hunt,《单元测试之道java版——使用junit》,电子工业出版社,2005

[7] 郑人杰.软件测试(第1版).北京:人民邮电出版社,2011.

[8] 佟伟光等,软件测试技术,人民邮电出版社,2010          

[9] 朱少民,《全程软件测试(第2版)》,电子工业出版社,2014

[10] 朱少民等,《软件测试方法和技术(第3版)》,清华大学出版社,2014

[11]王智钢 .软件测试实验指导与习题.南京:南京大学出版社,2013.

[12]The complete guide to software testing》,Qed Information Sciences, 1988

[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. 软件开发人员也需要学习软件质量保证与测试吗?
答:是的,软件质量保证与测试贯穿于整个软件过程,软件开发人员也需要参与相关工作,每一个软件开发人员都应对自己的工作承担质量责任,例如程序员应对自己开发的代码完成单元测试。


2.本课程主要面向的对象是谁?
答:(1)应用型本科院校软件工程、计算机及相关专业的学生;(2)软件开发、测试、项目管理、质量保证等从业人员;(3)准备参加计算机等级“软件测试”科目考试的学生;(4)准备参加“软件测试”岗位职业能力评测的在职人员。


3.本课程的先修课程有哪些?
答:本课程的先修课程有(1)Java程序设计》(2)《软件工程》

4.本课程一般在教学计划中的第几学期开设?
答:本课程一般在教学计划中的第6学期开设。