顶部
收藏

软件测试技术与实践——面向分布式系统OpenHarmony


作者:
朱少民
定价:
54.00元
ISBN:
978-7-04-062117-4
版面字数:
520.000千字
开本:
16开
全书页数:
404页
装帧形式:
平装
重点项目:
暂无
出版时间:
2024-07-02
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
计算机科学与技术专业课程

本书为示范性软件学院联盟建设的首批软件工程系列教材之一。本书基于OpenHarmony、面向全场景的分布式应用来讨论如何进行软件测试,以适应“软件定义世界”新时代的教学需求,树立大学生的民族自豪感和文化自信,使其承担起发展国产基础软件的责任和使命。本书强调基于案例、问题驱动的教学模式,以实战为主、案例为辅,通过精心设计的13个实验,启发学生思考,促进学生动手实践,切实培养学生分析问题和解决问题的能力,使学生能够掌握软件测试的实践技能。本书在内容上力求系统全面、层次清楚、循序渐进,从单元测试、接口测试到系统测试,从功能测试扩展到专项测试,全面覆盖各种专项测试,包括性能测试、安全性测试、兼容性测试、可靠性测试和用户体验测试等。读者通过本书的学习,能够全面了解软件测试的基本方法和技术,并通过实验更好地巩固所学的内容,真正践行“做中学”,以提升实践能力。

