admin 管理员组文章数量: 887021
精读
本文是关于精读书籍《软件测试的艺术》的一些学习笔记和分享
本书共有九章包括测试思想(心理,经济),代码检查,测试用例设计,模块测试,更高级别的测试,调试,极限测试和因特尔应用系统的测试。
本文主要是介绍调试的方法来确定错误的位置,以及敏捷开发模型——极限测试和关于网页应用系统的测试。
调试:
调试主要有两个步骤即错误定位和错误修改,其中对错误定位是相对比较重要的。所以,这里记录一下关于错误定位的方法。
关于错误定位,主要有暴力法调试,归纳法调制,演绎法调制,回溯法调试和测试法调试。
- 暴力法调制
- 利用内存信息输出来调试
- 使用自动化的调试工具来进行调试
- 根据“在程序中插入打印语句”的建议来调试
- 归纳法调制
- 确定相关的数据
- 组织数据
- 作出假设
- 证明假设
- 演绎法调制
- 列举出所有可能的原因或假设
- 利用数据排除可能的原因
- 提炼剩下的假设
- 证明剩下的假设
- 回溯法调制
对于小型程序,沿着程序的逻辑结构回溯不正确的结果,直到找出程序逻辑出错的位置
- 测试法调制
通过编写和运行测试用例来确定错误的位置。此方法并不是一个完全独立的方法,它常常结合归纳法一起使用,以获得假设或证明所需要的条件。
调试的原则
定位错误的原则
- 动脑筋
- 如果遇到了僵局,就留到稍后解决
- 如果遇到了困境,就把问题描述给其他人听
- 仅将测试工具作为第二种手段
- 避免使用试验法
修改错误的技术
- 存在一个缺陷的地方,很有可能还存在其他缺陷
- 应纠正错误本身,而不仅是在其症状
- 正确纠正错误的可能性并非100%
- 正确修改错误的可能性随着程序规模的增加而降低
- 应意识改正错误会引入新错误的可能性
- 修改错误的过程意识临时回到设计阶段的过程
- 应修改源代码,而不是目标代码
错误分析
- 错误出现在什么地方
- 谁制造了这个错误
- 哪些做的不正确
- 如何避免该错误的出现
- 为什么错误没有早些发现
- 谁如何更早的发现错误
极限测试
最流行的敏捷软件开发过程——XP模型
XP模型高度依赖模块的单元和验收测试。需要首先创建单元测试和验收测试,然后才创建代码库,这种形式的测试又被称为极限测试(XT)。
极限编程的12个团队实践:
- 计划与需求分析
- 市场和业务开发人员集中起来
- 程序员预估完成场景的时间
- 客户根据时间和商业价值选择软件的功能特征
- 小规模、递增的发布
- 努力添加细微,实在的,可增值的特征,频繁的发布新版本
- 系统隐喻
- 编程小组确认隐喻,便于建立命名规则和程序流程。注:软件隐喻的本质是一种认知隐喻。我们可以通过在日常生活中无意识获得的基本隐喻系统,在软件开发过程中,受到关联性的启发和影响,使得主观经验和感觉经验相互匹配,然后通过概念融合而形成具有启示意义和指导意义的软件隐喻,例:白盒(whitebox),臭虫(bug)等
- 简要设计
- 实现最简单的设计,使代码通过单元测试用例
- 连续测试
- 在编写模块之前就生成单元测试用例。模块只有在通过单元测试之后才告完成。
- 程序只有通过了所有的单元测试和验收测试完成之后才算结束
- 重构
- 清理和调整代码库,单元测试有助于确保在此过程终不能破坏程序的功能
- 在任何重构之后重新进行所有的单元测试
- 结对编程
- 两位程序员协同工作,在同一台机器开发代码库
- 代码的集体所有权
- 所有代码归全体程序员所有,没有哪一个程序员只致力于开发某一个代码库
- 持续集成
- 每天都变更通过单元测试之后将其集成到代码库中
- 每周40小时工作
- 客户在现场
- 开发人员和编程小组可以随时接触客户,可以快速、准确的解决问题,是开发过程不至于中断
- 按标准编码
- 所有的代码看上去必须一致,设计一个系统隐喻有助于满足该原则。
极限单元测试
两个原则:
- 所有代码模块在编码开始之前必须设计好单元测试用例
- 在产品发布之前必须通过单元测试
验收测试
验收测试的目的是判断应用程序是否满足功能和易用应等其他需求。主要是客户使用验收测试阿里验证应用程序是否得到了预期的结果。
测试因特网应用系统
Web服务器的三层结构:
表示层:应用系统的可视化的外观和感觉提供给最终用户
业务层:事务处理,用户身份确定,数据确认,程序日志等
数据源:描述如何进行数据储存。通常是从关系数据库系统(RDBMS)中储存和获取数据
表示层 | 业务层 | 数据层 |
|
|
|
表示层的测试:
内容测试:包括整体审美、字体、色彩、拼写、内容准确性和默认值
Web站点结构:包括无效的链接或图形
用户环境:包括Web浏览器版本和操作系统配置
业务层的测试:
性能:检查应用系统是否满足书面的性能规格说明(通常定义为响应时间和吞吐率)
数据有效性:发现从客户那里采集到的数据中的错误
事务:发现事务处理过程中的错误。其中可能包括信用卡的处理、电子邮件验证以及计算等
数据层的测试:
响应时间:数据操作语言的完成时间
数据完整性:验证数据储存适当且正确
容错性和可恢复性:最大化MTBF(平均无故障工作时间)和最小化MTTR(平均修复时间)
本文标签: 精读
版权声明:本文标题:精读 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1687028297h56526.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论