软件测试概念与实践 [Software Testing: Concepts and Operations]

软件测试概念与实践 [Software Testing: Concepts and Operations] 下载 mobi epub pdf 电子书 2024


简体网页||繁体网页
[美] Ali Mili,Fairouz Tchier 著,颜炯 译

下载链接在页面底部
点击这里下载
    


想要找书就要到 新城书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

发表于2024-11-23

图书介绍


出版社: 清华大学出版社
ISBN:9787302441496
版次:1
商品编码:11973515
包装:平装
外文名称:Software Testing: Concepts and Operations
开本:16开
出版时间:2016-08-01
用纸:胶版纸
页数:272
字数:397000


类似图书 点击查看全场最低价

相关图书





图书描述

产品特色

编辑推荐

适读人群 :计算机相关人士

  软件测试概念与实践

  软件测试入门指南

  Amazo* 5星畅销书

内容简介

  本书探讨了软件测试面临的主要问题,软件测试概念、原则和演化过程,涵盖了软件质量工程和测试概念、测试数据生成、测试部署、测试输出分析,以及软件测试管理。

  本书特色

  ◆ 本书没有将软件测试当作一项孤立的技术,而是将其视为完整的软件验证和确认原则的组成部分。

  ◆ 根据边际效用递减规律,建议在同一个数学模型基础上开展程序测试和程序正确性验证工作,从而能够协调应用两种技术。

  ◆ 定义了软件缺陷概念和相对正确性概念,指出相对正确性是如何描述单调缺陷去除的。

  ◆ 将软件测试活动描述为一种面向目标的活动,研究了如何根据选择的测试目标指导测试活动。

  ◆ 涵盖了软件测试生命周期全过程,包括测试数据生成、测试预言设计、测试驱动设计,以及测试输出分析。

  对软件质量和软件工程专业学生而言,《软件测试概念与实践》一书是非常有用的,因为本书为学生提供了职业生涯的基础知识,而且这些基础知识在各种原则不断演化的条件下也不会过时。


内页插图

目录

第Ⅰ部分 软件测试介绍

第1章 软件工程:一种与众不同的原则 3

1.1 年轻而动荡的原则 3

1.2 压力下的行业 6

1.3 规模庞大的复杂产品 7

1.4 昂贵的产品 10

1.5 缺乏重用实践 12

1.6 容易出错的设计 13

1.7 矛盾的经济学 14

1.7.1 劳动力密集的产业 15

1.7.2 缺少自动化 15

1.7.3 质量控制手段有限 16

1.7.4 不平衡的生命周期成本 16

1.7.5 不平衡的维护成本 17

1.8 本章小结 19

1.9 参考书目注释 19

第2章 软件质量属性 21

2.1 功能属性 22

2.1.1 布尔属性 22

2.1.2 统计属性 23

2.2 操作属性 25

2.3 可用性属性 27

2.4 业务属性 28

2.5 结构属性 30

2.6 本章小结 32

2.7 练习 32

2.8 参考书目注释 33

第3章 软件测试生命周期 35

3.1 软件工程生命周期 35

3.2 软件测试生命周期 41

3.3 软件测试的V模型 48

3.4 本章小结 51

3.5 参考书目注释 51

第Ⅱ部分 软件测试基础

第4章 软件规约 55

4.1 坚实可靠规约的原则 57

4.2 关系数学 58

4.2.1 集合与关系 58

4.2.2 关系操作 59

4.2.3 关系的属性 61

4.3 简单的输入输出程序 63

4.3.1 表达规约 63

4.3.2 对规约排序 67

4.3.3 规约生成 69

4.3.4 规约确认 75

4.4 可靠性和安全性 83

4.5 基于状态的系统 86

4.5.1 关系模型 86

4.5.2 公理表达 89

4.5.3 规约确认 98

4.6 本章小结 101

4.7 练习 101

4.8 问题 106

4.9 参考书目注释 109

第5章 程序正确性和验证 111

5.1 正确性的定义 113

5.2 正确性:命题 117

5.2.1 正确性和精化 118

5.2.2 集合论的特征 120

5.2.3 解释 121

5.3 验证 124

5.3.1 公式样例 126

5.3.2 推理系统 128

5.3.3 用于解释的示例 133

5.4 本章小结 138

5.5 练习 139

5.6 问题 141

5.7 参考书目注释 141


