随着软件在各行各业的广泛使用,人们对软件质量提出了更高要求。然而,由于软件规模和软件复杂性的不断增加,软件的质量却不尽人意,软件产品在开发过程以及运维过程中存在严重的缺陷与不足。因此,软件质量保证及软件测试技术显得尤为重要,其广度和深度在很大程度上影响着软件产品的质量。
软件行业的发展日新月异,软件测试技术也在不断地发展和完善中,近年来涌现了大量的测试技术并在实际软件项目中得到广泛应用。课程结合教学团队多年的工作经验,注重理论与实践相结合,致力于为软件质量保证人员和测试人员提供系统化的理论知识,并培养其实践能力。课程主要介绍软件质量保证基础知识,软件测试基本流程;重点介绍多类主流软件测试技术,包括:黑盒测试技术、白盒测试技术、集成测试、系统测试、验收测试、面向对象的测试、变异测试、组合测试、模型测试等;最后,重点讲述自动化测试理论、软件测试工具及部分工具的应用。
与同类课程相比,本课程具有如下特色:
1)内容具有较高的广度和深度。既讲述基础的软件测试技术,又讲述具有一定难度的高级测试技术;
2)注重理论与实践相结合。在讲述完每种测试技术的理论知识以后,给出应用案例来说明它如何应用;
3)系统性和实用性强。课程给出的部分应用案例,在多个章节中都有出现,用于说明各种测试方法的优缺点,使学习者能够学以致用。
软件质量保证是软件工程专业的必修课,也和计算机专业及其它相近专业有密切关系。课程不仅适用于在校本科生及研究生,也可以作为软件测试人员、开发人员以及质量保证人员的工作参考。希望通过对本课程的学习,学习者能够系统地掌握软件质量保证及软件测试 的理论知识,能够培养起软件质量意识,开发出符合业界需要的高质量软件。
1.帮助学习者深入了解软件质量保证和软件测试的基础知识,培养学生的软件质量意识;
2.帮助学习者理解软件测试流程,加深对每个测试环节的认识;
3.帮助学习者掌握主流软件测试技术的理论知识及其应用;
4.帮助学习者了解自动化测试原理、熟悉主流软件测试工具,掌握JUnit、Selinium、APPium等测试工具的设计思想和高级应用;
5.为软件测试人员、软件质量保证人员以及软件开发人员提供有价值的参考,满足业界对高素质软件专业人才的需求。
第1周 软件质量保证基础知识
1.1 软件缺陷基本概念
1.2 软件质量及保证
1.3 软件测试基本概念
1.4 软件测试原则与测试思想
第1周 单元测验
第1周 单元作业
第2周 软件测试流程
2.1 RUP测试流程
2.2 定义评估任务
2.3 测试与评估
2.4 完成验收任务
2.5 其它测试环节
第2周 单元测验
第2周 单元作业
第3周 单元测试(黑盒技术)
3.1 边界值分析技术
3.2 等价类测试技术
3.3 基于决策表的测试
3.4 黑盒单元测试技术小结
第3周 单元作业
第3周 单元测验
第4周 单元测试(白盒技术)
4.1 路径测试
4.2 基路径测试
4.3 数据流测试
4.4 白盒单元测试小结
第4周 单元测验
第4周 单元作业
第5周 集成测试
5.1 集成测试概述
5.2 集成测试策略
5.3 基于调用关系的集成
5.4 基于路径的集成
5.5 集成测试应用
第5周 单元测验
第5周 单元作业
第6周 系统测试
6.1 系统测试概述
6.2 基于用例的测试
6.3 基于风险的测试
6.4 性能测试与压力测试
6.5 可靠性测试
第6周 单元测验
第6周 单元作业
第7周 验收测试与面向对象测试
7.1 验收测试
7.2 面向对象测试
第7周 单元测验
第7周 单元作业
第8周 高级测试技术
8.1 变异测试
8.2 组合测试
8.3 基于模型的测试
第8周 单元测验
第8周 单元作业
第9周 自动化测试及工具
9.1 自动化测试概述
9.2 测试工具概述
9.3 JUnit
9.4 Web测试及Selinium应用
9.5 移动APP测试及Appium应用
第9周 单元测验
第9周 单元作业
1.具备一定的编程基础和项目经验,至少掌握一种编程语言;
2.具备软件工程思想,了解软件工程基本知识。
【1】杜小智 编. 软件测试理论与实践,西安交通大学出版社,2020
【2】Glenford J. Mayers, Tom Badgett, Corey Sandler(美)著,张晓明、黄琳 译. 软件测试的艺术(原书第3版),机械工业出版社,2012
Q1:没有软件基础或者基础薄弱的人可以学好《软件质量保证》这门课吗?
A1:
《软件质量保证》适用于具备一定的软件工程基础或者计算机基础的学生学习。
1)建议没有软件基础的学生在本课程开始之前先了解与软件工程相关的知识,基础薄弱的学生也适当回顾一下学过的相关内容;
2)当然也可以先学习本课程,本课程会有基础知识的引导,在学习本课程的过程中找到自己的不足,然后去补充相关的知识。
Q2:《软件质量保证》这门课一共多少课时,线上学习内容的容易掌握不,线下需要花多长时间来学习?
A2:
1)本课程争取做到上课内容通俗易懂,当堂知识当堂掌握,重点和难点知识课上会详细讲解,不会遗留含糊不清的知识;
2)线下需要回顾课堂所学知识,并对下次课所学知识进行预习,一般课下所花时间是课上所花时间的2—3倍。
3)课程实践性较强,建议学习者动手实现课程中的案例或结合自身经历选择合适案例,将课程中所讲述的测试技术应用起来,从而提高对知识的理解和掌握。
Q3:对于想要找工作的人来说,学完本课程可以找到软件测试相关的工作吗?
A3:
1)本课程只是起引导作用,把学生引入软件质量保证的大门,后边的路还得学生自己去走;
2)本课程虽然不能百分百保证你可以找到软件测试相关的工作,但可以保证对你在找工作的过程中有所帮助,本课程基本覆盖软件测试的基础内容,更深入的内容需要学生独立去思考去实践;
3)如果对课程进行了深入学习,掌握了课程中所授知识,并将主流软件测试技术应用到实际项目,会对找到好工作有很大帮助。