新書推薦:
《
知宋·宋代之科举
》
售價:NT$
454.0
《
那本书是(吉竹伸介与又吉直树 天才联动!)
》
售價:NT$
454.0
《
传播的跃迁:人工智能如何革新人类的交流
》
售價:NT$
505.0
《
纯粹·古代中国的历史与制度
》
售價:NT$
286.0
《
生活来来往往 别等来日方长 新版(伍佰:“讲好了这一辈子,再度重相逢。”别等,别遗憾!珍惜当下才是最好的解药)
》
售價:NT$
265.0
《
一个英国军事顾问眼中的二战
》
售價:NT$
1265.0
《
就业、利息和货币通论(徐毓枬译本)(经济学名著译丛)
》
售價:NT$
306.0
《
瘦肝
》
售價:NT$
454.0
|
編輯推薦: |
一句话推荐
交付高质量软件的实用指南。Thoughtworks首席技术官Rebecca Parsons博士作序。
编辑推荐
对于任何希望交付高质量软件的组织来说,测试都是一项重要的学科。这本实用的书为软件开发人员和QA工程师提供了10个不同类别的测试技能的全面一站式指南。你将从Web和移动应用程序的开发和测试角度学习适当的策略、概念和实际实现知识。
本书作者提供了40多种可以立即使用的工具的示例。软件测试专业人员和初学者都将获得执行性能、安全性和可访问性测试的技能,包括探索性测试、测试自动化、跨功能测试、数据测试、移动测试等。你还将学习将它们组合到持续集成管道中以获得更快的反馈。通过本书,你将能够处理具有挑战性的开发工作流程,同时注重质量。
专家推荐
“Gayathri的书为团队理解测试的整体观点提供了必要的视角。”
——Neal Ford,
Thoughtworks主管/软件架构师/meme wrangler,《Software Architecture: the Hard Parts》的作者
“Gayathri的书应该会出现在编写(需要测试)软件的人们的桌面上。”
|
內容簡介: |
本书介绍了探索性测试、测试自动化、跨功能测试、数据测试、移动测试等。你还将学习将它们组合到持续集成管道中以获得更快的反馈。通过本书,你将能够处理具有挑战性的开发工作流程,同时注重质量。本书的主要内容有:学习如何使用各种测试类型,以在项目中获得最z高质量。遵循本书的策略和概念,探索新的测试方法。通过详细示例了解如何在工作中应用这些工具。通过广泛接触测试最z佳实践,提高你的技能和工作前景。
|
關於作者: |
Gayathri Mohan是Thoughtworks的首席顾问,在那里她为客户管理大型质量保证(QA)团队。她是一位充满激情的技术领导者,具有跨多个软件开发角色和技术和工业领域的专业知识,还担任公司的全球QA SME和办公室技术负责人。
|
目錄:
|
目录
序 1
前言 3
第1 章 全栈测试简介 .9
1.1 高质量的全栈测试 11
1.2 测试左移13
1.3 10 项全栈测试技能 16
1.4 关键知识点 19
第2 章 手动探索性测试 .21
2.1 构建模块23
2.1.1 探索性测试框架 23
2.1.2 探索功能 .32
2.2 手动探索性测试策略 36
2.2.1 了解应用程序 36
2.2.2 部分探索 .38
2.2.3 分阶段重复探索性测试 40
2.3 练习 .40
2.3.1 API 测试 41
2.3.2 Web 界面测试 48
2.4 观点:干净的测试环境 .54
2.5 关键知识点 55
第3 章 自动化功能测试 .57
3.1 构建模块59
3.2 自动化测试策略 65
3.3 练习 .66
3.3.1 UI 功能测试 67
3.3.2 服务测试 .87
3.3.3 单元测试 .92
3.4 其他测试工具 .96
3.4.1 Pact 96
3.4.2 Karate .101
3.4.3 自动化功能测试中的AI/ML 工具 101
3.5 展望 103
3.5.1 要克服的反模式 103
3.5.2 100% 自动化覆盖率! 105
3.6 关键知识点 107
第4 章 持续测试 . 109
4.1 构建模块. 110
4.1.1 持续集成简介 . 110
4.1.2 CI/CT/CD 过程 111
4.1.3 原则和礼仪 . 115
4.2 持续测试策略 117
4.3 练习 122
4.3.1 Git 122
4.3.2 Jenkins 126
4.4 四个关键指标 130
4.5 关键知识点 132
第5 章 数据测试 . 135
5.1 构建模块. 136
5.1.1 数据库 138
5.1.2 缓存 . 142
5.1.3 批处理系统 . 143
5.1.4 事件流 144
5.2 数据测试策略 146
5.3 练习 148
5.3.1 SQL .149
5.3.2 JDBC 155
5.3.3 Apache Kafka 和Zerocode 158
5.4 其他测试工具 167
5.4.1 测试容器 167
5.4.2 Deequ . 168
5.5 关键知识点 169
第6 章 视觉测试 . 171
6.1 构建模块. 172
6.1.1 视觉测试介绍 . 172
6.1.2 项目/ 业务关键用例 174
6.2 前端测试策略 176
6.2.1 单元测试 176
6.2.2 集成/ 组件测试 . 177
6.2.3 快照测试 178
6.2.4 端到端功能测试 180
6.2.5 视觉测试 180
6.2.6 跨浏览器测试 . 181
6.2.7 前端性能测试 . 182
6.2.8 可访问性测试 . 183
6.3 练习 183
6.3.1 BackstopJS 183
6.3.2 Cypress 188
6.4 附加测试工具 191
6.4.1 Applitools Eyes,一款人工智能工具 . 192
6.4.2 Storybook . 193
6.5 透视图:视觉测试挑战 194
6.6 关键知识点 195
第7 章 安全测试 . 197
7.1 构建模块. 199
7.1.1 常见的网络攻击 200
7.1.2 STRIDE 威胁模型 203
7.1.3 应用程序漏洞 . 205
7.1.4 威胁模型 208
7.2 安全测试策略 215
7.3 练习 218
7.3.1 OWASP 依赖项检查 218
7.3.2 OWASP ZAP 220
7.4 附加测试工具 227
7.4.1 Snyk IDE 插件 228
7.4.2 Talisman 预提交钩子 228
7.4.3 Chrome 开发工具和Postman .229
7.5 观点:安全是一种习惯 230
7.6 关键知识点 231
第8 章 性能测试 . 233
8.1 后端性能测试构建块 234
8.1.1 业绩、销售和周末休假是相互关联的! 234
8.1.2 简单的性能目标 235
8.1.3 影响应用程序性能的因素 236
8.1.4 关键性能指标 . 237
8.1.5 性能测试的类型 239
8.1.6 负载模式的类型 240
8.1.7 性能测试步骤 . 242
8.2 练习 245
8.2.1 步骤1:确定目标KPI 245
8.2.2 步骤2:设计测试用例 247
8.2.3 步骤3~ 步骤5:准备数据、环境和工具 .247
8.2.4 步骤6:编写测试用例脚本并使用JMeter 运行它们 .248
8.3 其他测试工具 256
8.3.1 Gatling 256
8.3.2 Apache Benchmark 257
8.4 前端性能测试构建块 258
8.4.1 影响前端性能的因素 260
8.4.2 RAIL 模型 261
8.4.3 前端性能指标 . 262
8.5 练习 263
8.5.1 WebPageTest 264
8.5.2 Lighthouse 267
8.6 其他测试工具 270
8.6.1 PageSpeed Insights 270
8.6.2 Chrome DevTools .270
8.7 性能测试策略 271
8.8 关键知识点 274
第9 章 可访问性测试 275
9.1 构建模块. 276
9.1.1 辅助功能用户角色 277
9.1.2 无障碍生态系统 278
9.1.3 示例:屏幕阅读器 279
9.1.4 WCAG 2.0:指导原则和级别 280
9.1.5 A 级符合性标准 281
9.1.6 支持辅助功能的开发框架 284
9.2 可访问性测试策略 . 284
9.2.1 用户案例中的可访问性检查表 285
9.2.2 自动化辅助功能审核工具 286
9.2.3 手动测试 287
9.3 练习 288
9.3.1 WAVE . 288
9.3.2 Lighthouse 291
9.3.3 Lighthouse Node Module 293
9.4 其他测试工具 295
9.4.1 Pa11y CI Node Module 295
9.4.2 Axe-core 296
9.5 视角:无障碍作为一种文化 . 296
9.6 关键知识点 297
第10 章 跨功能需求测试 . 299
10.1 构建模块 300
10.2 CFR 测试策略 303
10.2.1 功能性 . 304
10.2.2 可用性 . 305
10.2.3 可靠性 . 306
10.2.4 高性能 . 307
10.2.5 可支持性 307
10.3 其他CFR 测试方法 308
10.3.1 混沌工程 308
10.3.2 架构测试 312
10.3.3 基础实施测试 314
10.3.4 一致性测试 316
10.4 观点:进化和时间的考验! 320
10.5 关键知识点 . 320
第11 章 移动测试 323
11.1 构建模块 324
11.1.1 移动环境简介 324
11.1.2 移动应用架构 329
11.2 移动测试策略 331
11.2.1 手动探索性测试 .332
11.2.2 功能自动化测试 .334
11.2.3 数据测试 334
11.2.4 视觉测试 335
11.2.5 安全测试 335
11.2.6 性能测试 336
11.2.7 可访问性测试 337
11.2.8 CFR 测试 338
11.3 练习 340
11.3.1 Appium 340
11.3.2 Appium 视觉测试插件 .347
11.4 其他测试工具 351
11.4.1 Android Studio 的数据库检查器 .351
11.4.2 性能测试工具 352
11.4.3 安全测试工具 354
11.4.4 Accessibility Scanner 356
11.5 观点:移动测试金字塔 357
11.6 关键知识点 .358
第12 章 超越测试 359
12.1 测试的第一原则 359
12.1.1 缺陷预防大于缺陷检测 360
12.1.2 共情能力测试 361
12.1.3 微观和宏观测试 . 361
12.1.4 快速反馈 362
12.1.5 持续反馈 363
12.1.6 衡量质量指标 363
12.1.7 沟通和协作是质量的关键 . 365
12.2 软技能帮助建立质量第一的心态 365
12.3 总结 367
第13 章 新兴技术测试简介 369
13.1 人工智能与机器学习 . 370
13.1.1 机器学习概论 370
13.1.2 测试ML 应用程序 372
13.2 区块链 374
13.2.1 区块链概念简介 . 375
13.2.2 测试区块链应用程序 377
13.3 物联网技术 . 379
13.3.1 物联网五层架构简介 380
13.3.2 测试物联网应用程序 381
13.4 增强现实与虚拟现实 . 383
|
內容試閱:
|
前言如果你在软件行业,无论你的角色是什么,你都不可能没有经历过测试。这是因为测试是软件工程不可或缺的一个方面,贯穿于软件交付周期的每个阶段。随着当今数字化的指数级爆发,各种Web 和移动应用程序已深深融入人们的日常生活中,使用各种质量维度进行测试已成为当务之急。当我们将测试视为一门软件学科时,就能看到它是如何在其存在的几十年中经历了自己的发展轨迹,并逐渐融入了新的实践、框架、方法和工具。手动测试已经演变为手动探索性测试,并且仍然是今天测试规程的一个基本部分。与此同时,自动化测试与持续集成和持续部署(CI/CD)实践相结合的兴起,使得测试带来的价值急剧上升。除了功能用例之外,自动化测试跨功能需求(如性能、安全性和可靠性)以接收整体反馈并持续交付高质量软件是当前的关键需求。这就是为什么全栈测试在当今业界被视为一种理想的专业化。我想你来这里是因为你想完成转变,能够掌握好完整的测试技术栈,这样你就可以在工作中交付高质量的软件。首先,感谢你的承诺,其次,欢迎加入!我写这本书的原因我谦逊地告诉您,之前许多测试专家都有可能写过这本书,而不一定非得是我。也许是因为他们的职责不允许他们有时间,或者他们缺乏兴趣;无论原因如何,这个机会落到了我身上,我对此感激不尽!(尽管如果在我刚开始测试时,其他专家已经写了这本书,那将为我节省很多努力:我不得不在数百个博客中搜寻,亲自尝试数十种工具,以获得我多年来积累的测试技能。)通过我在日常工作中与客户咨询的经验,我观察到那些实施了明智的测试策略的团队大多获得了成功,而那些没有实施的团队则遭受了惨败。例如,我见过完全依赖基于用户界面的端到端测试并因维护任务而筋疲力尽的客户团队,或者只进行手动测试并面临大量生产缺陷的团队。有些团队只进行功能测试,未能发现关键的非功能性问题。总的来说,这些团队以软件质量差、团队不满意和缺乏竞争优势为特点。令我惊讶的是,在测试作为一门学科已经存在几十年的今天,对于测试实践的理解仍然存在这样的偏差。我只能推测这在很大程度上是由于行业中测试人才的匮乏,而在软件公司之间进行的持续人才争夺战中,广泛分享和传播知识是公平的。虽然有一些关于个别工具的测试教程,但在如何提升自己对当前测试趋势的技能水平,并使用不同工具进行实践示例方面,还缺乏一个连贯的叙述。对于许多小众技能,如安全性和可访问性测试,缺乏初学者阅读的易于理解的材料。本书旨在成为一个全面的资源,使测试初学者能够在当今的Web 和移动应用程序测试中将自己的技能水平提升到初级高级水平。如果您想知道我所说的初级高级是什么意思,我指的是德雷福斯技能习得模型。该模型详细阐述了一个人在获得一项技能时所经历的五个阶段:新手、初级高级、熟练、精通和专家。本书的目标是雄心勃勃的,旨在通过实际示例将读者推进到这些技能的前两个阶段,涵盖了10 个不同的测试技能。鉴于第三个阶段是熟练,而熟练需要通过广泛的实践才能达到,我相信本书尽其所能地帮助读者提升到这个阶段!谁适合阅读这本书这本书主要是为软件测试的初学者和现有的软件测试专业人员量身定做的,他们希望扩展自己的知识广度。也就是说,任何职责与测试重叠的软件角色,如应用程序开发人员或DevOps 工程师,都可以从本书中受益。在所有情况下,一个基本要求是拥有一些编码知识,尤其是Java 方面的知识,正如本书所述Java 和JavaScript的实践练习。此外,如果你是软件行业的新手,我建议你在深入阅读本书之前,先初步了解一下软件开发过程,如敏捷和瀑布方法。概览本书本书首先介绍了全栈测试,并详细阐述了交付高质量Web 和移动应用程序所必需的10 种测试技能。基于这些基础,设计了10 个可独立的技能提升章节。每一章都包含以下结构元素:? 上下文设置所必需的主题被分组在“构建模块”标题下。如果你是该技能的新手,本节将深入了解该技能所涉及的内容以及为什么需要应用该技能以及需要在何处应用该技能。? 接下来是策略部分,详细说明如何在给定情况下应用该技能。? 然后是一些练习,通过使用多种工具执行技能的分步说明指导读者。? 在某些章节中还有一个“探索更多工具”部分,其中将进一步讨论与练习部分中讨论的工具类似的平行工具,或其他可能在练习过程中为读者增加价值的工具,以丰富读者对技能的掌握。? 最后,根据个人观察和经验,你可以在其中一些章节中找到我的观点,然后是关键要点,这些要点简要概述了每一章中的经验教训。在10 个技能提升章节之后,本书讨论了如何在第一原则和个人软技能的帮助下进一步测试。此外,还为热情的读者提供了一个额外的章节,作为新兴技术测试的介绍。本书简要介绍了AI/ML、区块链、物联网和AR/VR 这四种新兴技术的测试,旨在帮助你开始学习这些领域的知识。
|
|