《敏捷软件测试》的读书笔记(三)

第三部分 敏捷测试象限

6. 测试的目的

敏捷测试的象限

支持团队的测试:帮助开发开发产品

象限一:TDD/TD测试。使用和应用相同的编码。一般内部质量由程序员定义、参与测试。CI环境。

象限二:测试每个产品的细节,自动化测试运行于业务逻辑层。自动化持续集成、构建、测试过程。快速测试,反馈BUG。功能环境

支持产品的测试:确认产品满足需求,改进产品。测试

象限三:评价产品满足客户需求、竞争力,改进产品。仿真最终用户测试。

象限四:性能安全开发的每一步都应考虑,不要留到最后。

知道一个产品何时完成:通过卡片养成习惯。

管理技术债务:快速迭代产品伴随而来的是代码库越来越难维护,问题越来越多;

运行单元测试的自动化和集成是最小化技术债务的必需品;

上下文环境的测试:上下文环境指导测试工作;

7. 支持团队面向技术的测试

第一象限的测试

敏捷测试的基础:TDD、支持基础设施(保证代码质量,更多时间用于复杂场景测试)

为什么:效率更高、让测试人员的工作更容易、设计时谨记测试(层次架构和可测性)、及时反馈;

面向技术的测试何时停止: 面向技术只测单维度。 面向产品测复杂场景。

如果团队不做测试:带领大家进行敏捷开发;“寻求帮助”模式;

相关工具:IDE,构建MAVEN,持续构建Jenkins,单测XUnit。仿制对象或测试桩MOCK。

8. 支持面向业务的测试

第二象限测试:在编码开始前写完测试。外部质量。测试内容包含:前后置条件、对其它功能的影响、与关联系统的集成。

通过面向业务测试驱动开发: 需求和想法都存在PRD、测试中。团队基于产品沟通。

需求困境:需求=Story(客户团队)+测试实例(测试团队)+沟通(开发同事参与编写会)

共同语言、激发需求、使用正确方式提问、使用示例、多重观点、与客户交流、增进清晰度、满足条件、涟漪效应;

小增量

如何知道我们完成了:考虑和降低风险,可测性和自动化;

9. 面向业务的测试工具包

1. 激发示例和story:作为一名{角色},我需要{功能},才能{业务价值}。

描述预期行为:核对表(模板:如报表、关联系统、DB)、思维导图、电子表单(金融域:复杂运算用例)、模型图、流程图、

模型:尽量模拟用户真实数据

功能修改模型:打印原功能->勾画改动点->扫描上传

wiki:促进讨论,记录沟通、决策

2. 沟通工具:电话、 视频、Webex、在线白板、邮件、桌面VNC

3. 自动化工具

单测BDD工具:easyb和jbehave

API功能测试:Fitness

Web服务测试:soapUI

GUI测试工具:录制回话Watair,selenium,

4. 编写测试的策略

构建高层次测试--->详细测试

1. 增量构建:先写一个简单的,基本流测试。每个测试只针对一种业务规则或条件。

2. 确保构建、测试通过。(一个测试通过后面的测试通过的可能性更大)

3. 合适的测试设计模式

4. 基于时间、活动和事件模式????

5. 关键词和数据驱动

5. 可测试性:如果有不可测的模块,向开发寻求帮助

6. 测试管理:也要有版本控制。

五、评价产品的面向业务测试

评价产品:尽量重现最终用户的实际体验。对于迭代中的变化,抓住一切机会展示,不要等到迭代后。

1. 场景测试:

真实生活中的领域知识非常关键。

肥皂剧测试:真实的数据和流程,有乐趣。(也可找客户提供Data)

定义场景、工作流工具:数据流,工作流图。

2. 探索式测试:

有时,动手做的意义远大于思考。

1. 可能的错误

2. 模拟软件运行方式

3. 测试时了解到的内容:考虑客户需求、团队常见错误、产品好坏评价。

3. 可用性测试

1. 用户需求和角色:角色类型划分,衍生不同的场景。(用户量少不用做可用性测试。)

2. 导航测试:链接、Tab

3. 研究竞争对手软件:花时间去使用、研究对手软件。

4. GUI背后

1. API测试:

检查输入参数个数、边界、可选。打乱接口调用顺序。输出结果边界。有返回值时校验,void时查看日志、DB、关联系统。(理解所有参数、方法。)

2. Web服务测试:强调接口有效性。了解客户期望质量,探索式测试。

5. 文档测试

1. 用户文档:连接、文字清晰、一致、简明、弹窗多个、阻止弹窗。

2. 测试报告:要获取正确的数据。

6. 探索式测试辅助工具

