登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書

『簡體書』全栈软件测试工程师宝典

書城自編碼: 3554446
分類:簡體書→大陸圖書→計算機/網絡软件工程/开发项目管理
作者: 顾翔
國際書號(ISBN): 9787302555254
出版社: 清华大学出版社
出版日期: 2020-09-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 221.8

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
东线炼狱 : 德国反坦克兵的东线日记 : 1941—1942
《 东线炼狱 : 德国反坦克兵的东线日记 : 1941—1942 》

售價:HK$ 94.2
献给皇帝的礼物:Wedgwood瓷器王国与漫长的十八世纪
《 献给皇帝的礼物:Wedgwood瓷器王国与漫长的十八世纪 》

售價:HK$ 127.4
东京札记
《 东京札记 》

售價:HK$ 151.0
大学问·明代国家权力结构及运行机制
《 大学问·明代国家权力结构及运行机制 》

售價:HK$ 139.2
蹇蹇录:甲午战争外交秘录
《 蹇蹇录:甲午战争外交秘录 》

售價:HK$ 57.8
佛教文化十八讲
《 佛教文化十八讲 》

售價:HK$ 89.7
背弃圣约:处于考验中的美国公民宗教(社会学名著译丛)
《 背弃圣约:处于考验中的美国公民宗教(社会学名著译丛) 》

售價:HK$ 46.0
卖掉法拉利的高僧
《 卖掉法拉利的高僧 》

售價:HK$ 70.9

 

