软件测试是什么?很多人都会不假思索地说出答案: 发现软件中的缺陷,找出程序中的bug。这样的回答固然没错,然而在很多情况下,为什么软件企业最终开发出来的软件产品会有那么多问题?为什么总会存在一些与用户需求不一致的地方?这需要深入思考。软件企业需要考虑如何能在软件开发的过程中尽早、尽快地发现软件中的缺陷,有效预防缺陷的产生,以提高软件的质量与可靠性,降低软件的后期修复成本。所以,软件测试在保障软件质量方面发挥着极其重要的作用,目前已得到软件产业界、学术界乃至教育界的高度重视。
从教育教学的角度出发,软件测试已由早期大学软件工程课程中的一章内容发展到一门独立的课程,国内很多工科高校的本科计算机类、软件类、信息技术类专业也都开设了软件测试这门课程。国内外学术界也一直把软件测试作为一门独立的科学在研究,现代软件测试及其相关技术也是国内很多高校教师感兴趣的研究课题。与软件开发一样,软件测试已成为当前IT行业中的一门重要职业。很多软件企业都期望培养出大量合格的软件测试人才,尽早发现软件中的各类错误,以减少软件后期的开发及维护成本。在我国,软件测试也已经逐步渗透到各个行业领域,成为不可或缺的工作环节。国内很多软件企业大都设置了独立的软件测试质量保证部门,已逐渐实现了从软件产品模式向软件服务模式的思想转变,尤其重视对高水平软件测试人才的培养工作,对软件测试在人员配备和资金投入方面的比重日益增加。目前,越来越多的IT行业技术人员愿意从事软件测试及其相关工作。
当前,市面上出版的软件测试方面的大学教材比较多,介绍的理论知识及其应用案例很全面,也很有深度。有些教材充分依托某一个实际的企业级测试项目案例,要求学生搭建实际的测试环境,并提倡在实际测试环境下实训与实战;有些教材内容主要围绕对一些主流软件测试工具的介绍,强调用对测试工具的熟练操作应用来培养学生的工程实践能力等。这样的教学思路固然新颖,但前提是要对所教学生的实际认知能力进行合理性的评估。编者长期从事地方应用型本科高校计算机类专业及软件工程专业的主干课程的教学及指导实践工作,在教学中发现,尽管越来越多的在校大学生对软件测试职业感兴趣,毕业后很愿意从事软件测试的相关工作,但是一个不容忽视的问题就是这些学生大都是软件测试零基础,在校学习期间没有任何实际软件项目实习、实训经历甚至不少学生是文科出身,还存在对一些高级程序设计语言掌握不扎实的情况,更缺乏一定的现代软件工程方面的专业基础知识。加之其数学知识又较薄弱,没有实际软件项目开发经验,因此认为软件测试课程内容空洞乏味,理解起来难度很大,学习效果不是很好。
基于此,针对应用型本科在校学生软件测试零基础的认知特点,编者通过对软件测试的了解与感悟,结合多年的一线教学实践,认真而系统地梳理了课程讲义后精心编写了《软件测试基础》一书。该书定位于软件测试零基础的读者主要是在校大学生,阐述现代软件测试领域的一些基础性知识,培养学生从事软件测试职业的兴趣。从对软件测试基础性知识的普及与实用角度出发,使在校学生能快速而轻松地了解软件测试的知识体系及当前软件测试职业的岗位需求,提高分析与解决实际问题的能力,提升软件测试职业素养,与IT行业软件测试岗位形成无缝衔接。最后需要说明的是,软件测试技术能力的提升绝不是仅通过在校期间几十个课时的学习或阅读几本软件测试方面的书籍就能轻松完成的,而需要在一线工作岗位上历经长期的实践、磨练与总结。
本书以2019年度安徽省高校优秀青年人才支持计划项目应用型本科软件测试课程教学改革编号: gxyq2019138、2019年安徽省高等学校省级质量工程项目新工科建设背景下应用型软件工程人才培养模式探索编号: 2019jyxm0508、2019年安徽省高等学校省级质量工程项目软件工程教学团队编号: 2019jxtd122为依托,系项目研究成果之一。本书在成书过程中,得到了安徽三联学院的大力支持。此外,编者所在的二级学院安徽三联学院计算机工程学院领导以及软件工程教研室有关老师也为本书内容的编写提出了宝贵的建议,在此表示衷心的感谢。
本书编者多年从事地方应用型本科高校计算机类及软件工程专业主干课程的一线教学及现代软件测试技术教科研课题的研究工作,期望能够把丰富的软件测试经验及有关教科研成果充分融入书中,以奉献给读者。在编写过程中,编者参考了大量同类软件测试书籍及相关文献资料,以及51testing软件测试网、CSDN等网站上的软件测试方面的网络博文,在此谨向原作者表示诚挚的谢意。由于编者水平有限,书中的疏漏之处在所难免,还望各位同行批评指正。
编者2020年3月
|