Testing - 测试基础 - 理解
理解
目的
- 测试就是要找到关键信息,有关项目和产品的关键决策都是根据这些信息做出。
- 对产品质量做出总体评估。
- 找出并报告团队所有可能会对产品价值产生消极影响的问题(但并不意味着能发现所有问题)。
重心
- 将时间和精力投入在客户关心的需求上。
- 先测试变更,再对没有变动的部分进行回归测试。
- 先测试核心功能,再测试辅助功能。
- 先测试功能,再测试可靠性。
- 先测试常见场景,再测试罕见场景(如压力和错误场景)。
关注
- 测试人员不是质量卫士,测试本身不会提高质量或者降低质量。
- 测试人员需要尽早加入团队尽早开展前期准备工作;但测试人员不是过程改进小组,不要轻易对别人的工作指手画脚。
- 测试人员的职责是清楚的报告问题。
- 询问一切,但不一定外露。
- 优秀测试和平庸测试的区别在于如何思考。
- 测试需要思考和推断,并不只是输出结果与预期结果的简单比对。
- 测试员其实是参与了设计和执行测试的各个环节:测试架构,环境搭建,测试用例等等,并确定预期输出
- 大多数设计测试都是基于业务流程和原理的有效推断,或者测试员的有效经验。
要素
- 测试人员:进行测试的人
- 覆盖率:测试需求中的哪些内容
- 潜在问题:决定要进行何种测试(比如基于风险的测试)
- 活动:如何测试
- 评估:确保测试人员按照需求规格说明完成测试。
交互
- 测试本身是一种服务。
- 测试员关注的是观察和证据,让程序员根据自己的推断寻找缺陷。
- 作为程序员工作的批评者,理解程序员的工作价值。关注缺陷本身而不是人。
- 拒绝接受误解和不尊重。
NewComer
- 所谓测试新手,是指新接触这个项目的测试人员。
- 为测试新手指派技术指导。
- 让测试新手对照文档(测试手册或者在线帮助)了解软件。
- 让新手尝试以简单而实际的手段使用产品。
- 在新手在测试新的程序之前,先测试旧有的程序。
- 让新手测试已经解决但是尚未关闭的问题。
- 不要派新手参加接近完成的项目。
黑盒并不是基于“无知”的测试
需要了解用户的期望和需要,
需要了解测试背景(业务流程、业务配置、测试与运行环境的区别、业务数据、接口交互等等)
了解越多,了解的方式越多,越能够更好地测试。
不要凭借所谓的“直觉”进行测试
直觉有很强的偏见性,是测试员自己的”本能感觉”
直觉推断实际上是基于有效测试经验和对业务的了解,往往在测试初期发挥作用,测试的越深入细致,“直觉”发生偏差的可能性就越大!
可以把这种“直觉”当作指南,给出合理性证明。
当有”这是问题,因为它显然是问题”的想法时, 可考虑换一种方式: “这是可能是问题,因为观察到行为与需求存在矛盾, 需要做进一步的分析证明”
不要急于测试复杂产品或功能
当要测试复杂和使人畏惧的功能集合时,可间歇进行。
可试着先研究复杂产品30分钟或一个小时,然后停下来干点别的。
不要担心在这段不长的时间内效率不高,如果觉得问题太多,则尽快退出.
经过几个轮次的陷入与退出,就会开始明白产品的模式和轮廓,很快就会在头脑中形成更系统、更具体地测试和研究策略。
运用试探法快速产生测试思路
试探法是一种经验规则,是一种基于经验做出猜测的方法。一组好的试探方法有助于很快地生成测试用例。
以下是采用试探法测试的一些例子:
- 边界测试。边界更有可能暴露规格说明的模糊问题
- 测试所有错误消息。错误处理代码与功能代码相比,一般比较弱
- 测试与程序员的配置不同的配置。程序员已经偏信自己的配置没有问题
- 运行比较难设置的测试。在其它条件相同的情况下,易于设置的测试更有可能已经被执行过
- 避免冗余测试。如果某个测试实际上是重复其它测试,就不会产生新的价值。
慎用陌生的试探法来做测试,可能会花费过多精力去熟悉测试方法本身。
在收集测试方法时,要了解每个方法背后的原理,以及是否适用于当前的测试需求。
保持清新的态度
测试员在理解了产品或者功能后,会在头脑中形成映射,并且头脑不再那么努力工作。
当非常了解产品后,会对产品做出更多的假设,但却很少地检查这些假设的合理性是否仍然存在。
这种情况对于测试至少有3点提示:
- 第一次接触产品或功能时,要特别注意使自己困惑和烦恼的地方。用户可能也有类似反应。
- 当与团队的新成员一起工作时,与他们一起测试。 观察他们在了解产品时的反应。
- 警惕陷入测试惯例。即使没有遵循严格的测试脚本,也可能对特点功能太熟悉,以至于以越来越窄的方式进行测试。在任何可能的地方引入多样性,或改由其他测试员负责。
抉择
Tester’s Career Series
CN
EN
软件测试感悟
Testing - 测试基础 - 理解的更多相关文章
- Testing - 测试基础 - 自动
自动化测试模型 一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库.测试数据源.测试对象识别标准,以及种可重用的模块. 自动化测试框架在发展的过程中,不断有新的模型(概念)被提出,目 ...
- Testing - 测试基础 - 探索
定义 探索性测试(Exploratory Testing)是一种自由的软件测试风格,强调测试人员同时展开测试学习,测试设计,测试执行和测试结果评估等活动,以持续优化测试工作. 其特征有:即兴发挥,快速 ...
- Testing - 测试基础 - 用例
测试用例 是指对一项特定的软件产品进行测试任务的描述,体现测试方案.方法.技术和策略. 内容包括测试目标.测试环境.输入数据.测试步骤.预期结果.测试脚本等,并形成文档. 每个具体测试用例都将包括下列 ...
- Testing - 测试基础 - 方法
选择和使用测试方法和工具 按照测试需求用途(或测试技巧)选择 在软件开发生命周期和软件测试流程中适当地选择 按照测试人员实际技能选择 选择可提供的和可执行的 测试方法 类别及技巧 目标 使用方法 举例 ...
- Testing - 测试基础 - 概念
测试是为了度量和提高被测试软件的质量,对测试软件进行工程设计.实施.维护的的整个生命周期过程. 仅仅发现Bug是测试的初步,而分析出根本原因推动问题的解决,却要有很深的功底. 不同的测试岗位从事不同的 ...
- Testing - 测试基础 - 分类
对软件内部结构的深入程度 黑盒测试:又叫功能测试.数据驱动测试或基于需求规格说明书的功能测试. 白盒测试:又称结构测试.逻辑驱动测试或基于程序代码内部构成的测试. 灰盒测试:包含性能测试.自动化测试. ...
- Testing - 测试基础 - 流程
测试存在于各个阶段: 需求测试--->单元测试--->集成测试--->系统测试--->性能测试--->用户测试--->回归测试 需求测试 完整性&正确性 一 ...
- Testing - 测试基础 - 阶段
估算 测试对软件工作量的估算的准确性 测试评估软件系统的状况的准确性 关注点: 不准确的估算 不适当的开发过程 不真实的状态报告 如何知道对工作量的估算是正确的 估算工作量的工具很容易出错 对软件工作 ...
- Testing - 测试基础 - 模型
珠玉在前,不再赘言. 软件测试模型 软件测试模型汇总
随机推荐
- Runtime 动态加载方法
动态加载 #import"ViewController.h" #import"Person.h" @interfaceViewController() @end ...
- haproxy的使用
假如 www.example.com想要使用haproxy作为代理,则要在自己的 dns服务器设置AAAA记录对应于haproxy机器的IP. 这样访问www.example.com其实就访问了hap ...
- pdf.js在IIS中配置使用笔记
最近在手机App开发Android版本时候遇到需要显示PDF文件的需求,记得之前直接使用系统浏览器或者WebView就可以显示,但是现在不可以了,只能另寻其他办法. 最终找到PDF.JS来进行实现,但 ...
- 与webview打交道中踩过的那些坑
随着HTML5被越来越多的用到web APP的开发当中,webview这一个神器便日渐凸显出重要地位.简要的说,webview能够在移动应用中开辟出一个窗口,在里面显示html页面,css以及js代码 ...
- 手把手搭建WAMP+PHP+SVN开发环境
一:WAMP 这款软件在安装的过程中就已经把Apache.MySQL.PHP继承好了,而且也做好了相应的配置,除此之外,还加上了SQLitemanager和Phpmyadmin,省去了很多复杂的配置过 ...
- Linux下Java开发环境搭建—CentOS下Mysql安装教程
本人学习Linux时使用的是CentOs5.5版本,在该环境中,Mysql的安装方法有很多种,下面我只讲我这次成功了的方法,作为一个记录,供大家参考,同时给自己做一个笔记. MySQL下载 1.进入网 ...
- Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例
引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...
- 使用IPostBackEventHandler让JavaScript“调用”回传事件
在由ASP.NET所谓前台调用后台.后台调用前台想到HTTP——实践篇(二)通过自己模拟HTML标签事件与服务器交互,讲了ASP.NET的服务器控件是怎么render成HTML后市怎么“调用”后台方法 ...
- flex 阅读器
遇到很多的困难 首先是 pdf2swf 而后又下载swftools 而后有swfcombine.exe 让制作的swf 文字可选? —— 这应该是很常见的需求啊! 可是我搜索来搜索去都找不到... 搜 ...
- java中string内存的相关知识点
(一):区别java内存中堆和栈: 1.栈:数据可以共享,存放基本数据类型和对象的引用,其中对象存放在堆中,对象的引用存放在栈中: 当在一段代码块定义一个变量时,就在栈中 为这个变量分配内存空间,当该 ...