测试设置:有时可能会花一天去重现错误,基于会话的测试使用自动化设置好测试数据、场景(只要修改参数即可)。工具Watir、Selenium IDE

生成测试数据:perlclip用不同类型的输入数据测试文本框。如需要输入200个字符。

监控:日志、错误。linux的tail -f工具。

模拟器、仿真器:模拟未完成、复杂关联系统。仿真手机等昂贵设备(可下载的仿真器)。

六、利用面向技术的测试评价产品

性能相关:包括配置、兼容、ility(如交互性、可靠性、安全性、扩展性等)、内存、恢复、数据转换。(最好有核对表。)

1. 谁来做?

安全性:寻求安全组。   数据转换:数据库组。  恢复测试、故障转移:产品支持小组。

2. 何时做

编写性能测试Story。

一早设计性能测试。

建立性能测试基线。

安全性:

静态代码分析:找出潜在漏洞。(firebug)

动态分析:SQL注入或跨站点攻击。(fuzzing)

可维护性:

成功是0,失败必须是负数。

每个类或模块职责单一。

所有函数必须是单入口单出口???

页面上的两个域不能同名。

兼容性:

OS、浏览器。包括不同版本和类型。

可靠性:

首次失败时间、平均失败时间。

可伸缩性:

系统能否处理不断增长的用户需求。网络、数据库瓶颈?

可安装性、交互性。研究并提出测试策略以评估质量级别。

性能测试务必定义期望值。

性能测试工具:

施压工具:如JunitPerf,httpPerf,jmeter

瓶颈分析:JProfiler,查看瓶颈、内存泄露。

JConsole:分析DB的使用。

PerMon:监控CPU、内存、交换、磁盘IO、硬件资源。

网络:NetScout。

性能基准:

TPS、事务最大处理时间、繁忙连接最大值、最大处理时间和用户数对比图、达到最大处理时间8秒时的用户数。

七、测试象限总结

安全性:

静态代码分析:找出潜在漏洞。(firebug)

动态分析:SQL注入或跨站点攻击。(fuzzing)

可维护性:

成功是0,失败必须是负数。

每个类或模块职责单一。

所有函数必须是单入口单出口???

页面上的两个域不能同名。

兼容性:

OS、浏览器。包括不同版本和类型。

可靠性:

首次失败时间、平均失败时间。

可伸缩性:

系统能否处理不断增长的用户需求。网络、数据库瓶颈?

可安装性、交互性。研究并提出测试策略以评估质量级别。

性能测试务必定义期望值。

性能测试工具:

施压工具:如JunitPerf,httpPerf,jmeter

瓶颈分析:JProfiler,查看瓶颈、内存泄露。

JConsole:分析DB的使用。

PerMon:监控CPU、内存、交换、磁盘IO、硬件资源。

网络:NetScout。

性能基准:

TPS、事务最大处理时间、繁忙连接最大值、最大处理时间和用户数对比图、达到最大处理时间8秒时的用户数。

时间: 2024-07-30 10:19:12

《敏捷软件测试》的读书笔记(三)的相关文章

《探索式软件测试》读书笔记(上)

<探索式软件测试>读书笔记(上) 2015-05-12 一.局部探索式测试 1.如何测试用户输入  1)合法输入和非法输入    输入筛选器   输入检查   异常处理代码  2)常规输入还是非常规输入  3)默认输入或用户提供的输入  4)使用输出来指导输入选择 2.如何测试软件状态 3.代码路径 4.用户数据 5.运行环境二.全局探索性测试 分类 方法 商业区 指南测试法 卖点测试法  地标测试法  极限测试法  快递测试法  深夜测试法  遍历测试法  历史区 恶邻测试法  博物馆测试法

《你必须知道的.NET》读书笔记三:体验OO之美

一.依赖也是哲学 (1)本质诠释:"不要调用我们,我们会调用你" (2)依赖和耦合: ①无依赖,无耦合: ②单向依赖,耦合度不高: ③双向依赖,耦合度较高: (3)设计的目标:高内聚,低耦合. ①低耦合:实现最简单的依赖关系,尽可能地减少类与类.模块与模块.层次与层次.系统与系统之间的联系: ②高内聚:一方面代表了职责的统一管理,一方面又代表了关系的有效隔离: (4)控制反转(IoC):代码的控制器交由系统控制而不是在代码内部,消除组件或模块间的直接依赖: (5)依赖注入(DI): ①

《世界是数字的》读书笔记 三