編輯推薦:
一本拿来就可以用的软件测试书籍。
一本理论联系实际的软件测试书籍。
一本干货多多、示例多多的软件测试书籍。
一本让你读了还想读的软件测试书籍。
內容簡介:
本书是作者总结十几年的软件测试的实践经验写成的,希望通过来自一线的实践知识和技能,帮助读者打开一扇通往软件测试之路的大门,寻找到解决测试问题的技术、技巧和方法,体验到测试工作中逮Bug犹如寻宝的乐趣。全书分为设计工具和管理3篇,共14章,每章的内容虽有一定的联系,但也可各自独立,读者可以根据自己的需求,按照书的内容顺序阅读,也可以根据自己的兴趣选取相关章节阅读。
關於作者:
顾翔,CCF会员,《软件测试技术实战-设计、工具及管理(第一版)》《基于Django的电子商务网站设计》作者。安卓绿色联盟2018年最受欢迎的讲师获得者。bugreport2script开源项目作者。
目錄
上篇技术篇
第1章软件测试的基本知识3
1.1软件测试的定义3
1.2软件测试术语3
1.2.1场景测试法4
1.2.2探索式测试5
1.2.3快速测试7
1.2.4基于模型的测试8
1.2.5语境驱动学派8
1.2.6肥皂剧测试9
1.2.7DevOps9
1.3软件工程模型9
1.3.1瀑布模型及其衍生模型10
1.3.2敏捷软件开发11
1.4软件测试模型12
1.4.1V模型12
1.4.2W模型13
1.4.3X模型13
1.4.4敏捷测试模型14
1.5软件测试方法14
1.6软件测试步骤16
1.7软件分析方法16
1.7.16W2H法则16
1.7.2CPIE模型17
1.7.3SBTM18
1.7.4HTSM18
1.7.5ACC模型20
1.8软件测试设计方法21目录1.8.1基于传统的测试设计方法21
1.8.2基于质量的测试设计方法21
1.8.3基于经验的测试设计方法21
1.9项目的质量三角形21
1.10本章总结22
1.10.1介绍内容22
1.10.2案例23
第2章软件测试分析与设计24
2.1软件测试分析与设计重要性分析24
2.2做好软件测试分析与设计工作需要的能力25
2.2.1思维能力25
2.2.2学习能力28
2.2.3其他能力31
2.3如何做好软件测试分析与设计33
2.3.1探索式测试33
2.3.2头脑风暴33
2.3.3阅读测试用例与缺陷报告33
2.3.4学好IT知识33
2.3.5锻炼思维的游戏34
2.4如何处理时间短、任务重的情形34
2.5软件测试分析与设计的最高境界34
2.6本章总结35
介绍内容35
第3章软件性能测试36
3.1性能测试介绍36
3.1.1性能测试的定义36
3.1.2由于性能测试没做到位而发生的缺陷36
3.1.3性能测试类型37
3.1.4性能测试指标40
3.1.5性能测试环境46
3.1.6观察性能的4个维度47
3.1.7性能测试的判断标准49
3.1.8性能测试的场景49
3.1.9性能测试的干系人49
3.1.10负载测试的二分法找拐点的方法50
3.1.11全链路压测51
3.2性能监控52
3.2.1Windows的性能监控52
3.2.2Linux的性能监控55
3.2.3Tomcat的性能监控96
3.2.4MySQL监控96
3.2.5JVM性能监控97
3.2.6APM工具简介102
3.3性能调优103
3.3.1分析方法103
3.3.2前端优化104
3.3.3程序优化104
3.3.4配置优化104
3.3.5数据库优化104
3.3.6结构优化105
3.3.7JVM调优111
3.4本章总结113
3.4.1介绍内容113
3.4.2案例115
第4章软件安全测试116
4.1软件安全知识概要116
4.1.1软件安全分类116
4.1.2软件的安全性与便捷性116
4.1.3白帽子黑客和黑帽子黑客116
4.1.4白帽子兵法117
4.1.5软件安全三要素119
4.1.6Web软件安全威胁OWASP Top 10119
4.1.7同源策略119
4.1.8HTTP简介120
4.2软件安全测试122
4.2.1XSS注入122
4.2.2CSRF注入139
4.2.3点击劫持142
4.2.4HTML5的安全146
4.2.5SQL注入156
4.2.6其他代码注入171
4.2.7HTTP参数污染176
4.2.8信息侦探179
4.2.9文件上传漏洞181
4.2.10命令行漏洞183
4.2.11XXE漏洞187
4.2.12文件包含漏洞191
4.2.13逻辑漏洞195
4.2.14加密与认证198
4.2.15DDoS攻击213
4.2.16钓鱼和网页跳转215
4.2.17ARP欺骗217
4.2.18安全响应头信息218
4.2.19其他高级技术219
4.3App安全测试概要220
4.3.1逆向工程反编译测试220
4.3.2键盘劫持221
4.3.3信息泄露223
4.4安全测试流程224
4.4.1需求阶段224
4.4.2设计阶段225
4.4.3开发阶段227
4.4.4测试阶段228
4.5本章总结228
4.5.1介绍内容228
4.5.2案例231
第5章最新软件测试技术232
5.1精准测试232
5.1.1错误代码的跟踪232
5.1.2回归用例的选取232
5.1.3测试人员的绩效考核233
5.2蜕变测试233
5.3基于微服务的契约测试234
5.4通过大数据分析软件测试日志234
5.5AI测试234
5.6本章总结235
5.6.1介绍内容235
5.6.2案例235
下篇工具篇
第6章第6章软件测试工具与自动化测试239
6.1软件测试工具与自动化测试介绍239
6.1.1普通软件测试工具239
6.1.2App移动端测试工具240
6.1.3接口测试工具240
6.1.4软件自动化测试框架240
6.1.5软件测试工具的类型241
6.2软件自动化测试基础知识243
6.2.1软件自动化测试方法及实践243
6.2.2自动化测试工具的分类和选择254
6.2.3自动化测试数据的准备255
6.3JDK和Python环境安装257
6.3.1JDK环境安装257
6.3.2Python环境安装258
6.4本章总结258
6.4.1介绍内容258
6.4.2案例259
第7章第7章单元测试框架260
7.1Java单元测试框架JUnit 4 260
7.1.1JUnit 4环境的配置260
7.1.2JUnit 4测试用例的运行和调试263
7.1.3对基本代码的详细介绍266
7.1.4对JUnit 4的高级操作267
7.1.5断言271
7.1.6使用Ant来运行JUnit272
7.1.7使用Java脚本发送测试报告274
7.2Java单元测试框架TestNG280
7.2.1在Eclipse中安装TestNG280
7.2.2Maven安装以及在Eclipse中的配置281
7.2.3建立基于Maven的单元测试项目284
7.2.4TestNG的装饰器288
7.3Python单元测试框架unittest289
7.3.1unittest概述289
7.3.2unittest的测试覆盖率分析293
7.3.3unittest的断言295
7.3.4unittest批量运行及报告产生296
7.3.5使用Python脚本发送测试报告297
7.4Python单元测试框架Pytest298
7.4.1Pytest概述298
7.4.2Pytest装饰器302
7.4.3Pytest 常用命令行选项303
7.4.4Pytest 运行并发测试304
7.4.5配合allure生成Pytest 测试报告305
7.4.6参数化310
7.4.7用Pytest最终实现简易计算器测试用例313
7.5本章总结316
7.5.1介绍内容316
7.5.2案例317
第8章性能测试工具318
8.1LoadRunner工具介绍318
8.1.1LoadRunner简介318
8.1.2LoadRunner 12性能测试工具架构318
8.1.3LoadRunner 12 测试HTTP基本功能使用技巧319
8.1.4用LoadRunner 12实现App压力测试366
8.1.5案例分析370
8.2JMeter工具介绍374
8.2.1JMeter安装374
8.2.2JMeter基本结构介绍375
8.2.3JMeter的录制376
8.2.4JMeter主要组件介绍378
8.2.5案例分析396
8.3Locust工具介绍403
8.3.1设置404
8.3.2书写代码及运行404
8.4性能分析监控工具407
8.4.1Linux性能监控工具nmon407
8.4.2Tomcat监控工具Probe409
8.5本章总结411
8.5.1介绍内容411
8.5.2案例413
第9章软件功能测试工具414
9.1UiAutomator工具介绍414
9.1.1使用UiAutomator工具的优点415
9.1.2下载和配置415
9.1.3配置开发测试代码416
9.1.4建立虚拟设备419
9.1.5UiAutomator API详解421
9.1.6案例分析460
9.2Selenium 3.x介绍464
9.2.1Selenium历史演变464
9.2.2环境安装465
9.2.3Selenium 3.x对浏览器的支持469
9.2.4API介绍470
9.2.5测试程序的优化496
9.2.6批量运行508
9.3Appium工具介绍510
9.3.1系统安装510
9.3.2运行第一个Appium测试程序511
9.3.3Appium Server Capabilities512
9.3.4API介绍515
9.3.5案例分析530
9.3.6BDD技术概要532
9.4Espresso工具介绍541
9.4.1环境的搭建541
9.4.2API介绍546
9.4.3案例分析548
9.5基于Python的requests类的接口测试549
9.5.1接口测试的初始阶段549
9.5.2测试带有CSRF Token防护的接口552
9.5.3利用Excel封装数据,基于数据驱动的接口自动化测试553
9.5.4通过测试数据优化接口测试代码554
9.5.5相对复杂的接口测试561
9.5.6用Pytest框架来实现requests类的测试自动化566
9.6其他自动化接口测试工具572
9.6.1Postman572
9.6.2HttpRunner575
9.7本章总结577
9.7.1介绍内容577
9.7.2案例579
第10章Jenkins的使用583
10.1CICD583
10.2安装584
10.3初始化配置586
10.4建立任务588
10.4.1General589
10.4.2源码管理589
10.4.3构建触发器591
10.4.4构建环境591
10.4.5构建591
10.4.6构建后操作593
10.5运行595
10.5.1自动构建595
10.5.2构建结果说明595
10.6本章总结596
10.6.1介绍内容596
10.6.2案例597
第11章软件安全测试工具598
11.1安全扫描工具598
11.1.1Burp Suite598
11.1.2AWVS609
11.1.3AppScan612
11.2专业测试工具619
11.2.1CSRFTester619
11.2.2SQL Map620
11.2.3Pangolin628
11.3信息侦探工具629
11.3.1nmap629
11.3.2DirBuster634
11.4App反向编译工具635
11.4.1Dex2jar、ProGuard和jdgui635
11.4.2apktool638
11.5本章总结639
11.5.1介绍内容639
11.5.2案例640
第12章精准测试及其工具641
12.1星云测试工具部署说明641
12.1.1系统配置要求641
12.1.2星云压缩包中的文件641
12.1.3星云测试工具部署与启动642
12.2星云工具插装编译说明654
12.2.1星云测试脚本插装编译说明654
12.2.2在Eclipse工具插装编译及打包Java项目656
12.2.3在Tomcat中配置agent服务658
12.2.4区分用户测试(设置用户标识)658
12.2.5星云客户端示波器操作说明659
12.3星云客户端功能说明662
12.3.1函数列表功能说明663
12.3.2函数调用图666
12.3.3控制流程图669
12.3.4简易控制流程图670
12.3.5星云客户端测试台功能说明671
12.3.6Bug与崩溃代码捕获673
12.3.7多版本与累计覆盖率675
12.4星云客户端企业项功能说明677
12.4.1智能的回归测试用例选取分析算法677
12.4.2测试用例的聚类分析算法679
12.4.3缺陷定位算法681
12.4.4最小测试用例集681
12.4.5下载报表682
12.5星云工具云报表平台说明683
12.5.1登录Web平台683
12.5.2项目信息683
12.5.3测试用例测试用例列表684
12.5.4测试缺陷Bug信息汇总686
12.5.5覆盖率列表688
12.5.6复杂度统计信息689
12.5.7复杂度列表690
12.6本章总结691
介绍内容691
附录A电子商务系统693
A.1用户信息模块693
A.2商品信息模块693
A.3购物车模块694
A.4送货地址模块694
A.5订单模块694
A.6订单支付模块695
A.7数据库结构695
参考文献696
內容試閱
推 荐 语实践出真知。本书贯穿测试实践,涵盖了测试基本知识、测试工具和测试案例等内容,对于一线工程师的测试实践具有良好的指导作用。
蔡立志ISOIEC JT1 SC7 注册专家全国信标委委员、上海市计算机学会软件
工程专委会主任、上海市计算机软件技术开发中心副主任这不是一本单纯的工具书或者理论书。首先,它是一本可随时查阅的指南,当测试工程师接受一项全新的任务时,可以在这里找到从概念到方法、从范畴到工具的全部内容,快速构建做好这项工作的能力框架。其次,它是一本桥梁书,书中大量的案例、实例和相关背景知识,可以使测试工程师正确理解每一个概念或问题的源头,解决问题的思路,在每个细分领域帮助测试工程师跨越最初的障碍、少走弯路,直接连接相关专业更深、更广的知识体系。最后,它还是一本新书,即使随手翻一翻,也可以了解软件测试在新业务领域遇到的新挑战,目前工具和方法的最新进展等。感谢顾翔对测试领域的知识做了如此完整、细致的梳理和加工!
杨晓慧曾任华为首席软件测试专家随着敏捷软件开发的普及,测试不再作为一个独立的阶段存在,测试人员也不再存在于一个独立的测试部门中,一些问题自然而然地涌现出来: 测试是否还有其价值?测试人员是否还有其价值?顾翔的这本《全栈软件测试工程师宝典》告诉我们,测试是一个专业性很强、不可或缺的职能: 测试的模型、分析、设计、方法、技术和工具等是一个系统工程。测试仍然有其价值,而保持专业性是测试人员的生存之道。
王国良广发银行高级敏捷教练、真北敏捷社区发起人全栈软件测试是一种能力,强调快速学习不断更新测试的思维、方法、技术。本书知识面广,有理论也有丰富的实践,对于想领略全栈测试风景的所有人员,都能从书中找到需要的知识与答案。肖利琼《软件测试之魂》作者软件研发是快速变化的领域,开发与测试相辅相成,共同进步。做好软件测试,不仅要求有坚实的基础,还要求不断学习和实践,甚至与编码开发互相融合,协同共生。今天的软件测试,已不能像过往的铁路警察,只管一段。软件测试工程师面临着全栈的要求。本书内容全面覆盖了单元测试、集成测试今天的持续集成和持续交付、系统测试等主要测试阶段,并重点分析了性能测试、安全测试等重点测试类型,还介绍了精准测试、微服务测试等测试新方向、新技术。本书与其姊妹篇《软件测试技术实战设计、工具及管理》具有同样的特点,突出操作与实践。书中系统介绍了各个测试阶段中的典型测试框架和测试工具,供测试专业人员参考。
陈晟软通动力测试专家推荐语软件测试在中国不仅仅是个岗位,也不仅仅是个行业,未来还会形成一个巨大的经济市场。学习软件测试将是对未来进行投资,全面掌握测试的技能技巧,认真地钻研测试的专业知识才能赶上发展的浪潮。本书是顾翔老师集多年的工作和培训经验全面总结的产物,里面由浅入深地阐述了软件测试的基本知识、环境搭建、专业工具以及测试的不同类型和领域。不同的人读这本书会有不同的收获,对于初学者来说是入门的手杖,对于有工作经验的人又是非常实用的工具参考书。相信读完这本书以后,你会收获满满,也会对其中提到的一些新概念、新理论引起共鸣,这种思维碰撞对您的软件测试认知将会是一个极大的提升。
吴如伟安徽绿舟科技有限公司总经理 很荣幸为顾翔老师的新书写推荐语。近年来软件测试从思想和技术都有长足的发展,但质量保证始终是软件测试的核心,软件测试始终在软件行业中占有重要的席位。顾翔老师的新书不但能与时俱进,提出很多新的观点,而且能着眼于实践。从本书的内容来看,本书更适合有一定经验的测试者阅读,这样读起来会更有感觉一些。
梅子绿盟科技研发经理本书是顾翔老师在《软件测试技术实战设计、工具及管理》上的升级,内容在保留了原本测试理论基础知识的基础上,对测试工具与实践部分的内容进行了较大幅度的更新,书中的实例讲解也都全部基于新版本的测试工具进行了重写,使读者在学习完理论部分后可以很方便地进行实践。本书几乎涵盖了软件测试的方方面面,既有代码级别的单元测试,也有API测试和GUI测试,同时还详细讲解了安全测试和性能测试。全书知识脉络清晰,理论联系实际,工具使用讲解详细,不愧为全栈软件测试工程师的宝典之作。
茹炳晟DELL EMC中国研发集团资深架构师、《测试工程师全栈技术进阶与
实践》作者、《软件测试52讲: 从小工到专家的实战心法》专栏作者本书是顾翔老师多年企业实践和培训经验的精华,在软件测试分析和设计方面,归纳总结的模型和方法适用于大部分企业测试工程师直接套用、快速上手,结合各类测试工具的基本应用知识,能辅助初学者快速进入工作状态。
陈能技广州亿能测试技术服务有限公司技术总监与顾翔老师结识多年,他可谓我的良师益友。他无论是在学术研究,还是在方法实践上对软件测试都有着很深刻的理解。同时他也是国内不可多得的全栈型软件测试专家。本书有别于其他测试书籍,其行文安排和编著视角都别具特色: 整体分为上篇和下篇。上篇技术篇除了我们熟悉的基本理论、测试设计、性能测试外,还重点介绍了安全测试以及20多种攻击方式、测试方法和防御措施,并辅以案例解析;下篇工具篇更是帮助广大测试同行,能够响应各类型测试工作的快速落地。同时本书还将时下最新测试技术如AI测试、大数据测试和持续集成工具等做出了阐述。无愧为对全栈二字的定义。本书由浅入深、脉络清晰,阅读时更是感到生动和实用,值得推荐给广大软件测试读者。
金鑫测试窝网TestWo.com主编、
广州紫鲸互联网科技有限公司CEO这是一个全新的时代,因为新概念遍布行业;这是一个倒退的时代,因为很多岗位的基础胜任水平都在发生倒退。测试是受此影响严重的细分岗位之一,大量从业者认为软件测试就是在待测产品上点、点、点的操作,而对测试岗位要求所知不多,对职业生涯前景感到忧虑。在此背景下,顾翔老师的《全栈软件测试工程师宝典》是一本可以帮测试从业人员,尤其是非科班出身的测试人员系统重塑职业认知的好书。书中结合大量实例,从基础概念、人员胜任力、测试工具的配置和使用、环境性能监控方法等方面,帮助读者塑造一个严谨的测试能力栈。
吴言咨询师、培训师、隆正信息敏捷顾问提供快而全面的质量反馈,是测试工程师的价值所在。提供一时的质量反馈容易,长期持续性地保持快速全面的反馈,需要扎实的基本功和全面的知识体系,要在业务理解和专业技能方面下苦功。
发现一个缺陷不难,难的是有能力多维度低成本地发现更多的缺陷。一本涵盖了分析设计、性能测试、安全测试和自动化测试等多维度的测试技术书籍,应该可以在帮助同行开阔视野的同时,掌握傍身之技,获得知识带来的成就感,享受测试工作带来的乐趣。
吴子腾《Selenium自动化测试之道》作者序 言 1C之父Bjarne Stroustrup深刻地指出: 人类文明运行在软件之上。随着20多年的高速发展,软件应用与软件服务已经渗透到人们衣食住行的方方面面,各行各业都对软件高度依赖。这给计算机行业带来了前所未有的机遇和空前激烈的竞争。为了应对快速变化的市场、满足用户日益增强的需求,全栈工程师的概念广受推崇。所谓全栈工程师,通俗地说就是掌握多种技术,能够独立设计并实现产品重要功能的工程师。其中,通晓多种技术是能力基础,独立工作并获得实质进展是核心目标。作为独立开发者,全栈工程师能够快速开发出功能齐备的软件;加入软件团队,他能够提升团队的研发效率,以更高的机动性应对变化的市场。
大型软件团队往往设置软件测试工程师的角色。随着行业的发展,团队也希望拥有全栈软件测试工程师: 他掌握多种测试技术和工具,能够综合应用于一个业务领域,并通过与开发工程师的有效协作来确保该领域的质量。全栈测试工程师的意义不仅是提升软件测试的绩效,更在于提升团队的整体实力。
全栈软件测试工程师需要在3个方面努力,以提升自己的实力。
1 妥善的测试设计。测试工程师需要仔细分析软件的业务领域和实现技术,针对其特点与风险,选择合理的测试技术,设计出缜密的测试方案。这要求测试工程师掌握业务知识、开发技术和测试方法,并合理利用。
2 高效的测试执行。良好的测试方案需要落实到有效的测试执行,而且在测试过程中不断演化。测试工程师需要掌握开发技术和测试工具,快速实施好的测试想法,通过持续测试,发现软件的问题。好的设计配合实用的工具,测试执行便如虎添翼。
3 坚持不懈地学习。在高速发展的软件业,新思想、新技术、新工具层出不穷。测试工程师需要敞开心胸,积极学习各种知识。学习包含学(吸纳知识)和习(应用知识)两个部分。测试工程师需要让两者相互促进,在实际工作中应用所学,一方面提高工作成绩,另一方面完善自身知识体系。
顾翔老师在软件测试领域耕耘20余年,积累了丰硕的理论成果和实践经验。《全栈软件测试工程师宝典》是顾翔老师近年来研究与实践的结晶,为测试人员进阶发展提供了扎实的建议和方法。
本书上篇重点介绍测试分析和设计的核心方法。以高难度的性能测试和安全测试为切入点,详细地展示了高效测试的方法和实践。作者多年的实战经验都沉淀其中,值得仔细品味。
下篇详细介绍多种测试工具和测试框架,并分享了测试自动化的实作与技巧。内容翔实,可操作性强。建议读者学习切合自身项目的工具,积极应用,通过实际测试来提升测试能力。
我衷心推荐本书给追求进步的软件测试工程师。希望读者在阅读时能结合自身领域仔细思考,并积极应用其中的思想、方法和工具,通过思考、实践、再思考、再实践的螺旋过程,稳步提升自身能力,在测试领域获得长足的进步。
史亮微软高级软件工程师2020年春节于西雅图软件测试的重要性序 言 2谷歌拥有大量优秀的软件工程师,但是优秀的工程师本身并不能保证产生优秀的产品和可靠的服务。我们需要高质量的程序,并且要确定它的运行与人们所预期的是一致的。软件产品早晚是要被测试的,或者是在软件上线之前由内部测试,或者是在软件上线之后被用户测试。很明显,软件最好在上线之前经过完美的测试,这样才能给用户带来美好的体验。
谷歌内部并没有正式的软件测试部门,所以对程序进行严格的测试是每个软件工程师的责任。这其中包括编写测试程序,建立测试所需要的软件架构以及与其他工程师合作进行系统测试等。人们最常用的就是自动测试,因为人工测试效率不高而且覆盖率比较低。自动测试技术是软件开发过程的一个重要组成部分,也是每个软件工程师必须掌握的一项基本技能。
下面简单地介绍一下在工作当中经常使用到的软件测试方法。
从测试的大小来分,首先是单元测试。它的特点是测试速度非常快,而且测试结果有确定性,因为所有不确定的部分通常都会被分离出来。软件工程师在写程序的同时必须写单元测试,而且必须与程序同时提交。有专门的程序健康工具来检测单元测试对所写程序的覆盖率。其次是集成测试。大多数产品或者服务都有多于一个模块进行互动,集成测试的目的是测试几个模块之间的互动。通常工程师在发出程序给同事审核的同时,单元测试和集成测试会被自动启动,而测试结果会自动发到你的邮箱。然后是端对端测试,它介于集成测试和系统测试之间。可以认为它是一种特殊的而且更大规模的集成测试。 端对端测试会启动整个系统,使它尽量接近于上线状态,每个用例(Use Case)都会测试这个系统是否满足产品的要求。由于它的运行时间较长,通常是在程序提交后运行。
从测试的目的来分,有回归测试,主要为了确定软件增加或者改变的部分没有影响软件中没有改变的部分。通常也是在程序发出审核的同时被自动启动。还有性能测试,是为了确保软件的整体性能达到设计要求,如响应时间和吞吐量。负载测试是常用的一种性能测试方法。人们还经常进行灾难测试,就是模拟各种灾难情况的发生,来测试软件是否能够应对。例如,服务器损坏,某个数据中心失去电源, 数据库损坏等。
顾翔所著的《全栈软件测试工程师宝典》非常全面,是一本不可多得的参考资料。书中引用大量实例,深入浅出地讲解了各种概念,阐述了软件测试的分析与设计,详细讲解了各种软件测试方法和各种软件测试工具的使用方法。无论是刚入职场的年轻人,还是有一定工作经验的软件工程师或软件测试师,都能从书中获得收获或者受到启发。特别是做过一些完整的软件项目,或者是有几年工作经验之后,再回过头来读这本书,你一定会有不同的感受。
无论是要成为一名优秀的软件工程师或者软件测试师,都需要不断地学习和积累,不断地思考与实践。最好工作中能有一位能不断指点自己的导师,这样能够进步更快。好的书籍,也像好的导师一样,能够让读者成长得更快。世上无难事,只怕有心人。也许每个人的天赋不尽相同,不是每个人都能成为天才,但是通过自己的努力,我们都能够成为优秀的软件人才!
王隗谷歌高级软件工程师2019年12月29日晚于纽约前言2017年6月,笔者的第一本书《软件测试技术实战设计、工具及管理》出版后,在业界受到了好评。2年多过去了,随着笔者在各个软件企业中的内训和咨询工作的展开,更加了解软件企业在实际生产过程中的痛点,企业对自动化测试、性能测试以及安全性测试的需求日益增加。另外,软件测试技术特别是软件自动化测试工具得到迅猛发展,在2017年,LoadRunner 11.0(运行在Windows 9平台)、UiAutomator 1.0、Selenium 2.0,测试工具语言主要还是Java。现在LoadRunner已经升级到了12.0,可以运行在Windows 10平台;UiAutomator升级到了2.0版本;Selenium升级到了3.0版本,并且,在2019年12月25日,Selenium 4.0隆重推出(计划赶不上变化,本书仍以Selenium 3.0为基础进行介绍)。开发语言也逐步转向Python语言。从2020年1月1日开始,官方宣布不再支持Python 2.x。于是笔者产生了对《软件测试技术实战设计、工具及管理》进行更新的想法,原本想作为《软件测试技术实战设计、工具及管理》的第2版进行出版,但是在写作过程中,笔者发现需要增加的内容还是比较多的,且原书的许多内容还是比较有用的。如果既保留原书有用的部分,再加上新内容,这本书会变厚。所以在清华大学出版社白立军的建议下,新书命名为《全栈软件测试工程师宝典》,作为《软件测试技术实战设计、工具及管理》的姊妹篇。从内容上看,《全栈软件测试工程师宝典》更适合于中高级用户使用。
本书分为上下两篇,上篇为技术篇(第1~5章),主要介绍软件测试技术;下篇为工具篇(第6~12章),主要介绍软件测试工具。
第1章软件测试的基本知识。主要介绍软件测试的基本知识,包括软件测试的定义、软件测试术语、软件工程模型、软件测试模型和软件测试方法等内容。
第2章软件测试分析与设计。比软件测试知识更重要的是软件测试思想。本章没有介绍具体的软件测试分析与设计的方法,而是介绍如何培养软件测试分析与设计的思想。
第3章软件性能测试。介绍软件性能测试的技术和方法,主要包括性能测试知识、性能监控和性能调优。
第4章软件安全测试。介绍基于Web的软件安全测试的技术和方法,主要包括软件安全知识、软件安全测试、安全测试流程。20多种Web软件安全技巧是本章的重点,主要分为原理、测试技巧和防御方式。
第5章最新软件测试技术。简要地介绍5种最新软件测试技术,包括精准测试、蜕变测试、基于微服务的契约测试、通过大数据分析软件测试日志和AI测试。前言第6章软件测试工具与自动化测试。主要介绍软件测试工具与自动化测试的理论基础、方法论以及JDK和Python环境安装。
第7章单元测试框架。现在几乎所有的自动化测试都是基于单元测试框架进行开发的。本章主要介绍基于Java的JUnit、TestNG和基于Python的unittest、Pytest单元测试框架。
第8章性能测试工具。介绍软件性能测试的工具LoadRunner、JMeter和Locust以及两种性能分析监控工具。
第9章软件功能测试工具。介绍5类基于功能的自动化测试工具,它们分别是UiAutomator、Selenium、Appium、Espresso和接口自动化测试工具。UiAutomator和Espresso分别是基于安卓的集成测试和单元测试工具;Appium是基于安卓和iOS的自动化功能测试工具,它既可以测试原生态App,也可以测试基于HTML5的App;接口自动化测试工具分为基于Python的requests类、Postman和HttpRunner,重点介绍基于Python的requests类。
第10章Jenkins的使用。主要介绍实现CICD的Jenkins工具的基本使用方法。
第11章软件安全测试工具。介绍现在业界主要使用的安全测试工具,分为安全扫描工具、专业测试工具、信息侦探工具和App反向编译工具。
第12章精准测试及其工具。介绍精准测试创始人创建的开发平台星云测试平台。
本书内容可以从头到尾顺序阅读,也可以分章单独阅读。建议第3章和第8章结合阅读,第4章和第11章结合阅读。
本书所有代码和配套讲座文件,读者可以从清华大学出版社网站本书页面的资源下载处获得下载信息。作者的个人邮件和微信号信息也可从此处下载。
在此感谢周辰晨、马鸿翔、沈晓静、吴雨青、陈玉毅、孙华琳、陈杰、郑达、李盛原,他们帮我审核了原稿;也要感谢白立军的热情鼓励支持;同样也感谢家人对我的支持,由于写这本书,失去了许多陪伴你们的时光。
说明: 书中程序运行的结果表示存储空间大小的k在程序中是小写,在正文中是大写。
由于本人水平以及时间有限,书中难免存在错误或者不足之处,请广大读者不吝指正。另外,可以加入我的微信公众号软件测试培训,共同享受软件测试给大家带来的乐趣。
顾翔2020年4月7日于上海

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.