本书可作为高等学校软件工程及计算机类相关专业的教学用书,也可作为业界人员和自学人员的参考书。

  • 前辅文
  • 第1章 软件测试面对的基本问题
    • 1.1 为什么要进行软件测试
      • 1.1.1 外在因素:用户和行业标准的要求
      • 1.1.2 内在因素:降低企业成本
    • 1.2 什么是软件测试
      • 1.2.1 软件测试基本认知——正反思维
      • 1.2.2 从狭义测试到广义测试
      • 1.2.3 基于test oracle的认知
      • 1.2.4 基于风险的认知
      • 1.2.5 基于批判性思维的认知
    • 1.3 测试内容
      • 1.3.1 基于质量属性的测试内容
      • 1.3.2 基于系统结构的测试内容
      • 1.3.3 基于业务的测试内容
    • 1.4 如何进行测试
      • 1.4.1 静态测试和动态测试
      • 1.4.2 主动测试和被动测试
      • 1.4.3 手工测试和自动化测试
    • 1.5 测试过程
      • 1.5.1 传统的工程过程
      • 1.5.2 敏捷测试过程
      • 1.5.3 测试自身工作过程
    • 1.6 软件测试应当遵守哪些基本原则
    • 1.7 OpenHarmony及其生态的介绍
      • 1.7.1 OpenHarmony架构及特性
      • 1.7.2 OpenHarmony生态
      • 1.7.3 OpenHarmony应用全流程活动
      • 1.7.4 OpenHarmony测试工具能力
    • 1.8 案例背景介绍
      • 1.8.1 环境准备介绍
      • 1.8.2 应用场景介绍
    • 小结
    • 思考题
    • 延伸阅读
  • 第2章 软件测试基本方法
    • 2.1 软件测试方法论
    • 2.2 基于输入域的方法
      • 2.2.1 等价类划分法
      • 2.2.2 边界值分析法
    • 2.3 基于组合及其优化的方法
      • 2.3.1 判定表方法
      • 2.3.2 因果图法
      • 2.3.3 组合优化方法
    • 2.4 结构化测试方法
      • 2.4.1 判定覆盖
      • 2.4.2 条件覆盖
      • 2.4.3 判定-条件覆盖
      • 2.4.4 MC/DC
      • 2.4.5 基本路径覆盖
    • 2.5 基于场景的测试方法
    • 2.6 模糊测试与变异测试
      • 2.6.1 模糊测试方法
      • 2.6.2 变异测试方法
    • 2.7 蜕变测试
    • 小结
    • 任务/练习
    • 延伸阅读
  • 第3章 需求与设计评审
    • 3.1 为什么需求和设计评审如此重要
    • 3.2 如何做好产品的需求评审
      • 3.2.1 如何理解软件需求
      • 3.2.2 如何确定传统软件需求的评审标准
      • 3.2.3 如何评审敏捷需求——用户故事
      • 3.2.4 如何有效地完成需求评审
    • 3.3 如何做好软件设计评审
      • 3.3.1 软件设计的评审标准
      • 3.3.2 系统架构设计的评审
      • 3.3.3 组件设计的审查
      • 3.3.4 界面设计的评审
    • 小结
    • 思考题
    • 延伸阅读
    • 【实验1】面向不同开发模式的需求评审
  • 第4章 软件测试分析与计划
    • 4.1 测试需求分析和测试策略
      • 4.1.1 收集信息与上下文分析
      • 4.1.2 明确测试目标
      • 4.1.3 测试需求的分析方法和技术
      • 4.1.4 测试范围分析:功能测试需求
      • 4.1.5 测试范围分析:非功能测试需求
      • 4.1.6 测试风险分析
      • 4.1.7 如何制定有效的测试策略
    • 4.2 测试计划
      • 4.2.1 测试计划的内容
      • 4.2.2 测试计划过程
      • 4.2.3 制定有效的测试计划
    • 小结
    • 任务/思考题
    • 延伸阅读
  • 第5章 单元测试
    • 5.1 如何开始单元测试
      • 5.1.1 完成一个带参数的函数测试
      • 5.1.2 如何开展单元测试
      • 5.1.3 如何隔离测试代码
      • 5.1.4 如何集成第三方框架JUnit
    • 5.2 从函数走向模块
      • 5.2.1 什么是模块
      • 5.2.2 如何测试扩展部件
      • 5.2.3 如何避免非测试对象的影响
      • 5.2.4 契约式编程及其测试框架
      • 5.2.5 如何衡量测试效果
      • 5.2.6 常用的覆盖率分析工具有哪些
    • 5.3 以逸待劳的测试——代码静态分析
      • 5.3.1 通过代码评审发现哪类问题
      • 5.3.2 常见的代码缺陷模式
      • 5.3.3 如何借助工具直接发现代码中的错误
      • 5.3.4 如何较好地保证代码的规范性
    • 5.4 单元测试的最高境界
      • 5.4.1 TDD是最彻底的单元测试
      • 5.4.2 TDD与ATDD
    • 小结
    • 任务/练习
    • 延伸阅读
    • 【实验2】基于OpenHarmony系统进行单元测试
    • 【实验3】Mock测试
    • 【实验4】单元测试覆盖率分析
  • 第6章 持续集成测试
    • 6.1 如何开展集成测试
    • 6.2 如何构建持续集成的环境
      • 6.2.1 持续集成需求对环境的要求
      • 6.2.2 源代码管理工具
      • 6.2.3 版本构建工具
      • 6.2.4 持续集成管理工具
    • 6.3 如何完成自动部署和自动集成测试
      • 6.3.1 如何在持续集成中实现自动部署
      • 6.3.2 如何在构建前实现自动静态分析
      • 6.3.3 如何在构建后实现自动验证
      • 6.3.4 OpenHarmony社区的持续集成成熟实践
    • 6.4 如何有效地报告和跟踪缺陷
      • 6.4.1 软件缺陷生命周期
      • 6.4.2 如何描述软件缺陷
      • 6.4.3 如何有效地报告缺陷
      • 6.4.4 如何跟踪和处理缺陷
      • 6.4.5 如何进行缺陷分析
    • 6.5 测试报告
      • 6.5.1 评估测试覆盖率
      • 6.5.2 基于软件缺陷的质量评估
      • 6.5.3 测试报告的书写
    • 小结
    • 思考题
    • 延伸阅读
    • 【实验5】持续集成测试
  • 第7章 系统功能测试
    • 7.1 功能测试之前的准备
      • 7.1.1 系统功能测试究竟测什么
      • 7.1.2 系统功能测试应该考虑哪些问题
      • 7.1.3 系统功能测试的基本思路
    • 7.2 面向接口的分布式测试
      • 7.2.1 基于SOAP接口的测试
      • 7.2.2 基于REST接口的测试
      • 7.2.3 OpenHarmony异步接口测试
    • 7.3 面向UI的功能测试
      • 7.3.1 UI测试框架原理及使用
      • 7.3.2 UI测试脚本录制回放功能
    • 7.4 面向分布式场景的功能测试
      • 7.4.1 分布式典型业务分析
      • 7.4.2 分布式测试框架原理及使用
    • 7.5 数据一致性验证
    • 7.6 设备虚拟化测试
    • 7.7 回归测试
    • 7.8 功能的探索式测试方式
    • 小结
    • 任务/练习
    • 延伸阅读
    • 【实验6】基于OpenHarmony的系统功能测试
    • 【实验7】探索式测试
  • 第8章 系统兼容性测试
    • 8.1 通常意义的兼容性测试
      • 8.1.1 软件兼容性测试
      • 8.1.2 数据共享兼容性测试
    • 8.2 OpenHarmony兼容性测试
    • 8.3 如何确定操作系统的兼容性需求
    • 8.4 如何进行兼容性测试
    • 小结
    • 思考题
    • 【实验8】兼容性测试
  • 第9章 系统性能测试
    • 9.1 什么是性能测试
      • 9.1.1 有哪些常见的性能问题
      • 9.1.2 如何区分性能测试中不同的目的
    • 9.2 如何确定系统的性能需求
      • 9.2.1 关键性能指标分析
      • 9.2.2 关键业务分析
    • 9.3 如何完成性能测试的设计
      • 9.3.1 如何模拟用户操作
      • 9.3.2 如何有效地模拟加载过程
      • 9.3.3 如何实时准确地控制加载
    • 9.4 如何选择合适的性能测试工具
      • 9.4.1 性能测试工具需要哪些关键特性
      • 9.4.2 有哪些常见的性能测试工具
    • 9.5 如何执行性能测试
      • 9.5.1 脚本开发
      • 9.5.2 环境设置
      • 9.5.3 执行与过程监控
    • 9.6 如何分析和评估测试结果
    • 9.7 系统性能分层看护
      • 9.7.1 系统性能测试分层看护
      • 9.7.2 系统性能看护典型场景与指标定义
      • 9.7.3 系统分析关键技术
    • 9.8 分布式端侧的性能测试
      • 9.8.1 分布式应用场景的性能分析
      • 9.8.2 分布式数据同步性能测试
      • 9.8.3 性能测试工具SmartPerf
    • 小结
    • 思考题
    • 延伸阅读
    • 【实验9】系统性能测试
    • 【实验10】基于SmartPerf的端侧性能测试
  • 第10章 系统安全性测试
    • 10.1 什么是安全性测试
      • 10.1.1 如何认识系统的安全性
      • 10.1.2 系统存在哪些安全性漏洞
      • 10.1.3 清楚安全性测试的目标与任务
    • 10.2 如何进行安全性测试
      • 10.2.1 贯穿研发生命周期的安全性测试
      • 10.2.2 有哪些安全性测试方法
    • 10.3 安全性静态测试
    • 10.4 渗透测试
    • 10.5 模糊测试方法
    • 10.6 Web安全性测试
    • 小结
    • 思考题
    • 延伸阅读
    • 【实验11】安全性测试
  • 第11章 系统可靠性测试
    • 11.1 什么是可靠性
      • 11.1.1 如何认识系统的可靠性
      • 11.1.2 分布式系统在可靠性测试上的挑战
    • 11.2 如何进行可靠性测试
      • 11.2.1 可靠性测试方法及手段
      • 11.2.2 分布式系统可靠性测试场景分析
      • 11.2.3 可靠性测试工具原理及使用介绍
      • 11.2.4 分布式系统的混沌工程
    • 11.3 基于可靠性指标的可靠性结果度量
    • 小结
    • 思考题
    • 延伸阅读
    • 【实验12】分布式系统可靠性测试
  • 第12章 用户体验测试
    • 12.1 什么是用户体验测试
      • 12.1.1 如何认识软件系统的体验
      • 12.1.2 分布式系统在体验上的优势
    • 12.2 如何开展分布式系统的体验测试
      • 12.2.1 体验测试方法及手段
      • 12.2.2 用户体验测试场景分析
      • 12.2.3 用户体验测试案例解析
    • 12.3 A/B测试
    • 小结
    • 思考题
    • 延伸阅读
    • 【实验13】用户体验测试

相关图书