精读-软件测试的艺术之调试,极限测试和因特尔应用系统的测试
本文是关于精读书籍《软件测试的艺术》的一些学习笔记和分享
本书共有九章包括测试思想(心理,经济),代码检查,测试用例设计,模块测试,更高级别的测试,调试,极限测试和因特尔应用系统的测试。
本文主要是介绍调试的方法来确定错误的位置,以及敏捷开发模型——极限测试和关于网页应用系统的测试。
调试:
调试主要有两个步骤即错误定位和错误修改,其中对错误定位是相对比较重要的。所以,这里记录一下关于错误定位的方法。
关于错误定位,主要有暴力法调试,归纳法调制,演绎法调制,回溯法调试和测试法调试。
- 暴力法调制
- 利用内存信息输出来调试
- 使用自动化的调试工具来进行调试
- 根据“在程序中插入打印语句”的建议来调试
- 归纳法调制
- 确定相关的数据
- 组织数据
- 作出假设
- 证明假设
- 演绎法调制
- 列举出所有可能的原因或假设
- 利用数据排除可能的原因
- 提炼剩下的假设
- 证明剩下的假设
- 回溯法调制
对于小型程序,沿着程序的逻辑结构回溯不正确的结果,直到找出程序逻辑出错的位置
- 测试法调制
通过编写和运行测试用例来确定错误的位置。此方法并不是一个完全独立的方法,它常常结合归纳法一起使用,以获得假设或证明所需要的条件。
调试的原则
定位错误的原则
- 动脑筋
- 如果遇到了僵局,就留到稍后解决
- 如果遇到了困境,就把问题描述给其他人听
- 仅将测试工具作为第二种手段
- 避免使用试验法
修改错误的技术
- 存在一个缺陷的地方,很有可能还存在其他缺陷
- 应纠正错误本身,而不仅是在其症状
- 正确纠正错误的可能性并非100%
- 正确修改错误的可能性随着程序规模的增加而降低
- 应意识改正错误会引入新错误的可能性
- 修改错误的过程意识临时回到设计阶段的过程
- 应修改源代码,而不是目标代码
错误分析
- 错误出现在什么地方
- 谁制造了这个错误
- 哪些做的不正确
- 如何避免该错误的出现
- 为什么错误没有早些发现
- 谁如何更早的发现错误
极限测试
最流行的敏捷软件开发过程——XP模型
XP模型高度依赖模块的单元和验收测试。需要首先创建单元测试和验收测试,然后才创建代码库,这种形式的测试又被称为极限测试(XT)。
极限编程的12个团队实践:
- 计划与需求分析
- 市场和业务开发人员集中起来
- 程序员预估完成场景的时间
- 客户根据时间和商业价值选择软件的功能特征
- 小规模、递增的发布
- 努力添加细微,实在的,可增值的特征,频繁的发布新版本
- 系统隐喻
- 编程小组确认隐喻,便于建立命名规则和程序流程。注:软件隐喻的本质是一种认知隐喻。我们可以通过在日常生活中无意识获得的基本隐喻系统,在软件开发过程中,受到关联性的启发和影响,使得主观经验和感觉经验相互匹配,然后通过概念融合而形成具有启示意义和指导意义的软件隐喻,例:白盒(whitebox),臭虫(bug)等
- 简要设计
- 实现最简单的设计,使代码通过单元测试用例
- 连续测试
- 在编写模块之前就生成单元测试用例。模块只有在通过单元测试之后才告完成。
- 程序只有通过了所有的单元测试和验收测试完成之后才算结束
- 重构
- 清理和调整代码库,单元测试有助于确保在此过程终不能破坏程序的功能
- 在任何重构之后重新进行所有的单元测试
- 结对编程
- 两位程序员协同工作,在同一台机器开发代码库
- 代码的集体所有权
- 所有代码归全体程序员所有,没有哪一个程序员只致力于开发某一个代码库
- 持续集成
- 每天都变更通过单元测试之后将其集成到代码库中
- 每周40小时工作
- 客户在现场
- 开发人员和编程小组可以随时接触客户,可以快速、准确的解决问题,是开发过程不至于中断
- 按标准编码
- 所有的代码看上去必须一致,设计一个系统隐喻有助于满足该原则。
极限单元测试
两个原则:
- 所有代码模块在编码开始之前必须设计好单元测试用例
- 在产品发布之前必须通过单元测试
验收测试
验收测试的目的是判断应用程序是否满足功能和易用应等其他需求。主要是客户使用验收测试阿里验证应用程序是否得到了预期的结果。
测试因特网应用系统
Web服务器的三层结构:
表示层:应用系统的可视化的外观和感觉提供给最终用户
业务层:事务处理,用户身份确定,数据确认,程序日志等
数据源:描述如何进行数据储存。通常是从关系数据库系统(RDBMS)中储存和获取数据
表示层 | 业务层 | 数据层 |
|
|
|
表示层的测试:
内容测试:包括整体审美、字体、色彩、拼写、内容准确性和默认值
Web站点结构:包括无效的链接或图形
用户环境:包括Web浏览器版本和操作系统配置
业务层的测试:
性能:检查应用系统是否满足书面的性能规格说明(通常定义为响应时间和吞吐率)
数据有效性:发现从客户那里采集到的数据中的错误
事务:发现事务处理过程中的错误。其中可能包括信用卡的处理、电子邮件验证以及计算等
数据层的测试:
响应时间:数据操作语言的完成时间
数据完整性:验证数据储存适当且正确
容错性和可恢复性:最大化MTBF(平均无故障工作时间)和最小化MTTR(平均修复时间)
精读-软件测试的艺术之调试,极限测试和因特尔应用系统的测试相关推荐
- 精读-软件测试的艺术之代码检查,走查与评审
本文是关于精读书籍<软件测试的艺术>的一些学习笔记和分享 本书共有九章包括测试思想(心理,经济),代码检查,测试用例设计,模块测试,更高级别的测试,调试,极限测试和因特尔应用系统的测试. ...
- 《软件测试的艺术》第六章 更高级别的测试
<软件测试的艺术>第六章 更高级别的测试 6.0 前言 软件开发过程模型 6.1 功能测试 6.2 系统测试 6.2.1 能力测试 6.2.2 容量测试 6.2.3 强度测试 6.2.4 ...
- 测试小故事26:软件测试的艺术
艺术,什么是艺术?当无法用准确的语言描述所看到的.听到的.感受到的,也许我们会用"很艺术"来形容. <软件测试的艺术>, The Art of Software Tes ...
- 软件测试的艺术 读书笔记完整版
第 1 章 一次自评价测试 定义: 所谓软件测试,就是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作. 一个三角形类别判定程序的测试用例的评判(评判测试用例的设计 ...
- 《软件测试的艺术》高清脑图总结
各位朋友,大家好,我是财哥. 今天财哥为大家带来一本软件测试的经典书籍分享:<软件测试的艺术>,这本书堪称软件测试书籍中的圣经,该书首次印刷于1979年,距今一共发行过三版:第一版,第二版 ...
- 软件测试的艺术_全书读书笔记
--写在前面,本文是对<软件测试的艺术(第3版)>的观后总结,记录方便日后查阅复习.本文中的一些图片都是引用自<软件测试的艺术(第3版)>. 相对于别的书来说,这本书的可读性非 ...
- 《软件测试的艺术》万字笔记
软件测试的心理学和经济学 软件测试人员在测试过程中要有正确的态度(愿景) 心理学 软件测试的定义需要明确:软件测试的根本应该聚焦到为程序增加价值,让程序变得更加可靠,是找出问题并让问题得到解决的过程 ...
- 《软件测试的艺术(第二版)》读后感
先把学习的思维导图列在这. 我为什么要看这本书? 因为我觉得我现在应该复习测试理论知识,该事项的优先级更高. 我希望学到什么? 我希望学到的是测试理论.测试方法,进一步了解软件测试是什么. 那我觉得我 ...
- 《软件测试的艺术》读书笔记 - 1
<软件测试的艺术(原书第三版)> 本书从第1版付梓到现在已经30余年,是软件测试领域的经典著作.本书结构清晰.讲解生动活泼,简明扼要地展示了久经考验的软件测试方法和智慧. 作 者:(美)梅 ...
最新文章
- python接口自动化5-Json数据处理
- 交换机和路由器的区别_路由器与交换机的区别?
- CTFshow 反序列化 web272
- c++矩阵作为函数输入变量_现代控制理论线性系统入门(七)输入输出解耦的控制器设计...
- node --- 模块化连接MongoDB数据库的参数设置方案之一
- 为什么自己编写的页面总是在那里抖动_SEO排名,为什么旧页面比新内容排名高?...
- java runtime environment 55_jre7下载|Java Runtime Environment(Java运行环境JRE)JRE7 官方版_ - 极光下载站...
- Python入门--流程控制语句continue
- PHP设计模式——代理模式
- 使用Q-Vision软件Kvaser硬件产品,支持ADAS测试,实现对总线网络的分析
- 12.逻辑运算符与、或、非、双感叹号、双问号
- 达梦数据库DM8中针对中文进行排序
- 最全面的Kano模型详解,及Kano模型为何是5种需求?
- spss软件测试题题库,spss期末考试试题及答案
- 不带脏字的英文骂人法
- node.js报错“Error: EBUSY: resource busy or locked, stat“
- Python开发案例:制作二维码
- windows 7下工行U盾证书密码框弹不出来--解决方案
- Python 中最简最好的设计模式
- 下暴你的硬盘 超多游戏下载 不爆你找我! (二)