“软件测试”课程是信息管理与信息系统专业的计算机方向核心课程之一。一直以来,我想找一本软件测试领域既有理论又有实践的书,最后有幸找到王顺教授主编的《软件测试工程师成长之路——软件测试方法与技术实践指南Java EE篇(第3版)》。这本书是目前国内软件测试领域理论与实践结合较好的教材,比较适合目前本科教学方案所要求的理论与实践相结合的目标。
但是在软件测试实验与实训课上,我发现这本书对于实训的指导力度还不够。我联系了王顺教授,提出了自己的想法:最好能有一个团队开发项目,并能将项目进行模块化,让更多的学生对实际项目研发有初步印象,并在此基础上进行测试,以案例的方式让学生对软件测试有更深的了解。
也是机缘巧合,刚好我有一个数字化旅游平台研发项目,于是和王顺教授商量,以数字化旅游平台研发为驱动目标,以王顺教授为项目经理,带领学生,对软件架构、数据库设计、代码审计、文档编写、软件测试、系统上线、服务器配置与加固等整个过程进行指导,并将该平台划分为景区智能导航系统、景点互动展示系统、到此一游电子刻字系统、景区特产优惠购、个性化旅游空间服务平台等模块,让学生以团队方式选择模块进行参与。经过半年的努力,数字化旅游平台研发项目基本完成。感谢王顺教授,经过他的指导,学生对软件架构、开发、测试等过程有了初步掌握,并取得了不小的进步。看到学生进步,我又产生了一个想法:能不能把这个过程记录下来,让全国各大高校学生,尤其是信息管理与信息系统专业的学生,以项目案例驱动的方式学习“软件测试”课程,把软件测试实验与实训课程落到实处。
本书就这样在我的脑海中形成,当然更多的是考虑到这样方便自己以后教学(我想这也是广大教师的需要)。经过和王顺教授的沟通,结合软件测试工程师实际工作,我们认为作为软件测试工程师最核心也是最基本的是做好如下三件事。
(1)Find Bug,即寻找软件缺陷的本领。测试工程师需要对软件缺陷非常敏感,能够快速找到软件缺陷并能准确地汇报缺陷。
(2)Design Test Case,即设计优秀的测试用例。这需要测试工程师对一个软件或一个模块能够准确把握,严密地设计出优秀的测试用例。
(3)Use Test Tool,即使用测试工具。选择适合项目的测试工具,取决于测试工程师对测试工具的敏感程度。在实践项目中,如有需要,可以对工具进行二次开发与扩展,以帮助项目提高质量,快速找到软件缺陷。虽然现在测试工具非常多,但是只要多使用,多尝试,就能找到适合当前项目或应用场景的好工具。
既然软件测试工程师的核心技能体现在上述三个方面,那么就应该将这三项技能最大限度地展示给学生,以及那些即将进入或已经进入软件测试行业的工程师们。
本书可以作为全国各大高校软件测试与质量保证实验与实训教程,全国各大软件公司软件测试工程师入职教程,全国各大软件培训机构软件测试工程师培训实战教程,想参加国际软件测试外包或众包人员的测试技能提高指导书籍,想从事软件测试工作或已经成为软件测试工程师成员的工作指导书,软件开发工程师、软件项目管理师、系统架构师研发高质量软件参考书,言若金叶软件研究中心“软件工程师认证”测试工程师方向认证指导书籍,言若金叶软件研究中心“全国大学生软件实践与创新能力大赛”参赛指导书籍。
本书根据软件测试工程师的核心工作与技能要求分为三篇进行讲解。
第一篇:寻找软件缺陷实训 。本篇分为5大实验方向,分别是软件安全测试训练、软件界面测试训练、软件功能测试训练、软件技术测试训练、软件探索测试训练。每个方向20个Bug,共100个经典Bug。通过众多资深工程师对Bug技术的经验分享以及上百个经典软件缺陷的展示与分析,力图让读者做到“熟读唐诗三百首,不会作诗也会吟”。
第二篇:设计测试用例实训 。本篇分为10大实验方向,分别是设计智慧城市类测试用例、设计在线会议类测试用例、设计在线协作类测试用例、设计电子商务类测试用例、设计电子书籍类测试用例、设计手机应用类测试用例、设计注册/登录白盒测试用例、设计好友/粉丝白盒测试用例、设计积分/游记白盒测试用例、设计回归测试类测试用例。既有传统的黑盒(基于软件功能)测试用例设计,也有白盒(基于代码本身)测试用例设计,还有回归(基于局部变动)测试用例设计。通过对众多系统的测试用例设计与分析,帮助读者对测试用例有一个全面的认识,引导读者从模仿到实践再到创新。
第三篇:使用测试工具实训 。本篇分为6大实验方向,分别是自动化测试工具JMeter训练、自动化测试工具GT训练、安全渗透测试工具ZAP训练、安全集成攻击平台Burp Suite训练、性能测试工具wrk训练、性能测试工具WebLOAD训练。既有自动化测试工具,也有Web安全扫描渗透工具和性能测试工具。引起读者对软件测试工具的兴趣,正确使用工具可以事半功倍,否则会裹足不前,影响项目进程。
本书由陈英、王顺、王璐、严兴莉编著。具体编写分工为:第一篇由陈英、王顺合作完成;第二篇的实验6、7由王璐完成,实验12~14由严兴莉完成,实验8~11、15由陈英完成;第三篇的实验16由王璐完成,实验17由甘佳完成,实验18、19由陈英和王顺合作完成,实验20、21由严兴莉完成。为保持书籍章节的连贯性,王顺和陈英进行了统稿。为了使本书能尽快面市,浙江农林大学暨阳学院信管专业的黄成龙、徐滢同学,言若金叶测试国际团队成员刘倩斓、徐福东工程师对书中展示的所有经典Bug进行了整理、核对与复现,以方便读者能很容易地重现Bug,加深对软件缺陷的理解;同时对测试用例与测试工具进行实验。4位成员从不同的角度阅读、重现实验,保证了可操作性。
书中使用的数字化旅游平台由王顺教授带领浙江农林大学暨阳学院信管专业部分师生完成,包括2014级的孙蒙盛、郑夏茹、张梨、卢夏婷、许梦瑶、郑友新,2015级的李娇,2016级的梅俊峰、黄成龙、张成帆、唐勇、叶慧茹、骆伶俐、钟承娣、曾卓、周汪涛、杨丽娜、李泽慧等。
感谢南京大学、合肥工业大学、南京电子技术研究所、重庆邮电大学、中山大学、河北师范大学汇华学院、郑州轻工业学院、济宁学院、西南科技大学、安徽师范大学、内蒙古农业大学、四川理工学院、乐山师范学院、广州番禺职业技术学院、南海东软信息技术学院、广东环境保护工程职业学院、大连东软信息学院等高校师生积极参加言若金叶软件研究中心举办的全国大学生软件实践与创新能力大赛。书中部分经典的Bug与设计优良的测试用例取材来源于学生的参赛作品。
为了使读者容易复现书中丰富的Bug实例与测试技巧,所举例子主要从中心创建的各大网站中提取(避免其他网站因修改或删除不能访问)。
为了让读者进行Client测试、跨平台测试体验,跨地域合作项目在线跟踪系统(http://www.worksnaps.net)和工时卡系统(http://www.workcard.net)都支持三个平台(Windows、Linux和Mac)的下载安装与测试。
感谢清华大学出版社提供的这次合作机会,使本实践教程能够早日与大家见面。
感谢团队成员的共同努力,因为大家都为一个共同的信念“为加快祖国的信息化发展步伐而努力”而紧密团结在一起。感谢团队成员的家人,是家人的无私关怀和照顾、最大限度的宽容和付出成就了今天这一教程。
由于编者水平与时间的限制,书中难免存在不足之处,如果在使用本书过程中有什么疑问,请发送E-mail到tsinghua.group@gmail.com或roy.wang123@gmail.com,编者团队将会及时给予回复。
如果想得到更多言若金叶软件研究中心编写的软件实践类教程,请访问http://books.roqisoft.com。本书的官网是http://books.roqisoft.com/xtest,欢迎大家进入官网查看最新的书籍动态,下载配套资源,与我们进行更深层次的交流和分享。
陈英
2018年5月