第6章 失效、错误和缺陷 143

6.1 失效、错误和缺陷 143

6.2 缺陷和相对正确性 146

6.2.1 缺陷,一个含糊的概念 146

6.2.2 相对正确性 148

6.3 视情况而定的缺陷和确定性缺陷 151

6.3.1 视情况而定的缺陷 151

6.3.2 单调的缺陷去除 155

6.3.3 一个单调缺陷去除的框架 161

6.3.4 确定性缺陷 162

6.4 缺陷管理 164

6.4.1 多道防线 164

6.4.2 混合确认 166

6.5 本章小结 171

6.6 练习 172

6.7 问题 174

6.8 参考书目注释 174

第7章 软件测试分类 175

7.1 联合测试存在的问题 175

7.2 分类方案 176

7.2.1 主要属性 178

7.2.2 次要属性 183

7.3 测试分类 190

7.3.1 单元级测试 190

7.3.2 系统级测试 192

7.4 练习 194

7.5 参考书目注释 195

第Ⅲ部分 测试数据生成

第8章 测试生成概念 199

8.1 测试生成和目标属性 199

8.2 测试输出 203

8.3 测试生成需求 206

8.4 测试生成准则 211

8.5 基于经验的充分性评价 216

8.6 本章小结 222

8.7 练习 223

8.8 参考书目注释 225

8.9 附录:变异程序 226

第9章 功能准则 229

9.1 域划分 229

9.2 使用表格表达式生成测试数据 237

9.3 基于状态的系统的测试生成 244

9.4 随机测试数据生成 255

9.5 将测试数据选择比喻为一次旅行 260

9.6 本章小结 263

9.7 练习 264

9.8 参考书目注释 267

第10章 结构化准则 269

10.1 路径和路径条件 270

10.1.1 执行路径 270

10.1.2 路径函数 273

10.1.3 路径条件 279

10.2 控制流覆盖 281

10.2.1 语句覆盖 281

10.2.2 分支覆盖 284

10.2.3 条件覆盖 286

10.2.4 路径覆盖 289

10.3 数据流覆盖 296

10.3.1 定义和使用 296

10.3.2 测试生成准则 300

10.3.3 测试准则的层次结构 304

10.4 基于缺陷的测试生成 305

10.4.1 感知缺陷 306

10.4.2 为感知缺陷选择输入数据 311

10.4.3 针对错误传播选择输入数据 313

10.5 本章小结 314

10.6 练习 315

10.7 参考书目注释 319

第Ⅳ部分 测试部署与分析

第11章 测试预言设计 323

11.1 测试预言设计的困境 323

11.2 从规约到预言 327

11.3 基于状态的软件产品的测试预言 332

11.3.1 从公理到测试预言 333

11.3.2 从规则到预言 335

11.4 本章小结 342

11.5 练习 343

第12章 测试驱动设计 347

12.1 选择一种规约 347

12.2 选择一种过程 350

12.3 选择一种规约模型 352

12.3.1 随机测试生成 353

12.3.2 预先生成的测试数据 360

12.3.3 缺陷和缺陷检测 365

12.4 使用符号执行进行测试 370

12.5 本章小结 376

12.6 练习 376

12.7 参考书目注释 383

第13章 分析测试输出 385

13.1 逻辑解释 386

13.1.1 具体测试 386

13.1.2 符号测试 388

13.1.3 具体-符号测试 389

13.2 随机解释:缺陷密度 391

13.3 随机解释:失效概率 395

13.3.1 缺陷与缺陷并不相同 395

13.3.2 定义/量化可靠性 398

13.3.3 软件可靠性建模 400

13.3.4 认证测试 405

13.3.5 可靠性估计和可靠性增长 406

13.3.6 可靠性标准 411

13.3.7 作为经济函数的可靠性 412

13.4 本章小结 422

13.5 练习 423

13.6 问题 425

13.7 参考书目注释 426

第Ⅴ部分 软件测试管理

第14章 软件测试的度量 429

14.1 缺陷倾向性 431

14.1.1 圈复杂度 431

14.1.2 规模 433

14.2 缺陷可检测性 434

14.3 错误可检测性 439

14.4 错误可掩盖性 442

14.5 避免失效 445

14.6 容错 447

14.7 解释示例 449

14.7.1 圈复杂度 450

14.7.2 规模 450

14.7.3 状态冗余 450

14.7.4 函数冗余 451

