随着软件在各行各业的广泛使用,人们对软件质量提出了更高要求。然而,由于软件规模和软件复杂性的不断增加,软件的质量却不尽人意,软件产品在开发过程以及运维过程中存在严重的缺陷与不足。因此,软件质量保证及软件测试技术显得尤为重要,其广度和深度在很大程度上影响着软件产品的质量。
软件行业的发展日新月异,软件测试技术也在不断地发展和完善中,近年来涌现了大量的测试技术并在实际软件项目中得到广泛应用。课程结合编者多年的工作经验,注重理论与实践相结合,致力于为软件质量保证人员和测试人员提供系统化的理论知识,并培养其实践能力。课程主要介绍软件质量保证基础知识,软件测试基本流程;重点介绍多类主流软件测试技术,包括:黑盒测试技术、白盒测试技术、集成测试、系统测试、验收测试、面向对象的测试、变异测试、组合测试等;最后,重点讲述软件测试工具及部分工具的应用。
与同类课程相比,本课程具有如下特色:
1)内容具有较高的广度和深度。既讲述基础的软件测试技术,又讲述具有一定难度的高级测试技术;
2)注重理论与实践相结合。在讲述完每种测试技术的理论知识以后,给出应用案例来说明它如何应用;
3)系统性和实用性强。课程给出的部分应用案例,在多个章节中都有出现,用于说明各种测试方法的优缺点,使学习者能够学以致用。
软件质量保证是软件工程专业的必修课,也和计算机专业及其它相近专业有密切关系。课程不仅适用于在校本科生及研究生,也可以作为软件测试人员、开发人员以及质量保证人员的工作参考。希望通过对本课程的学习,学习者能够系统地掌握软件质量保证及软件测试的理论知识,能够培养起软件质量意识。
1.帮助学习者深入了解软件质量保证和软件测试的基础知识,培养学生的软件质量意识;
2.帮助学习者理解软件测试流程,加深他们对每个测试环节的认识;
3.帮助学习者掌握主流软件测试技术的理论知识及其应用;
4.帮助学习者了解目前的主流软件测试工具,掌握JUnit等测试工具的设计思想和高级应用;
5.为软件测试人员、软件质量保证人员以及软件开发人员提供有价值的参考,满足业界对高素质软件专业人才的需求。
1.本课程的成绩由课程讨论、单元测验、单元作业和期末考试四部分组成。线上作业只占部分成绩。
2.由于中国大学MOOC网站要求,课程设置并发布的作业时间不能修改,请同学们在规定时间内完成。
1.具备一定的编程基础和项目经验,至少掌握一种编程语言;
2.具备软件工程思想,了解软件工程基本知识。
【1】杜小智 编. 软件测试理论与实践,西安交通大学出版社,2020
【2】Glenford J. Mayers, Tom Badgett, Corey Sandler(美)著,张晓明、黄琳 译. 软件测试的艺术(原书第3版),机械工业出版社,2012