理解

目的

  • 测试就是要找到关键信息,有关项目和产品的关键决策都是根据这些信息做出。
  • 对产品质量做出总体评估。
  • 找出并报告团队所有可能会对产品价值产生消极影响的问题(但并不意味着能发现所有问题)。

重心

  • 将时间和精力投入在客户关心的需求上。
  • 先测试变更,再对没有变动的部分进行回归测试。
  • 先测试核心功能,再测试辅助功能。
  • 先测试功能,再测试可靠性。
  • 先测试常见场景,再测试罕见场景(如压力和错误场景)。

关注

  • 测试人员不是质量卫士,测试本身不会提高质量或者降低质量。
  • 测试人员需要尽早加入团队尽早开展前期准备工作;但测试人员不是过程改进小组,不要轻易对别人的工作指手画脚。
  • 测试人员的职责是清楚的报告问题。
  • 询问一切,但不一定外露。
  • 优秀测试和平庸测试的区别在于如何思考。
  • 测试需要思考和推断,并不只是输出结果与预期结果的简单比对。
  • 测试员其实是参与了设计和执行测试的各个环节:测试架构,环境搭建,测试用例等等,并确定预期输出
  • 大多数设计测试都是基于业务流程和原理的有效推断,或者测试员的有效经验。

要素

  • 测试人员:进行测试的人
  • 覆盖率:测试需求中的哪些内容
  • 潜在问题:决定要进行何种测试(比如基于风险的测试)
  • 活动:如何测试
  • 评估:确保测试人员按照需求规格说明完成测试。

交互

  • 测试本身是一种服务。
  • 测试员关注的是观察和证据,让程序员根据自己的推断寻找缺陷。
  • 作为程序员工作的批评者,理解程序员的工作价值。关注缺陷本身而不是人。
  • 拒绝接受误解和不尊重。

NewComer

  • 所谓测试新手,是指新接触这个项目的测试人员。
  • 为测试新手指派技术指导。
  • 让测试新手对照文档(测试手册或者在线帮助)了解软件。
  • 让新手尝试以简单而实际的手段使用产品。
  • 在新手在测试新的程序之前,先测试旧有的程序。
  • 让新手测试已经解决但是尚未关闭的问题。
  • 不要派新手参加接近完成的项目。

黑盒并不是基于“无知”的测试
需要了解用户的期望和需要,
需要了解测试背景(业务流程、业务配置、测试与运行环境的区别、业务数据、接口交互等等)
了解越多,了解的方式越多,越能够更好地测试。

不要凭借所谓的“直觉”进行测试
直觉有很强的偏见性,是测试员自己的”本能感觉”
直觉推断实际上是基于有效测试经验和对业务的了解,往往在测试初期发挥作用,测试的越深入细致,“直觉”发生偏差的可能性就越大!

可以把这种“直觉”当作指南,给出合理性证明。
当有”这是问题,因为它显然是问题”的想法时, 可考虑换一种方式: “这是可能是问题,因为观察到行为与需求存在矛盾, 需要做进一步的分析证明”

不要急于测试复杂产品或功能
当要测试复杂和使人畏惧的功能集合时,可间歇进行。
可试着先研究复杂产品30分钟或一个小时,然后停下来干点别的。
不要担心在这段不长的时间内效率不高,如果觉得问题太多,则尽快退出.
经过几个轮次的陷入与退出,就会开始明白产品的模式和轮廓,很快就会在头脑中形成更系统、更具体地测试和研究策略。

运用试探法快速产生测试思路
试探法是一种经验规则,是一种基于经验做出猜测的方法。一组好的试探方法有助于很快地生成测试用例。

以下是采用试探法测试的一些例子:

  • 边界测试。边界更有可能暴露规格说明的模糊问题
  • 测试所有错误消息。错误处理代码与功能代码相比,一般比较弱
  • 测试与程序员的配置不同的配置。程序员已经偏信自己的配置没有问题
  • 运行比较难设置的测试。在其它条件相同的情况下,易于设置的测试更有可能已经被执行过
  • 避免冗余测试。如果某个测试实际上是重复其它测试,就不会产生新的价值。

慎用陌生的试探法来做测试,可能会花费过多精力去熟悉测试方法本身。
在收集测试方法时,要了解每个方法背后的原理,以及是否适用于当前的测试需求。

保持清新的态度
测试员在理解了产品或者功能后,会在头脑中形成映射,并且头脑不再那么努力工作。
当非常了解产品后,会对产品做出更多的假设,但却很少地检查这些假设的合理性是否仍然存在。

这种情况对于测试至少有3点提示:

  • 第一次接触产品或功能时,要特别注意使自己困惑和烦恼的地方。用户可能也有类似反应。
  • 当与团队的新成员一起工作时,与他们一起测试。 观察他们在了解产品时的反应。
  • 警惕陷入测试惯例。即使没有遵循严格的测试脚本,也可能对特点功能太熟悉,以至于以越来越窄的方式进行测试。在任何可能的地方引入多样性,或改由其他测试员负责。

