<<软件测试实战>>读书笔记
软件测试基础
软件的复杂度已经超越了人的理解能力
1. 虽然高抽象的层次语言,程序框架,程序库等提高了人的生产力,但是还是需要开发者深入理解细节,可以减少开发时间,但是无法减少开发者学习整个技术栈的时间
2. 对于复杂的软件,如果测试人员不能掌握全部的信息,那么他的测试策略已经会错误(对于开发也是如此),所以需要和各个工作岗位的人进行协作
3. 软件复杂,所以测试用例需要进行迭代,持续地评估和反思
4. 大规模的软件中,对于少量代码的变更都不能掉以轻心
5. 单凭人的脑力已经很难应对复杂的软件测试了,测试人员需要考虑测试自动化来对付这种情况
测试步骤
1. 第一个测试周期
1.1 从显而易见的简单测试开始 (因为这个时候测试人员对于软件还不熟悉)
1.2 记录还需要测试什么
1.3 检查有效用例并观察发生了什么 (根据第一步的信息开始设计第二步和第三步)
1.4 做一些快速的测试
1.5 总结对程序和问题的认识 (开始反思,总结,准备下一阶段的测试) 2. 第二个测试周期
2.1 在进行任何测试之前都给予评估
2.2 评审对不修复的问题的意见
2.3 找出上次的测试笔记,加入新的笔记,并且开始测试
测试人员的工作效率取决于他对软件和项目的理解,而不是他的测试技术(对于开发也是如此)
1. 理解产品
2. 理解用于期望
3. 理解产品的架构和源码(做到这点已经不是单纯地测试了)
4. 回避浪费时间却没有收益的任务
5. 了解产品的元素和项目团队,知道出问题找谁
6. 良好地同事关系
缺陷报告
1. 程序员要阅读缺陷报告,了解缺陷的症状和步骤,好的缺陷报告可以帮助程序员快速定位问题,坏的缺陷报告只能浪费调试时间
2. 产品经理要阅读缺陷报告,了解缺陷的症状和严重性,好的缺陷报告可以帮助产品经理设定优先级,差的缺陷报告会误导他做出错误的决定
3. 在大型项目里面,缺陷报告是对于一个开发和测试评测的一个工具
报告缺陷是为了让缺陷得到修复
1. 清楚说明对用户的危害
2. 提供尽可能多的技术信息,方便程序员调试
3. 今早提交缺陷报告
4. 报告发现的所有缺陷,即便有些缺陷难以重现
七大产品元素
1. 结构,在文件级别,构成的元素是各种文件,在代码级别,是各种类,函数等
2. 功能,软件相关功能
3. 数据,比如测试图片,有BMP,PNG等格式
4. 接口,比如用户界面,系统API等
5. 平台
6. 操作,可能的操作组合
7. 时间
测试人员应该先提出假设,然后再实验,特别是在发现一些本来重现过但是没有办法再重现的问题
测试文档
识别风险
1. 自动化测试用例:该区域有自动化测试用例吗?? 测试在定期运行吗?? 测试通过率是多少?? 测试覆盖了哪方面,没有覆盖哪方面?
2. 手动测试: 有人手动测试该区域吗? 经过测试,对该区域有多少信心? 如果满分是10分,打多少分??
3. 代码变更: 该区域近期存在代码变更吗? 变更频繁吗? 近期是新增功能,代码重构,还是缺陷修复??
4. 代码复杂度: 代码规模是多少,代码是否复杂,如果复杂是10分,改区域得多少分? 5. 产品缺陷: 该产品缺陷多吗?? 有哪些典型的缺陷,哪些缺陷已经被修复,哪些缺陷还没有被修复
测试建模
1. 两因素组合测试,可以暴露由两个因素变量共同作用而引发的缺陷
2. 多因素组合测试, 生成的测试集可以覆盖任意N个变量
1. 启发式建模方法
2. 输入与输出模型建模
3. 系统生态图
4. 实体关系模型
5. 状态机模型
测试开发
1. 自动化测试应切合当前的产品
2. 自动化测试应聚焦风险,重点解决产品面临最大的风险,不必面面俱到
3. 自动化测试应该在资源允许的范围内尽力扩展测试领域,提供多样化的测试
4. 自动化测试应该讲究实用,测试人员需要根据项目语境选择合适的开发策略
自动化测试金字塔:
最底层是单元测试和组件测试,由开发人员维护
然后是中层是面向业务的自动化测试
顶层是少量基于图形界面的自动化测试
金字塔上方是手工测试
<<软件测试实战>>读书笔记的更多相关文章
- csapp读书笔记-并发编程
这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...
- CSAPP 读书笔记 - 2.31练习题
根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1) 属于第一种情况 sum = x ...
- CSAPP读书笔记--第八章 异常控制流
第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...
- CSAPP 并发编程读书笔记
CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- 《C#本质论》读书笔记(18)多线程处理
.NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...
- C#温故知新:《C#图解教程》读书笔记系列
一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- Web高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
随机推荐
- theano 实现图像局部对比度归一化
很多时候我们需要对图像进行局部对比度归一化,比如分块CNN的预处理阶段.theano对此提供了一些比较方便的操作. 局部归一化的一种简单形式为: 其中μ和σ分别为局部(例如3x3的小块)的均值和标准差 ...
- 禁用 baloo_file_extractor 加速 ubuntu 14.04 (KDE)
在复制了一堆零散文件后,系统同然变得奇卡,看看cpu和ram都占用不高,但看到这个进程 baloo_file_extractor 时不时地冒一下泡,怀疑是它在频繁访问硬盘.禁止它自动启动的方式: $ ...
- WPF程序如何自定义启动窗口并传参
首先,找到App.xaml,将Application标签中的StartupUri属性去掉; 然后可以在MainWindow.xaml.cs中重载构造函数,并添加自己想要的参数; 然后在App.xaml ...
- AMD系统中,virtualbox 不能为虚拟电脑打开一个新任务
我的电脑装的Genymotion,之前开发Andriod4.4版本的时候在Genymotion上都可以运行,可是开发Andriod5.0+的时候,Genymotion就不能运行了,究其原因,原来是Vi ...
- SqlServer性能优化 提高并发性能(八)
并发访问: 当多个线程访问同一个资源,会产生并发性问题 并发控制与处理: 乐观并发控制:一种方式是"后来的更新者获胜" 这意味着先来的用户提交的值会在没有察觉的情况下丢失. 为 ...
- [GodLove]Wine93 Tarining Round #9
比赛链接: http://vjudge.net/contest/view.action?cid=48069#overview 题目来源: lrj训练指南---二维几何计算 ID Title Pro ...
- mongo链接solr的过程与问题
我的环境: 1:ubunt 16 2:mongodb 2.6.1 3:solr 6.3 4:JDK 1.8 准备过程: 1:安装mongo-connector #pip install mongo-c ...
- parsec-2.1 编译错误
OS: Ubuntu 14.04 LTS (x86_64) 参考:https://forums.freebsd.org/threads/security-openssl-build-failure.4 ...
- python数据结构与算法
最近忙着准备各种笔试的东西,主要看什么数据结构啊,算法啦,balahbalah啊,以前一直就没看过这些,就挑了本简单的<啊哈算法>入门,不过里面的数据结构和算法都是用C语言写的,而自己对p ...
- javascript数组 去重
数组去重的方法有很多,到底哪种是最理想的,自己不清楚.于是自己测试了下数组去重的效果和性能.测试十万个数据,代码和所耗大概时间如下. 到底采用哪种方法,根据实际情况而定吧. /*方法一: 1,'1' ...