14.7.5 非内射性 452

14.7.6 不确定性 452

14.7.7 小结 453

14.8 本章小结 454

14.9 练习 455

14.10 参考书目注释 456

第15章 软件测试工具 457

15.1 分类方案 457

15.2 脚本工具 459

15.2.1 CppTest 459

15.2.2 SilkTest 460

15.3 录制-回放工具 462

15.3.1 TestComplete 462

15.3.2 Selenium IDE 463

15.4 性能测试工具 465

15.4.1 LoadRunner 465

15.4.2 Grinder 466

15.4.3 QF-Test 467

15.4.4 Appvance PerformanceCloud 468

15.4.5 JMeter 469

15.5 预言设计工具 471

15.5.1 JUnit 471

15.5.2 TestNG 472

15.6 异常检测 473

15.6.1 Rational Purify 473

15.6.2 Astree 474

15.7 协同工具 475

15.8 本章小结 476

第16章 测试产品线 477

16.1 PLE:流水线重用模型 477

16.2 测试问题 482

16.3 测试方法 485

16.4 解释 486

16.4.1 领域分析 486

16.4.2 领域建模 490

16.4.3 参考架构 494

16.4.4 领域实现 496

16.4.5 在领域工程阶段进行测试 503

16.4.6 在应用程序工程阶段进行测试 508

16.5 本章小结 511

16.6 练习 512

16.7 问题 513

16.8 引用的参考书目 513

参考文献 515


