您好,欢迎光临有路网!
软件测试实战教程
QQ咨询:

软件测试实战教程

  • 作者:高科华 高珊珊
  • 出版社:清华大学出版社
  • ISBN:9787302521921
  • 出版日期:2019年04月01日
  • 页数:321
  • 定价:¥49.50
  • 分享
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书是一本软件测试技术方面的实战教程,编写时参照国际软件测试认证委员会的软件测试人员认证课程大纲选取知识点,兼顾当前软件测试岗位对技能的要求。本书既介绍了经典的软件测试基础理论,又介绍了新的测试方法。书中大部分章节以与软件测试技术相关的实际案例作为开篇,使得对知识的讲解更生动。主要内容包括: 软件测试基础、软件测试管理、软件缺陷管理、单元测试、集成测试、系统测试、性能测试、安全性测试、Spring MVC Web应用测试、Android App测试、Web前端测试等。 本书的大特点是将理论与实际操作有机结合在一起,实训任务丰富、图文并茂、深入浅出、讲解详尽、实践性强。 本书既可作为高等院校计算机软件工程、软件技术、计算机应用技术、软件与信息服务等相关专业的教材,也可作为广大软件行业从业人员(软件测试人员、软件开发人员、项目经理等)进行软件测试实践的培训教材,还可作为参加ISTQB测试人员认证的辅助教程。
    文章节选
    第5章集成测试
    本章主要内容 集成测试简介 集成测试工具 Jenkins演练 能力拓展: 在Docker中运行Jenkins
    下面看看开源项目OpenOLAT是如何组织软件开发过程的。以OpenOLAT 12.4为例,OpenOLAT并没有停止脚步。仍然在不断地发现缺陷、修改缺陷,这并不表明OpenOLAT是不成熟的。为什么?我们知道,软件测试有一条原则——“软件测试是为了找到软件的缺陷,而不是证明软件没有缺陷”。当发现缺陷,对缺陷进行修改后,需要进行回归测试,不仅需要测试修改后的单元,还需要测试与修改后的单元相关的单元。OpenOLAT是如何管理软件开发过程的呢?它使用了集成测试工具Hudson,把单元测试(JUnit)、缺陷跟踪(JIRA)整合起来。在http://hg.openolat.org/openolat124/可以看到OpenOLAT的代码变更情况。 本章首先介绍集成测试的基本知识,然后介绍持续集成测试工具Jenkins的使用方法。 5.1什么是集成测试



    在单元测试以后,需要将经过单元测试的单元集成在一起,组成软件的部件或子系统,直*得到整个系统。在单元测试时,我们关注更多的是单元内部的组成。由单元组成的部件或子系统还必须经过测试,以验证不同的单元集成在一起能够相互配合共同实现概要设计时设定的目标。 5.1.1集成测试简介 1. 集成测试概念
    V模型中的第二个测试级别是集成测试。集成测试关注的是单元与单元之间是否能协同工作。集成测试与单元测试密切相关,单元测试是集成测试的前提,在做单元测试时也可以做某种形式的集成测试——模拟集成测试。 集成测试依据:  软件和系统概要设计文档。  系统架构。  工作流。  用例。 典型集成测试对象:  组件与组件是否能协同工作形成子系统。  全局数据结构。  组件之间的数据交换。  子系统内组件与组件的接口、子系统与外界的接口。  系统配置和配置数据。 集成测试主要是对组件之间的接口进行测试,以及测试一个系统内不同部分的相互作用,比如操作系统、文件系统、硬件或系统之间的接口。 对于集成测试,可以应用多种集成级别,也可以根据不同的测试对象规模采用不同的级别,例如,以下两种集成测试级别:  组件集成测试,对不同的软件组件之间的相互作用进行测试,一般在组件测试之后进行。  系统集成测试,对不同系统或软硬件之间的相互作用进行测试,一般在系统测试之后进行。在这种情况下,开发组织/团体通常可能只控制自己这边的接口,这就可能存在风险。按照工作流执行的业务操作可能包含一系列系统,因此跨平台的问题可能*关重要。 集成的级别越高,就越难在某一特定的组件或系统中定位缺陷,测试的风险就越大,将会花费更多的额外时间去发现和修复这些缺陷。 2. 集成测试策略 随着集成测试的不断实践,人们对集成测试的认识也在不断深化。因此,人们提出了各种集成测试测略。历史总是这样,我们在前人的基础上,发现不足,进行改进并有所创新。集成测试策略的发展过程也不例外。 1) 大爆炸集成测试 *容易想到的一种集成测试策略是大爆炸集成测试。大爆炸集成测试也称为一次性组装或整体拼装测试,是一种非增量式集成测试测略。这种集成测试策略的做法就是把所有通过单元测试的模块一次性集成到一起进行测试,是软件测试早期人们普遍采用的一种集成测试策略,那时软件开发通常是按照编码、单元测试、集成测试的顺序进行的,也就是说,是在所有的代码写完后,所有的单元都经过了单元测试才进行集成测试。随着新的软件开发方式的出现,例如,测试驱动开发的兴起,大爆炸集成测试不能满足新的软件开发方式的需要,就出现了渐进式集成测试策略。大爆炸集成测试策略的优点是: 简单、易操作; 可以并行开展集成测试工作。大爆炸集成测试策略的缺点是: 软件缺陷定位困难; 成功进行有效集成测试的可能性较小。 大爆炸集成测试如图5.1所示。


    图5.1大爆炸集成测试示意图

    2) 自顶向下集成测试 自顶向下集成测试是一种渐进式集成测试策略,从系统层次结构图的*顶层模块开始按照层次结构图,逐层向下进行组装和集成测试。自顶向下集成测试是按照系统层次结构图,以主程序模块为**,从顶层控制(主控模块)开始,自上而下按照深度优先或者广度优先策略,对各个模块一边组装一边进行测试。 采用同软件设计顺序一样的思路对被测系统进行测试,来验证系统的功能性和稳定性。自顶向下集成测试较好满足了测试驱动开发的需要。自顶向下集成测试策略的思想提出的时间比较早,但是,在软件测试的早期,人们是在所有代码编写完成之后才进行自顶向下集成测试的。尽管所有的代码模块都已经编写完成,但是我们先测试主控模块,为了隔离缺陷,方便找到产生缺陷的模块,我们用所谓的桩模块代替实际的模块。然后一点一点地加入实际模块,进行集成测试。在测试驱动开发时,可以在还没有编写代码时就进行自顶向下集成测试,以便验证软件设计的正确性。自顶向下集成测试策略的优点是: 采用测试驱动开发的自顶向下的集成测试,可以较早验证软件设计的正确性; 支持缺陷隔离,容易定位软件缺陷; 提高了进行有效集成测试的可能性。自顶向下集成测试策略的缺点是: 桩模块的开发和维护的成本高; 底层模块的缺陷发现得太晚,有可能影响上层模块的频繁修改,因为缺陷往往是从底层向上层扩散的。 自顶向下集成测试如图5.2所示。

    图5.2自顶向下集成测试示意图

    3) 自底向上集成测试 自底向上集成测试也是一种渐进式集成测试策略。与自顶向下集成测试策略不同的是,自底向上集成测试从系统层次结构图的*底层模块开始,按照层次结构图,逐层向上进行组装和集成测试,不必等到所有的单元都经过了单元测试以后才进行集成测试,而是把*密切相关的单元集成为一个规模更大的部件,进行集成测试,再把这些部件集成到上一层更大的部件,进行集成测试,直到集成为整个系统。简单地说,就是一点一点地集成。自底向上集成测试策略符合软件测试的一条原则——“软件测试活动应当尽早开始”。在被测模块还没有编写完成时,就可以对被测模块进行测试,编写一个驱动程序,测试组成它的各模块的是否能够协同达到概要设计目标。自底向上集成测试策略的优点是: 较早验证底层模块,防止缺陷向上扩散; 可以并行进行集成测试; 支持缺陷隔离,容易定位软件缺陷; 提高了进行有效集成测试的可能性; 驱动模块的开发和维护成本比桩模块的开发和维护的成本低。自底向上集成测试策略的缺点是: 需要开发维护驱动模块; 对高层的验证较晚,软件设计中的错误不能被及时发现。 自底向上集成测试如图5.3所示。


    图5.3自底向上集成测试示意图

    4) 三明治集成测试 三明治集成测试是一种混合渐进式集成测试策略,它结合了自顶向下和自底向上两种集成方法,以中间一层作为目标层,目标层以上采用自顶向下集成,目标层以下采用自底向上集成。三明治集成测试策略的优点是具备了自顶向下集成测试策略的优点和自底向上集成测试策略的优点。三明治集成测试策略的缺点是自顶向下集成测试策略的缺点或自底向上集成测试策略的缺点仍然不同程度地存在。因此,三明治集成测试策略是在自顶向下集成测试策略或自底向上集成测试策略的优点和缺点中进行权衡。 三明治集成测试如图5.4所示。


    图5.4三明治集成测试示意图

    5) 持续集成测试 软件开发不是一蹴而就的,往往经历编码、测试、修改、测试……因此,业界通常采用持续集成测试策略。软件开发中各个模块不是同时完成的,根据进度将完成的模块尽可能早地进行集成,有助于尽早发现Bug,避免集成中Bug大量集中涌现。持续集成测试策略是与软件编码过程联系*紧密的一种集成测试策略,简单地说,就是边编码、边测试、边集成,反复进行集成测试。持续集成测试策略除了需要编写桩模块或驱动模块以外,还需要自动化测试和集成工具的支持。一般地,编码人员每天下班前向测试环境提交完成的代码,测试环境自动完成单元测试和集成测试,在第二天上班前将测试报告发送到编码人员或相关人员,编码人员修改代码错误,再次向测试环境提交修改后的代码,测试环境再次自动进行单元测试和集成测试。当然,持续集成测试的间隔可以根据实际情况设定,一般是每天或每周。间隔太短没有必要,间隔太长达不到持续集成测试的效果。 持续集成测试如图5.5所示。

    图5.5持续集成测试示意图
    目录
    目录

    第1章软件测试基础

    1.1为什么需要软件测试
    1.1.1软件测试的重要性
    1.1.2引起软件缺陷的原因
    1.1.3软件测试和软件质量
    1.2什么是软件测试
    1.2.1软件测试的基本概念
    1.2.2软件测试的发展历史
    1.2.3软件测试七条原则
    1.3如何进行软件测试
    1.3.1基本的测试过程
    1.3.2软件测试级别、测试类型和测试技术
    1.4测试心理学与职业道德
    1.4.1测试心理学
    1.4.2职业道德
    1.5软件测试技术的发展趋势
    1.5.1自动化软件测试技术应用越来越普遍
    1.5.2测试技术不断细分
    1.5.3云技术、容器化和开源工具使得测试成本下降
    1.5.4测试驱动开发
    1.5.5DevOps越来越流行
    1.5.6探索式软件测试
    1.5.7基于模型的软件测试
    实训任务
    第2章软件测试管理
    2.1什么是软件测试管理
    2.1.1测试组织
    2.1.2测试计划和估算
    2.1.3测试过程监控
    2.1.4配置管理
    2.1.5风险和测试
    2.1.6事件管理
    2.1.7软件测试管理工具
    2.2TestLink起步
    2.2.1系统要求
    2.2.2TestLink的安装
    2.2.3初始使用
    2.2.4技能拓展: TestLink的配置
    2.3TestLink操作演练
    2.3.1测试需求管理
    2.3.2测试用例管理
    2.3.3测试计划制定
    2.3.4测试执行
    2.3.5测试结果分析
    实训任务
    第3章软件缺陷管理
    3.1什么是软件缺陷管理
    3.1.1软件缺陷管理简介
    3.1.2缺陷管理工具
    3.2Mantis起步
    3.2.1系统要求
    3.2.2Mantis的安装
    3.2.3初始使用
    3.2.4技能拓展: Mantis配置
    3.3Mantis操作演练
    3.3.1用户管理
    3.3.2我的视图
    3.3.3提交问题
    3.3.4处理问题
    实训任务
    第4章单元测试
    4.1什么是单元测试
    4.1.1单元测试简介
    4.1.2单元测试框架
    4.2JUnit起步
    4.2.1跟我做
    4.2.2JUnit单元测试要点
    4.3JUnit操作演练
    4.3.1参数化测试
    4.3.2用Mockito隔离测试
    4.4白盒测试技术
    4.4.1语句覆盖
    4.4.2判定覆盖
    4.4.3条件覆盖
    4.4.4判定/条件覆盖
    4.4.5组合覆盖
    4.4.6基本路径覆盖
    实训任务
    第5章集成测试
    5.1什么是集成测试
    5.1.1集成测试简介
    5.1.2集成测试工具
    5.2Jenkins起步
    5.2.1Jenkins安装
    5.2.2插件安装
    5.2.3Jenkins配置
    5.2.4创建新任务
    5.3Jenkins操作演练
    5.3.1准备
    5.3.2在Jenkins中创建任务
    5.3.3创建流水线脚本
    5.4能力拓展: 在Docker中运行Jenkins
    5.4.1准备
    5.4.2在Docker中运行Jenkins
    5.4.3Fork和克隆Github上的示例库
    5.4.4在Jenkins中创建任务
    5.4.5创建流水线脚本
    实训任务
    第6章系统测试
    6.1什么是系统测试
    6.1.1系统测试简介
    6.1.2系统测试工具
    6.2Selenium起步
    6.2.1Selenium IDE的安装
    6.2.2Selenium IDE的使用
    6.2.3用Eclipse开发Selenium测试
    6.3RF Selenium操作演练
    6.3.1Robot Framework简介
    6.3.2RF测试环境的安装
    6.3.3RF Selenium测试示例演示
    6.4黑盒测试技术
    6.4.1等价类划分
    6.4.2边界值分析
    6.4.3决策表测试
    6.4.4状态转换测试
    6.4.5基于用例的测试
    实训任务
    第7章性能测试
    7.1什么是性能测试
    7.1.1性能测试简介
    7.1.2性能测试工具
    7.2JMeter起步
    7.2.1JMeter的安装和启动
    7.2.2JMeter的主要元件
    7.2.3JMeter测试计划示例和模板
    7.3JMeter操作演练
    7.3.1Web应用测试计划模板
    7.3.2JMeter的运行模式
    实训任务
    第8章安全性测试
    8.1什么是安全性测试
    8.1.1安全测试简介
    8.1.2安全性测试工具
    8.2ZAP安全性测试起步
    8.2.1ZAP的安装和启动后的界面
    8.2.2ZAP的基本操作
    8.3ZAP安全性测试演练
    8.3.1设置Spider
    8.3.2自动探索与手工探索相结合
    8.3.3主动扫描
    实训任务
    第9章Spring MVC Web应用测试
    9.1Spring MVC Web应用测试简介
    9.1.1Spring框架简介
    9.1.2Spring应用测试基础
    9.2Spring MVC Web应用测试起步
    9.2.1创建一个简单的Spring应用
    9.2.2运行Spring应用
    9.2.3测试Spring应用
    9.3Spring MVC Web应用测试演练
    9.3.1在STS中导入示例项目源代码
    9.3.2代码分析
    实训任务
    第10章Android App测试
    10.1什么是Android App测试
    10.1.1Android App测试简介
    10.1.2Android App测试工具
    10.2Android App测试起步
    10.2.1从模板新建Android Studio项目
    10.2.2Android Studio项目分析
    10.2.3运行App和测试
    10.3Android App测试演练
    10.3.1App单元测试
    10.3.2App UI测试
    10.3.3App集成测试
    10.3.4App性能测试
    10.3.**pp测试示例
    10.4知识拓展: Appium介绍
    10.4.1Appium简介
    10.4.2Appium起步
    实训任务
    第11章Web前端测试
    11.1什么是Web前端测试
    11.1.1Web前端测试简介
    11.1.2Web前端测试工具
    11.2Jasmine测试起步
    11.2.1Jasmine的安装
    11.2.2示例代码解析
    11.3Jasmine测试演练
    11.3.1测试运行器Karma
    11.3.2Karma 与Jenkins集成
    11.4知识拓展: Jubula介绍
    11.4.1Jubula起步
    11.4.2Jubula演练
    实训任务
    附录A
    A.1Docker基础
    什么是Docker
    Docker的安装
    Docker常用命令
    制作镜像
    A.2Maven基础
    Maven简介
    在Windows环境安装Maven
    Maven配置文件settings.xml
    Maven的使用
    A.3Git基础
    什么是Git
    在Windows上安装Git
    Git的使用
    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外