抉择

Tester’s Career Series
CN
EN
软件测试感悟

Testing - 软件测试知识梳理 - 理解测试的更多相关文章

  1. Testing - 软件测试知识梳理 - 探索性测试

    定义 探索性测试(Exploratory Testing)是一种自由的软件测试风格,强调测试人员同时展开测试学习,测试设计,测试执行和测试结果评估等活动,以持续优化测试工作. 其特征有:即兴发挥,快速 ...

  2. Testing - 软件测试知识梳理 - 软件可靠性测试

    软件可靠性的基本概念 错误,缺陷,故障和失效 错误:指的是软件在生命周期中各个阶段的状态和行为与人们的期待不一致的偏差,不单单是软件系统本身,中间产品的偏差也算是软件错误 缺陷:指的是软件中一切不好的 ...

  3. Testing - 软件测试知识梳理 - 相关词汇

    测试策略 描述测试工程的总体方法和目标:根据测试需求,描述在什么测试阶,依据什么测试要素和目标,进行什么种类的测试,使用什么样的测试方法和工具. 测试策略的制定主要包含如下内容: 确定测试过程要使用的 ...

  4. Testing - 软件测试知识梳理 - 测试分类

    参考信息 软件测试分类 经典软件测试技术分类 软件测试方法汇总 简洁分类 对软件内部结构的深入程度 黑盒测试:又叫功能测试.数据驱动测试或基于需求规格说明书的功能测试. 该测试类别注重于测试软件的功能 ...

  5. Testing - 软件测试知识梳理 - 测试模型

    珠玉在前,不再赘言. 软件测试模型 软件测试模型汇总

  6. Testing - 软件测试知识梳理 - 测试流程

    测试存在于各个阶段: 需求测试--->单元测试--->集成测试--->系统测试--->性能测试--->用户测试--->回归测试 需求测试 完整性&正确性 一 ...

  7. Testing - 软件测试知识梳理 - 测试用例

    测试用例 是指对一项特定的软件产品进行测试任务的描述,体现测试方案.方法.技术和策略. 内容包括测试目标.测试环境.输入数据.测试步骤.预期结果.测试脚本等,并形成文档. 每个具体测试用例都将包括下列 ...

  8. Testing - 软件测试知识梳理 - 软件性能测试

    软件性能测试的基本概念 软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是软件在完成该功能时展示出来的及时性. 软件性能的指标 响应时间:是指系统对请求作出响应的时间,并且 ...

  9. Testing - 软件测试知识梳理 - 自动化测试

    软件开发的过程是一个持续集成和改进的过程,而每一次的改进都可能引进新bug,因此当软件的一部,或者全部修改时,都需要对软件产品重新进行测试. 其目的是要验证修改后的产品是符合需求的,而当没有自动化测试 ...

随机推荐

  1. html语义化练习易牛课堂代码

    html <body>     <header>         <!-- 导航 -->         <nav> <a href=" ...

  2. php中使用com组件出现"拒绝访问"的处理

    php中使用com组件出现"拒绝访问"的处理 2010年05月14日 12:28:00 阅读数:1529 代码如下, // 建立一个指向新COM组件的索引 $word = new ...

  3. pyton 模块之 pysmb 文件上传和下载(linux)

    首先安装pysmb模块 下载文件 from smb.SMBConnection import SMBConnection conn = SMBConnection('anonymous', '', ' ...

  4. MySql中对Group by后的结果数进行Count

    今天在写MySQ的SQL语句的时候遇到了一个奇怪的问题 select count(*) from subsitealbum t1, photo t2,files t3 where t1.SourceA ...

  5. django 数据库配置 ,APP 迁移.模型基础

    # 1.数据库的连接配置django 连接mysql的配置流程:- 安装 pymysql pip install pymysql- 创建数据库用户有创建数据库权限的用户- 创建数据库crm .进入数据 ...

  6. 648. Replace Words 替换成为原来的单词

    [抄题]: In English, we have a concept called root, which can be followed by some other words to form a ...

  7. mysql 递归查找菜单节点的所有子节点

    背景                                                                                                   ...

  8. Idea创建简单Java Web项目并部署Servlet

    1.打开Idea,创建JAVA Web项目 在WEB-INF目录下创建classes和lib文件夹 配置编译输出路径为刚才新建的classes文件夹 配置依赖jar包加载路径 添加tomcat ser ...

  9. Python开发——数据结构【深浅拷贝】

    浅拷贝 # 浅拷贝只copy一层 s = [3,'Lucy',4,[1,2]] s1 = s.copy() 深拷贝 # 深拷贝——克隆一分 import copy s = [3,'Lucy',4,[1 ...

  10. mencached

    是一个免费开源的,分布式内存对象缓存系统数据库. 是一个非关系型数据库形式,属于NOSQL NOT OLNY SQL ,不仅仅是关系数据库 它属于K V 存储 KEY VALUE 相对应的存储 KEY ...