前言
从当初偶然的机会进入测试领域,到现在已经多年了,在这些年做过测试执行、测试技术研究、测试工具等测试相关的工作。最近在工作上有些迷茫,不知道后面的职业道路怎么走,感觉很多测试技能,经验都没得到很好的总结和思考。之前接触过思维导图,但是一直没有发现其价值所在,最近又重新关注,发现思维导图真是个好东东,对测试工作有很大的帮助,所以特总结一下,分享给大家。
正文
一、测试是否需要建模
通常一谈到建模,大家普遍都认为开发才需要,对测试来说,最多可能是在测试设计阶段才需要建模。对于测试模型,一般都谈的比较少,因为很多人都认为测试要求不高,不需要什么模型,也没有什么模型。那么我们分析一下测试的特点以及建模的价值。在工作中,对测试人员的要求,知识面越广越好。和开发人员进行比较,开发人员是纵向发展,测试人员是横向发展。测试的特点要求知识面广,在做测试的过程中要考虑的很全面,那么一方面有多的输入,另一个方面我们要防止测试遗漏,有很高的要求,我们怎么做呢?我们如何防止测试遗漏?那么就需要建模。因此这个也就是测试建模的价值所在,并不在乎你的模型是复杂还是简单,达到你想要的效果即可。那么测试建模有什么特点呢?笔者认为有如下两个特点:一是简单,二是有效。因此笔者强烈推荐大家在工作中用起来,花几分钟时间就能取得很好的效果,这样的事情太有价值了。
那么我们先来看一个专家的模型,看看他是怎么建模的。下图示测试专家james Bach提出的启发式测试策略模型(Heuristic Test Strategy Model)。
上图是HTSM的概要描述,测试人员利用质量标准、项目环境、产品元素,指导测试技术的选择与应用,并产生观察到的质量。那么针对测试技术而言,有可以进一步细分为功能测试、压力测试等等。
从上面的模型来看,大家会看出来基本上就是一个分类而已,当然整理出一个让大家都觉得合理而且全面的分类是需要有丰富的经验以及总结概括等能力的。看了上面的例子之后,谈一下我对模型的理解,所谓模型,我认为是一种抽恩多首先是了解建模对象的方方面面,然后进行分类,再分类的基础上再进行某种维度的抽象。模型就是这么简单,而且对于建模每个人都可以不一样,我们完全也可以整理出一套符合自己想法和测试产品的模型。
二、测试如何建模
笔者虽然是学计算机出生,但是在学校中并没有涉及到测试,进入测试领域也属偶然,在工作中并没有参与过系统的测试基础培训,也没有完整的学习过。因此在工作这么多年后,发现自己要想提升,基础知识必不可少。
先谈几种生活中的场景:
场景一:笔者家有一个3岁多的宝宝,暑假报名去学习跳舞,整整一个暑假,老师只教压腿、弯腰等基本功;
场景二:笔者最近在学习吉他,报了一个培训班,吉他老师只让天天练习右手拨弦,左手按品位,打个比喻,就要像程序员按键盘那样灵活。
场景三:很多知名的大学教授,特别是国外的一些学校,总是在给本科生代课,以前笔者也不理解,感觉这些是很大的浪费。大家都知道本科生学习的很多东西都是基础知识,要想解决深层次的问题必须要有牢固的基本功。
有了基本功,那么如何提升自己呢?这时笔者翻阅的一些杂七杂八的书籍有了一些提醒,比如经济学,经济学的发展就是不断的总结理论,推翻理论的过程。因此笔者认识到要想提升自己,必须也有一套方法或者模型。再者,经过这么多年的人生经历,笔者感悟到世上万事万物一定有些内在的东西是相通的,类似的,就像前面提到的三种场景一样,整理出来的模型一定应该是通用的。
先从最简单的IPO模型谈起吧,下面是一个IPO模型
这个模型很简单,但是也很实际。作为一个职场人士,在工作中总要有自己的加工和输出,否则就毫无价值,只能失业了。下面的模型就是在IPO模型基础上扩展得到的,我们做测试建模就是结合测试特有的东东对下图进行细化:
● 基本功:是指最基础,可以在不同环境中都可以使用的技能或知识,比如编程语言,数据库,操作系统等计算机方面的知识,测试理念、黑白盒测试的基本方法等。
● 上下文:解决问题或者达到目标的环境,比如当前的项目,产品等。理解或者梳理上下文尤其重要,但是在实际测试中却通常被忽略。比如如何对一只铅笔进行测试?这个问题怎么回答,回答之前一定要考虑上下文。
● 经验:测试人员通过工作和生活的总结积累,因人而异。
● 方法:这里的方法重点指利用思维导图来建模解决问题的方法(关于思维导图和XMind工具,请读者自行上网搜索)
● 目标:需要解决的问题
笔者认为测试建模的过程就是使用上面这个模型的应用,其中不变的是基本功,建议大家花时间打牢基本功,无论在哪个公司做测试都用得上。上下文是最容易忽略的,通常大家会根据第一反应去回答、解决问题,建议利用思维导图的方式将上下文分析全面了,很多时候全面了解了上下文解决问题的方法自然就出来了。那么为什么要选择思维导图呢?思维导图是一种将放射性思考具体化的方法,它简单却又极其有效,是一种革命性的思维工具。大家可以在网络上找到关于思维导图的相关资料以及范例。前文描述过测试工作的特点,因此笔者觉得对测试来说思维导图是最合适不过的工具。
三、测试建模的对象
在测试工作中,哪些对象可能需要建模呢?笔者认为对于测试工作的各个阶段都可以建模,无论是测试基本理论,还是实际工作中的测试设计,测试相关模板整理,测试经验总结等等,只要你能想到的地方基本上都可以使用。下面举两个例子来看一下建模的效果。
回答一个测试基本概念:软件测试究竟发挥了什么作用?我们先来看一下网上相关的回答
软件测试的作用,具体地说明的话,可以概括为下列四个方面:
● 对产品质量完成全面的评估,为软件产品发布(如验收测试)、软件系统部署(如性能规划测试)、软件产品鉴定(第三方独立测试)委托方和被委托方纠纷仲裁(第三方独立测试)和其它决策提供信息;
● 通过持续的测试(包括需求评审、设计评审、代码评审等)可以对产品质量提供持续的、快速的反馈,从而在整个开发过程中不断地、及时地改进产品的质量,并减少各种返工,降低软件开发的成本;
● 通过测试发现所要交付产品的缺陷,特别是尽可能地发现各种严重的缺陷,降低或消除产品质量风险,提高客户的满意度,扩大市场份额,提高客户的忠诚度。
● 通过对缺陷进行分析,找出缺陷发生的根本原因(软件过程中的问题,包括错误的行为方式)或总结出软件产品的缺陷模式,避免将来犯同样的错误或产生类似的产品问题,达到缺陷预防的目的。
(注:以上斜体部分引自http://blog.csdn.net/kerryzhu/article/details/7516100,特对作者表示感谢!)
上面的回答应该是很全面了,那么我们是否可以有自己的思考或者增加一些自己的理解呢?我们使用XMind工具来建模分析一下,先看看分析结果:
上面的描述比较简单,大家可以进一步补充描述。通过上面的建模,我们可以发现有这么几个特点:
● 一目了然,一下子就能看清楚全景。
● 分类清楚,也很容易记住,如果有遗漏也容易查找和补充。
● 除了包含上面斜体部分所描述的内容外,还补充了软件测试工作队测试的价值。
再看一下笔者对性能测试的一个简单建模,下面的建模只是个参考,不同的人可以创建不同的模型,大家可以把下面的模型做的更炫,更全面,网上有很多很好的例子,只要能够在实际工作中发挥作用就是好的模型。如下图:
关于测试建模就总结这么多,再重申一下笔者的观点。建模不是为了输出一个多么复杂和高深的模型,而是为了解决实际问题,利用思维导图可以在测试工作中碰到的所有问题或者需要做测试总结的地方进行建模,简单有效。
作者:尘中的尘
来源:51testing 投稿