本文是关于精读书籍《软件测试的艺术》的一些学习笔记和分享

本书共有九章包括测试思想(心理,经济),代码检查,测试用例设计,模块测试,更高级别的测试,调试,极限测试和因特尔应用系统的测试

本文主要是介绍调试的方法来确定错误的位置,以及敏捷开发模型——极限测试和关于网页应用系统的测试。

调试:

调试主要有两个步骤即错误定位和错误修改,其中对错误定位是相对比较重要的。所以,这里记录一下关于错误定位的方法。

关于错误定位,主要有暴力法调试,归纳法调制,演绎法调制,回溯法调试和测试法调试。

  • 暴力法调制

    1. 利用内存信息输出来调试
    2. 使用自动化的调试工具来进行调试
    3. 根据“在程序中插入打印语句”的建议来调试
  • 归纳法调制
    1. 确定相关的数据
    2. 组织数据
    3. 作出假设
    4. 证明假设
  • 演绎法调制
    1. 列举出所有可能的原因或假设
    2. 利用数据排除可能的原因
    3. 提炼剩下的假设
    4. 证明剩下的假设
  • 回溯法调制

对于小型程序,沿着程序的逻辑结构回溯不正确的结果,直到找出程序逻辑出错的位置

  • 测试法调制

通过编写和运行测试用例来确定错误的位置。此方法并不是一个完全独立的方法,它常常结合归纳法一起使用,以获得假设或证明所需要的条件。

调试的原则

定位错误的原则

  • 动脑筋
  • 如果遇到了僵局,就留到稍后解决
  • 如果遇到了困境,就把问题描述给其他人听
  • 仅将测试工具作为第二种手段
  • 避免使用试验法

修改错误的技术

  • 存在一个缺陷的地方,很有可能还存在其他缺陷
  • 应纠正错误本身,而不仅是在其症状
  • 正确纠正错误的可能性并非100%
  • 正确修改错误的可能性随着程序规模的增加而降低
  • 应意识改正错误会引入新错误的可能性
  • 修改错误的过程意识临时回到设计阶段的过程
  • 应修改源代码,而不是目标代码

错误分析

  • 错误出现在什么地方
  • 谁制造了这个错误
  • 哪些做的不正确
  • 如何避免该错误的出现
  • 为什么错误没有早些发现
  • 谁如何更早的发现错误

极限测试

最流行的敏捷软件开发过程——XP模型

XP模型高度依赖模块的单元和验收测试。需要首先创建单元测试和验收测试,然后才创建代码库,这种形式的测试又被称为极限测试(XT)。

极限编程的12个团队实践:

  1. 计划与需求分析

    • 市场和业务开发人员集中起来
    • 程序员预估完成场景的时间
    • 客户根据时间和商业价值选择软件的功能特征
  2. 小规模、递增的发布
    1. 努力添加细微,实在的,可增值的特征,频繁的发布新版本
  3. 系统隐喻
    1. 编程小组确认隐喻,便于建立命名规则和程序流程。注:软件隐喻的本质是一种认知隐喻。我们可以通过在日常生活中无意识获得的基本隐喻系统,在软件开发过程中,受到关联性的启发和影响,使得主观经验和感觉经验相互匹配,然后通过概念融合而形成具有启示意义和指导意义的软件隐喻,例:白盒(whitebox),臭虫(bug)等
  4. 简要设计
    1. 实现最简单的设计,使代码通过单元测试用例
  5. 连续测试
    1. 在编写模块之前就生成单元测试用例。模块只有在通过单元测试之后才告完成。
    2. 程序只有通过了所有的单元测试和验收测试完成之后才算结束
  6. 重构
    1. 清理和调整代码库,单元测试有助于确保在此过程终不能破坏程序的功能
    2. 在任何重构之后重新进行所有的单元测试
  7. 结对编程
    1. 两位程序员协同工作,在同一台机器开发代码库
  8. 代码的集体所有权
    1. 所有代码归全体程序员所有,没有哪一个程序员只致力于开发某一个代码库
  9. 持续集成
    1. 每天都变更通过单元测试之后将其集成到代码库中
  10. 每周40小时工作
  11. 客户在现场
    1. 开发人员和编程小组可以随时接触客户,可以快速、准确的解决问题,是开发过程不至于中断
  12. 按标准编码
    1. 所有的代码看上去必须一致,设计一个系统隐喻有助于满足该原则。

极限单元测试

两个原则:

  • 所有代码模块在编码开始之前必须设计好单元测试用例
  • 在产品发布之前必须通过单元测试

验收测试

验收测试的目的是判断应用程序是否满足功能和易用应等其他需求。主要是客户使用验收测试阿里验证应用程序是否得到了预期的结果。

测试因特网应用系统

Web服务器的三层结构:

表示层:应用系统的可视化的外观和感觉提供给最终用户

业务层:事务处理,用户身份确定,数据确认,程序日志等

数据源:描述如何进行数据储存。通常是从关系数据库系统(RDBMS)中储存和获取数据

表示层 业务层 数据层
  • 确保字体在不同的浏览器中都相同
  • 检查一切报每一个连接都指向正确的文件或者站点
  • 检查图形以确保其分辨率和大小正确
  • 对每一页进行拼写检查
  • 让原稿编辑检查语法和风格
  • 在页面载入时检查光标为孩子以确保其在正确的文本框中
  • 检查以确保在页面载入使选中了默认的按钮
  • 检查运算和逻辑运算是否正确
  • 确保提出的响应时间、吞吐率等性能指标得到了满足
  • 验证事务正确完成
  • 确保失败的事务回滚正确
  • 确保正确采集数据
  • 确保数据库操作满足性能要求
  • 验收数据储存适当且正确
  • 验收可使用当前备份来恢复
  • 测试故障处理和冗余功能

