图书前言

前言

为什么写这本书

中国软件行业正处于高速发展成长期。根据工业和信息化部的统计,2017年我国软件业务收入达到55037亿元,从业人员达到600万人。随着软件越来越复杂,以及人们对软件工程的深入研究,越来越多的人认识到软件测试对提高软件质量的重要作用。据统计,软件评估和测试的成本占软件开发总成本(时间和资金)的25%~50%。一些著名的公司,例如,Microsoft、IBM、Google、阿里巴巴等,对软件测试非常重视,在软件研发过程中投入了大量的资金和人力进行软件测试工作。国内软件行业对软件测试人员的需求量呈现逐年增加的态势。据国家权威部门的统计,中国软件人才缺口中,其中30%为软件测试人才。中国软件业每年新增约20万测试岗位就业机会,而企业、学校培养出的测试人才却不足需求量的1/10,这种测试人才需求与供给间的差距仍在拉大。为了应对软件测试人员的匮乏问题,高等院校软件技术相关专业纷纷设立软件测试方向,有些院校还新建了软件测试专业。软件测试成为软件技术相关专业的必修课。

软件技术是一门发展很快的技术,软件测试的方法也在不断发展。从人工测试到自动化测试,从桌面应用的测试到Web应用的测试,再到手机App的测试、前端的测试。随着技术的发展,开源软件测试工具已相当成熟。我们认为,软件测试课程教学的目的不是教学生如何使用具体的软件测试工具,而是通过软件测试工具的教学,使学生掌握软件测试的基本知识和方法。我们不能保证学生毕业后在就业岗位一定会用到我们所教的软件测试工具,但是,我们可以保证学生毕业后一定会用到我们所教的软件测试方法,并且可以选择合适的软件测试工具,很快就能掌握软件测试工具的使用。现有教材选用开源软件测试工具的很少,这是我们为什么要编写这本书的原因之一。

随着智能手机的普及,需要大量手机App开发和测试人才。软件测试的一些方法仍然适用于手机App的测试,但是,由于手机App的特殊性,测试的关注点有所不同。需要采用更有效的方法。国内包含手机App测试内容的书籍很少,这是我们为什么要编写这本书的原因之二。

1997年,英国计算机协会信息系统考试委员会成立了软件测试认证委员会,随后,各国都建立了自己的软件测试认证委员会。各国的软件测试认证委员会成立了一个联盟——国际软件测试认证委员会(International Software Testing Qualifications Board,ISTQB)。CSTQB(Chinese Software Testing Qualifications Board)是ISTQB在大中华区(包括港澳台地区)的唯一分会,成立于2006年(http://www.cstqb.cn/)。ISTQB的培训大纲是软件测试岗位所需知识、技能的权威文档,不管是否参加软件测试人员认证,对软件测试人员都有重要的指导意义。就作者所知,国内涉及ISTQB培训内容的书籍非常少,这是我们为什么要编写这本书的原因之三。

应用型本科院校是指以应用型为办学定位,而不是以科研为办学定位的本科院校。应用型本科教育对于满足我国经济社会发展,对高层次应用型人才需要以及推进我国高等教育大众化进程起到了积极的促进作用。早在2014年3月,国家教育部改革方向就已经明确: 全国普通本科高等院校1200所学校中,将有600多所逐步向应用技术型大学转变,转型的大学本科院校正好占高校总数的50%。为了落实应用型本科的改革目标,必须建设适合应用型本科的教材。因此,我们应该着力于技术应用的教学。这是我们为什么要编写这本书的原因之四。

本书内容

全书共11章,其中第1~7章是软件测试的基本内容,第8~11章是软件测试专题内容。用作教材时,教师可以根据本校的实际情况(课时数、相关课程的开设情况、学生素质等)灵活选择教学内容。例如,可以选择1~7章加若干软件测试专题内容。

第1章软件测试基础。本章介绍软件测试的基础知识,它是后续各章的基础,是所有读者必读的一章(不同的读者对于后续各章可以按需阅读,有些章节可以重点阅读,有些章节可以略读,有些章节可以略过)。本章还介绍了软件测试技术的发展趋势,为软件测试人员的终身学习明确了方向。

第2章软件测试管理。本章首先介绍软件测试管理的基本知识,然后介绍软件测试管理工具TestLink的应用技能。

第3章软件缺陷管理。本章首先介绍软件缺陷管理的基本知识,然后介绍软件缺陷管理工具Mantis的应用技能。

第4章单元测试。本章首先介绍单元测试的基本知识,然后介绍单元测试框架JUnit的应用技能,还介绍了白盒测试技术。

第5章集成测试。本章首先介绍集成测试的基本知识,然后介绍Jenkins的应用技能。

第6章系统测试。本章首先介绍系统测试的基本知识,然后介绍Selenium、Robot Framework的应用技能,还介绍了黑盒测试技术。

第7章性能测试。本章首先介绍性能测试的基本知识,然后介绍JMeter的应用技能。

第8章安全性测试。本章首先介绍安全性测试的基本知识,然后介绍ZAP的应用技能。

第9章Spring MVC Web应用测试。本章首先介绍Spring MVC Web应用测试的基本知识,然后介绍Spring MVC Web应用测试的方法。

第10章Android App测试。本章首先介绍Android App测试的基本知识,然后介绍Android App测试的方法,还介绍了移动应用测试工具Appium的使用基础。

第11章Web前端测试。本章首先介绍前端测试的基本知识,然后介绍前端测试工具Jasmine、Karma的应用技能,还介绍了前端测试工具Jubula的使用基础。

本书特色

本书的主要特色如下: 

(1) 课证融合。按照国际软件测试认证委员会的软件测试人员认证初级大纲选取知识点,兼顾当前软件测试岗位实战对技能的要求,精心选择教学内容。本书配套的教学资源中还提供了三套ISTQB模拟试卷。

(2) 开源自动化工具的选择。选择的开源自动化工具都是企业、软件社区真实项目中使用的工具,便于软件行业从业人员自学。

(3) 理论与实践的紧密结合。从实战的角度出发,讲解软件测试基本理论,用理论指导实践。

(4) 生动的开篇案例。大部分章节以与软件测试技术相关的实际案例作为开篇,使得对知识的讲解更生动。

(5) 最新的软件开发和测试工具介绍。附录中介绍了当前企业软件开发和测试的最新工具——Maven、Docker、Git,现有教材中很少涉及这些内容。

读者对象

高等院校计算机软件工程、软件技术、计算机应用技术、软件与信息服务等相关专业的学生,软件行业从业人员(软件测试人员、软件开发人员、项目经理等),参加ISTQB测试人员认证的备考者。