前言/序言

  前 言

  软件工程是唯一一种产品测试成为主要技术,同时产品测试还得到了开发机构关注,并成为一项具有重要成本因素的工程原则。这种现状的产生来源于以下几点原因:

  ● 软件测试获得了极大关注的首要原因是软件产品的规模和复杂性,其导致软件产品设计成为一种高风险且容易出错的工作。

  ● 第二个原因是软件产品缺少一种标准开发过程,这就意味着产品质量无法通过过程控制进行保障,因此只能通过产品控制来保证产品质量。

  ● 第三个原因是缺少能够通过静态产品分析来保证产品质量并能适应产品规模变化的实用方法,因此只能通过动态方法来保证产品质量。

  ● 其他原因还包括:缺少一种通用的重用规则,缺少适用于不同产品规模且能够保证产品正确性的开发方法,以及在产品开发、维护、演化过程中无处不在的规约变更,等等。

  本书的主题是研究软件测试;与当前其他同一主题的众多书籍相比,本书在以下几个方面具有突出的特点:

  ● 将软件测试视为软件质量保障的有机组成部分。我们将软件测试作为软件质量保障总体策略中的一个组成部分,而软件质量保障总体策略还包含了多项其他技术。边际效用递减规律(The law of diminishing returns)支持使用多种不同的互补性技术,而且需要将不同技术应用于能够得到最大投入回报的场合。这样,软件测试才能在一个包含了其他方法、更为广泛的语境下得到更深入的研究,而不仅仅是作为一个孤立的技术集进行研究。

  ● 将软件测试视为静态分析的一种补充技术。在软件工程发展早期,针对有效性、可伸缩性、易用性等方面内容,人们对软件测试和静态程序分析的优势进行了丰富多彩的讨论。我们的立场是:某种技术在某些场合下能够发挥最大的效能,而在其他场合下可能就没有那么有效了;另一种常见的情况是,当我们感觉某种技术很难应用的时候,实际上往往不是因为技术本身存在问题,而是因为基于错误的规约类型使用了这项技术。为了保证产品正确性,不应该执着于选择某一种规约。实际上,我们应该将一种复杂的规约分解为不同的组成部分,然后将不同的组成部分映射到最为合适的技术。本书的第6章讨论了这个问题。

  ● 将软件测试视为一个系统化的逐步完成的过程。早期的软件测试被视为一种证明程序缺陷存在的方法,而不是一种证明程序缺陷不存在的方法。实际上,这种看法是不恰当的,因为测试可以用于多种目的,这一点我们将在第7章讨论。无论这种看法是否合适,它都带来了两种后果:第一,人们认为软件测试的唯一目的是暴露缺陷、诊断程序和去除缺陷;第二,结果是,人们认为测试仅仅是生成测试数据的过程,特别是生成那些能够最大可能地暴露程序缺陷的测试数据。与这些看法不同的是,我们认为测试是一个多步骤的过程,包括识别与分析测试目标、测试数据生成、测试预言设计、测试驱动程序设计、测试部署、测试输出分析。我们将用不同的章节分别讲解这些内容。

  ● 将软件测试视为一个形式化或可形式化的过程。对被测试的软件产品或软件产品规约而言,测试所需的分析工作量比较小,因此测试往往被视为一项可以随意执行的工作,并且无须考虑形式化问题。但是,我们却认为测试应该与静态程序分析一样严格。为有效地进行测试,测试人员必须具备软件规约、程序正确性、相对正确性(relative correctness)、缺陷的含义、缺陷去除等知识。这些内容将在第6章详细讨论。

  ● 将软件测试视为一个面向目标的活动。我们认为,软件测试不仅是查找和去除缺陷,还可能具有更广泛的目标,包括诸如估计缺陷密度、估计可靠性、可靠性认证(certification)等。这些内容将在第7章详细讨论。

  本书的内容来自软件测试及质量保障课程的讲义,因此主要用于课堂使用。当然,本书也可以满足软件工程师的实际工作需要和软件工程研究人员的研究需求。本书分为五个主要部分,每个部分包括了3~4章内容,全书共计16章。

  ● 第Ⅰ部分在软件工程的语境下比较宽泛地介绍软件测试,并且将探讨软件测试希望达到或确定的质量目标,还会探讨软件测试的生命周期。

  ● 第Ⅱ部分介绍软件测试的数学基础,包括软件规约、程序正确性和程序验证、软件可依赖性概念以及软件测试分类学。一般的软件测试书籍很少像本书这样讨论规约、验证、可依赖性等内容。本书这样做是基于以下原因:

  首先,我们相信,在没有深入理解软件规约的前提下,是不可能研究软件测试的,因为软件规约规定了被测试程序的功能属性,而这些功能属性也是测试预言设计的基础。

  其次,当我们在产品认证(product certification)或者验收测试(acceptance testing)的语境下执行程序测试时,最受关注的是被测试的程序是否正确,而我们必须理解“正确”到底是指什么。

  第三,如果打算协同使用动态程序测试和静态程序分析,并且希望获得比单独用一种方法更为全面的结论,那么就必须在同一个数学模型下使用这些方法。

  第四,从一个程序中去除缺陷的行为是测试的核心任务,这个行为只能通过定义相对正确性(relative correctness)的属性来建立模型。相对正确性是指当程序中的缺陷被去除后,程序将更正确。因此,相对正确性只能在理解了(绝对)正确性属性的前提下进行定义。

  软件测试技术分类学是指将软件测试技术根据一组准则进行分类,特别是软件测试的目的:在指导软件测试的过程中,识别不同的软件测试目的是很重要的,不同的软件测试目的将影响测试生命周期的全部阶段,包括测试数据生成、测试预言设计,乃至测试部署和测试输出分析。

  ● 第Ⅲ部分研究软件测试过程中最为吸引研究人员和测试人员的步骤,这个步骤常常被视为软件测试过程中唯一有意义的工作:测试数据生成。在这一部分中,我们将简要讨论测试数据生成的一些通用概念,然后研究测试数据生成的两种通用准则,也就是功能准则(第9章)和结构化准则(第10章)。我们在讨论测试数据生成时,不仅要考虑能够直接从初始状态 软件测试概念与实践 [Software Testing: Concepts and Operations] 下载 mobi epub pdf txt 电子书 格式


软件测试概念与实践 [Software Testing: Concepts and Operations] mobi 下载 pdf 下载 pub 下载 txt 电子书 下载 2024

软件测试概念与实践 [Software Testing: Concepts and Operations] 下载 mobi pdf epub txt 电子书 格式 2024

软件测试概念与实践 [Software Testing: Concepts and Operations] 下载 mobi epub pdf 电子书
想要找书就要到 新城书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

用户评价

评分

good good very very good

评分

good good very very good

评分

书比较小,厚,内容还没细看

评分

质量好

评分

书比较小,厚,内容还没细看

评分

还没看

评分

还没看

评分

质量好

评分

good good very very good

类似图书 点击查看全场最低价

软件测试概念与实践 [Software Testing: Concepts and Operations] mobi epub pdf txt 电子书 格式下载 2024


分享链接




相关图书


本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

友情链接

© 2024 book.cndgn.com All Rights Reserved. 新城书站 版权所有