表示层的测试:

内容测试:包括整体审美、字体、色彩、拼写、内容准确性和默认值

Web站点结构:包括无效的链接或图形

用户环境:包括Web浏览器版本和操作系统配置

业务层的测试:

性能:检查应用系统是否满足书面的性能规格说明(通常定义为响应时间和吞吐率)

数据有效性:发现从客户那里采集到的数据中的错误

事务:发现事务处理过程中的错误。其中可能包括信用卡的处理、电子邮件验证以及计算等

数据层的测试:

响应时间:数据操作语言的完成时间

数据完整性:验证数据储存适当且正确

容错性和可恢复性:最大化MTBF(平均无故障工作时间)和最小化MTTR(平均修复时间)

精读-软件测试的艺术之调试,极限测试和因特尔应用系统的测试相关推荐

  1. 精读-软件测试的艺术之代码检查,走查与评审

    本文是关于精读书籍<软件测试的艺术>的一些学习笔记和分享 本书共有九章包括测试思想(心理,经济),代码检查,测试用例设计,模块测试,更高级别的测试,调试,极限测试和因特尔应用系统的测试. ...

  2. 《软件测试的艺术》第六章 更高级别的测试

    <软件测试的艺术>第六章 更高级别的测试 6.0 前言 软件开发过程模型 6.1 功能测试 6.2 系统测试 6.2.1 能力测试 6.2.2 容量测试 6.2.3 强度测试 6.2.4 ...

  3. 测试小故事26:软件测试的艺术

    艺术,什么是艺术?当无法用准确的语言描述所看到的.听到的.感受到的,也许我们会用"很艺术"来形容. <软件测试的艺术>, The Art of Software Tes ...

  4. 软件测试的艺术 读书笔记完整版

    第 1 章 一次自评价测试 定义: 所谓软件测试,就是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作. 一个三角形类别判定程序的测试用例的评判(评判测试用例的设计 ...

  5. 《软件测试的艺术》高清脑图总结

    各位朋友,大家好,我是财哥. 今天财哥为大家带来一本软件测试的经典书籍分享:<软件测试的艺术>,这本书堪称软件测试书籍中的圣经,该书首次印刷于1979年,距今一共发行过三版:第一版,第二版 ...

  6. 软件测试的艺术_全书读书笔记

    --写在前面,本文是对<软件测试的艺术(第3版)>的观后总结,记录方便日后查阅复习.本文中的一些图片都是引用自<软件测试的艺术(第3版)>. 相对于别的书来说,这本书的可读性非 ...

  7. 《软件测试的艺术》万字笔记

    软件测试的心理学和经济学 软件测试人员在测试过程中要有正确的态度(愿景) 心理学 软件测试的定义需要明确:软件测试的根本应该聚焦到为程序增加价值,让程序变得更加可靠,是找出问题并让问题得到解决的过程 ...

  8. 《软件测试的艺术(第二版)》读后感

    先把学习的思维导图列在这. 我为什么要看这本书? 因为我觉得我现在应该复习测试理论知识,该事项的优先级更高. 我希望学到什么? 我希望学到的是测试理论.测试方法,进一步了解软件测试是什么. 那我觉得我 ...

  9. 《软件测试的艺术》读书笔记 - 1

    <软件测试的艺术(原书第三版)> 本书从第1版付梓到现在已经30余年,是软件测试领域的经典著作.本书结构清晰.讲解生动活泼,简明扼要地展示了久经考验的软件测试方法和智慧. 作 者:(美)梅 ...

最新文章

  1. python接口自动化5-Json数据处理
  2. 交换机和路由器的区别_路由器与交换机的区别?
  3. CTFshow 反序列化 web272
  4. c++矩阵作为函数输入变量_现代控制理论线性系统入门(七)输入输出解耦的控制器设计...
  5. node --- 模块化连接MongoDB数据库的参数设置方案之一
  6. 为什么自己编写的页面总是在那里抖动_SEO排名,为什么旧页面比新内容排名高?...
  7. java runtime environment 55_jre7下载|Java Runtime Environment(Java运行环境JRE)JRE7 官方版_ - 极光下载站...
  8. Python入门--流程控制语句continue
  9. PHP设计模式——代理模式
  10. 使用Q-Vision软件Kvaser硬件产品,支持ADAS测试,实现对总线网络的分析
  11. 12.逻辑运算符与、或、非、双感叹号、双问号
  12. 达梦数据库DM8中针对中文进行排序
  13. 最全面的Kano模型详解,及Kano模型为何是5种需求?
  14. spss软件测试题题库,spss期末考试试题及答案
  15. 不带脏字的英文骂人法
  16. node.js报错“Error: EBUSY: resource busy or locked, stat“
  17. Python开发案例:制作二维码
  18. windows 7下工行U盾证书密码框弹不出来--解决方案
  19. Python 中最简最好的设计模式
  20. 下暴你的硬盘 超多游戏下载 不爆你找我! (二)

热门文章

  1. cmd md命令 创建文件夹
  2. 学Python人工智能有发展前景吗?人工智能就业方向有哪些?
  3. digest 词根 gest
  4. JavaScript【图片轮播】
  5. 软件许可证管理应该怎么做?
  6. python 图片验证码
  7. Jenkins凭据导出
  8. WormHole是一个简单、易用的api管理平台,支持dubbo服务调用
  9. localtime函数使用
  10. QT纯代码设计UI界面Demo