<世界是数字的>读书笔记 三 第六章 软件系统 操作系统是软件中的基础层,他负责管理计算机硬件,并为其他被称作应用程序的程序运行提供支持. 6.1操作系统 操作系统控制和分配计算机资源.首先,他负责管理CPU,调度和协调当前运行的程序.操作系统通常都需要管理数十个同时运行的进程或任务. 其次,操作系统管理RAM.他把程序加载到内存中以便执行指令. 最后,操作系统管理和协调外接设备的活动. 6.2操作系统怎么工作 计算机启动时首先要加载代码,加载的过程中还要检查硬件,比如哪些设备已经接入电脑,,

悟道—位IT高管20年的职场心经(读书笔记三)

悟道--一位IT高管20年的职场心经 第三章 世事洞明皆学问 职场就是你的大半个世界 是你一辈子也读不完的一大本书 想明白一个道理, 看明白一件事儿, 你就向成功迈进了一步. 1.1  "四行"说 四行是指: 第一,  你自己得行.自己的基础的能力是必须的,得靠自己学习. 第二,  得有人说你行.需要有伯乐,实际上是你得有一个自己的圈子,并且这些人都人认同你. 第三,  说你行的人得行.自己周围的圈子,里面也必须有牛人,只有在牛人的范围内,才能突显你自己的才能. 第四,  你身子骨得行

《R实战》读书笔记三

第二章  创建数据集 本章概要 1探索R数据结构 2使用数据编辑器 3数据导入 4数据集标注 本章所介绍内容概括如下. 两个方面的内容. 方面一:R数据结构 方面二:进入数据或者导入数据到数据结构 理解数据集 一个数据集通常由一个表格组合而成,行表示观测,列表示变量.病人的数据集如表1所示. 表1 病人数据集 数据集能够反映数据结构.数据类型和内容. 数据结构 R数据结构如图2所示. 图2:R数据结构 数据结构即数据的组织方式,R数据结构包括向量.矩阵.数组.数据框和列表等. R向量 R向量是一

《大型网站技术架构》读书笔记三:大型网站核心架构要素

一.性能—响应时间决定用户 (1)浏览器端: ①浏览器缓存: ②使用页面压缩: PS:Gzip压缩效率非常高,通常可以达到70%的压缩率,也就是说,如果你的网页有30K,压缩之后就变成了9K左右.想要启用Gzip压缩,提高浏览速度,可以浏览这篇文章:http://www.chinaz.com/web/2012/1017/278682.shtml ③合理布局页面: CSS:把样式表置于顶部:避免使用CSS表达式(expression_r):使用外部JavaScript和CSS:削减JavaScri

《精益和敏捷开发》读书笔记

对精益不了解, 敏捷开发则是一个到处都在谈论的话题, 我只是跳着看了一些在敏捷方面的做法和观点, 而且主要是scrum相关的, 当然本书的敏捷开发基本上可以等同于scrum. 算是增加了一层对scrum新的认识. 书不敢说是一本好书, 只能各取所需吧. ======================我是读书笔记的分割线================== 如果在同一个办公区域, 你记不清所有人的名字, 那么这就是一个大型团队了 产生非最佳决策的原因是错误的假设和不充分的理由 守破离法则 第一步,

软件需求模式 读书笔记三

通过这一个月的阅读,我终于读完了<软件需求模模式>这本书,前两个读书笔记已经把这本书的几种模式介绍了,之前有基础需求模式,信息需求模式,数据实体需求模式,用户功能需求模式.这次介绍的是性能需求模式,适应性需求模式,访问控制需求模式和商业需求模式. 性能需求模式包括五种的性能的需求模式:影响时间(系统需要多少时间完成一个请求).动态容量(系统能够同时处理多少件事).吞吐量(系统处理时间的速率).静态容量(系统可以保存多少某种类型烦的实体)和可用性(什么时候系统对用户是可用的,以及多么可靠). 当

Struts2技术内幕 读书笔记三 表示层的困惑

表示层能有什么疑惑?很简单,我们暂时忘记所有的框架,就写一个注册的servlet来看看. index.jsp <form id="form1" name="form1" method="post" action="loginServlet"> <table width="357" border="0" align="center"> <t

《淘宝技术这十年》读书笔记 (三). 创造技术TFS和Tair

前面两篇文章介绍了淘宝的发展历程和Java时代的变迁: <淘宝技术这十年>读书笔记 (一).淘宝网技术简介及来源 <淘宝技术这十年>读书笔记 (二).Java时代的脱胎换骨和坚若磐石 马云说过"创新不是为了与对手竞争,而是跟明天竞争",所以这篇文章讲述淘宝的创新技术TFS和Tair及创新的产品. 该篇文章不仅仅对在读大学生非常有所帮助,因为你能从文章中看到很多你需要学习的知识,不仅仅包括数据库.计算机网络.操作系统.数据结构等基础课程:还根据时代的技术变迁讲述了