有关测试的思考(2):开始项目测试以前的准备

最近终于有时间写些东西了。这篇博文虽然是此系列的第二篇文章,但是距离上一篇的时间已经快有两年的时间了。有人不禁会问,难道笔者真的忙到连写博文的时间都没有么?其实不是,问题在于写博文的目的。第一篇博文是应微软Test Guru Team(一个微软内部的Virtual Team,主要任务是推进Test Excellence)的要求所写,文章是写给中国区的SDET(Software Development Engineer in Test)看的,为了扩大影响中文版同时也发到了CSDN和51Testing的博客上,同类型的文章还有李和恒的“飞花摘叶还是重剑无锋”(顺便说一下,李和恒是我所敬仰的微软北京圈子里为数不多的测试大牛,此人思想深邃,洞察深刻,大才。其所写文章亦如此,只是略有晦涩,初读难解其中道理,深读后可得其妙)。所有这些文章都是经过十几稿review后方才定稿,着实花了不少心血。两年后的今天,team早已不复存在,team member也已天南地北,其中的两位仁兄已经定居美国…,写第二篇文章的目的其实只是觉得在微软四年半的测试经历确实有些感悟,希望与读者分享。

另外,文章中出现了中英文混编的状态,笔者在这里向各位读者表示抱歉。这样做的主要原因有二:一是很多名词真的是很难找到中文解释,比如review,Virtual Team等;二是有些词句即使翻译成中文,也很难表达其中意思或者看上去不舒服,比如Test Guru Team将变成“测试牛人组”,这种翻译估计读者和我都很难接受。由于这样的原因所以保留了英文,而非在这里炫耀英文,也希望读者能够谅解(真的不是周立波所说的那样=-) )。以下言归正传:

作为《思考》系列的第二篇,我将讨论测试前的准备工作,即动手撰写test plan以及test design前的工作,包括:

·         了解Business Vision(BV)

·         理解已有产品。

·         理解产品的已有测试。

·         了解当前team以及process。

也许很多人看完这个list就要睡着了,但是事实上它真的很重要,甚至和test plan以及test design一样重要。但是它是测试人员/测试主管的必经心路历程,不可忽视。忽视它的后果是测试工作将失去方向,成为一场赌博,其后的test plan和test design的正确性和有效性将无法保证。

了解Business Vision (BV):

了解BV是所有准备工作中最最重要的。因为它是:

·         测试工作的方向;

·         各项子工作排列优先级时的主要依据;

·         后期评价performance的重要依据。

BV是测试工作存在的根本,也就是老板为什么给你发工资的原因,偏离了BV的任何测试工作都是毫无意义的,相反符合BV的测试工作将是有价值的。另外,在一项测试工作中可能包含多项子工作项目,由于人员、资源和时间的限制,必须针对子工作项目进行优先级设定以便在紧急情况下将不重要的子工作项目延期甚至完全取消,而设定优先级时的依据就是BV。以下是不同优先级的含义:

·         P1:重要级,被设定为P1的子工作项目实现BV的必要部分,也就是说如果没有这部分功能,BV无法实现或者将受到严重影响,等于整个工作都没做。

·         P2:一般级,被设定为P2的子工作项目不是实现BV的必要部分,如果没有这部分功能,BV会在有些情况下受到影响,不属于完美实现BV,但是其结果可以接受。

·         P3:不重要级,被设定为P3的子工作项目和实现BV关系不大,如果没有这部分功能,BV基本不会受到影响或者影响很小。

例如,假设一款手机OS其BV是为中老年用户提供良好的用户体验,那么以下子工作项目将会被设定优先级如下:

子工作项目

1.  电话功能。

2.  短信功能。

3.  WAP上网功能。

4.  手机缺省字体比正常值大一倍。

5.  电话缺省音量大30%。

6.  MP3、MP4播放功能。

7.  闹钟功能。

设定

·         P1:1,4,5

·         P2:2 (这里不考虑没有短信功能手机过不了入网测试的问题:))

·         P3: 3,6,7

通常BV已经存在,测试人员/测试主管需要了解已经存在的BV,而不是去创造新的BV或者修改已有的BV,除非是在Brain Storm阶段。BV也是最case-by-case的,没有一定之规,以下所列的是一些常见的BV:

·         满足客户需求:如果一项软件开发任务直接或者间接的来源于客户需求,(换句话说就是有人拿钱等着买这个软件,或者已经付了钱等着拿软件),而且开价又足够大,那么满足客户需求就成为BV。客户又可以分为定制客户和市场客户:定制客户通常是大公司、大客户,需求来自客户本身;市场客户通常是普通用户,数量庞大,不可能直接一一沟通,需求来自针对客户的市场调研。通常这样BV所指明的工作方向是很容易把握的,就是客户要什么就做什么,优先级也很容易设定,那就是——问客户。难点仅存在于有效持续的沟通和DCR(Design Change Requirement)的控制。

·         战略合作需求:某种意义上说来自战略合作伙伴的需求也是一种定制客户需求,不同之处在于战略合作伙伴既是你的客户也是最终用户的生产者。例如,Dell对于Microsoft来说就是战略合作伙伴,如果Dell要求将其使用的几款显卡驱动放入新款Windows的缺省显卡驱动列表中,那么这就是一个战略合作需求,因为帮助Dell就是帮助Microsoft自己,Dell每卖出一台PC都要向Microsoft支付使用费,Dell卖得越好Microsoft就盈利越多。然而对于最终用户而言,Dell和Microsoft又都是生产者。对于这样的BV,确定工作方向将变得复杂,因为事实上有两个方向,一个是最终用户的需求,另一个是战略合作伙伴的需求,而且在双方没有达成战略共识并且沟通不畅的情况下,通常这两个工作方向不同。测试人员/测试主管不能接受的情况是两个方向是矛盾的、不相容的,当然最糟糕的情况是南辕北辙。例如,合作伙伴需要增加某一功能,并且该功能预期会带来性能下降,而最终用户希望提高性能。在这种情况下只能通过沟通消除矛盾,如果其在项目开始前不能解决,那么该项目将面临重大风险。优先级的设定也是一样,需要沟通。

·         复制竞争对手的成功,蚕食市场份额:一般适用于大公司在后发领域中用于与对手竞争蚕食市场份额时使用。这种BV战略的灵魂就是“走别人的路,让别人无路可走”(出自小沈阳语录:) )。Microsoft大量地使用了这种BV,比如在Xbox、Windows Mobile Phone、搜索引擎等产品上。这种BV有别于以上BV在于其强调产品与竞争对手产品相比:一,有哪些差距;二,哪里能做得比对手产品好。这时来自于客户的需求反而没有那么重要(注意,我不是说客户需求不重要)。对于测试人员必须首先熟悉竞争对手的产品,同时了解自身产品相对于竞争对手产品的差距,或者哪些地方能做得更好,然后根据这两点确定工作方向和设定优先级。

·         辅助相关产品:一般适用于大公司,在一个产品线中某个或某些产品本身并不大赚钱,有时甚至是赔钱的,但是它的存在将有效增大产品线上其他产品的销售,或者保护了其他产品的现有市场份额。这样的BV较难把握,需要对整个产品线的各个产品、相互关系、客户需求和企业商业战略有全盘理解,然后确定工作方向和设定优先级。

·         适应未来的技术趋势:一般适用于大公司,产品是为未来2~5年的市场准备的,在某种程度上是赌博,其前期投资很大而且没有或者很少的客户需求。比如现在的云计算、两年前的iPhone等等。这样的BV是最难把握的,因为基本没有客户需求可以供参考,工作方向很难确定,优先级设定则更加困难。

理解已有产品:

大多数情况下测试人员/测试主管所面对的产品不是Version One的产品,即项目将在已有产品上展开,那么对已有产品的理解就十分重要。测试是要保证N+1的所有功能(N个是已有产品的功能,1是新加功能)都正常工作,而不仅仅是保证新加功能正常。通常,测试人员/测试主管需要了解:

·         产品的功能以及各个产品的历史;

·         使用产品的典型客户和典型应用场景;

·         产品的特殊要求;

·         法律对于某些产品的特殊要求;

·         当前产品的Pain Points;

·         主要竞争对手产品、其优势和劣势。

理解产品的已有测试:

在对已有产品有所理解后,还应当理解已有产品的已有测试。针对已有测试的理解将有助于为新项目建立完善的测试体系,形成回归测试,是保证N部分功能在新版本中正常工作的重要手段;另外,已有测试中的Test Infrastructure是测试中可以重用的部分(Test Infrastructure就是除了Test Case以外的测试代码,包括Test Harness,Test Management System等等)。其包括:

·         功能测试;

·         稳定性测试;

·         性能测试;

·         场景测试;

·         Test Infrastructure。

熟悉当前Team以及Process:

最后要准备的就是熟悉Team和Process。核心就是要了解Team中的Key Person和Key Process,以帮助日后开展工作。

·         项目的实际决策层;

·         项目开发人员;

·         项目组中的Expertise;

·         相关的其他开发组;

·         Development Process;

·         Test Process;

·         Bug Process;

有关测试的思考(2):开始项目测试以前的准备相关推荐

  1. 服务器招投标项目验收,信息化系统项目测试验收方案..docx

    信息化系统项目测试验收方案. 信息化系统项目测试验收方案项目测试.验收方案项目测试计划测试是项目质量的重要保证,因此必须高度重视项目的测试工作.在本项目中,我们将着重进行以下三类测试:项目组内部测试主 ...

  2. 微信红包项目测试小结

    没有总结与思考的项目是不完整的项目 第一步:测试需求分析 经过需求分析,对原始需求列表中列出的每一个需求点,找到我们需要测试的测试要点,针对所确定的测试要点,分析测试执行时对应的测试方案,越详细越精准 ...

  3. 【转】 测试职业思考:如何成为一名优秀的软件测试工程师

    如何成为一名优秀的软件测试工程师                                                                                     ...

  4. 【转】测试职业思考:如何成为一名优秀的软件测试工程师

    如何成为一名优秀的软件测试工程师                                                                                     ...

  5. 测试环境搭建流程_案例解析:一个完整的项目测试方案流程,应该是怎么的?...

    作为一名软件测试工程师,为项目制作完成的测试方案并执行,是我们日常工作的重要部分,同时,也是一名合格的软件测试工程师应有的专业素养.那么,很多小白和测试新手肯定要问了:一个完整的项目测试方案流程,应该 ...

  6. 测试软件项目的方法,保证项目测试进度的几个方法

    做接口测试已经多半年了,工作的过程中会碰到一些问题,使得测试的时间推迟,在这里和大家分享一下我的几个保证项目测试进度的几个小方法.这些方法是这段时间在项目的实践中总结出来的. 熟悉业务点: 对本次要测 ...

  7. 个人作业Alpha项目测试

    这个作业属于哪个课程 软件工程原理 这个作业要求在哪里 作业要求 团队名称 TEAMPANTHER 这个作业的目标 每个同学必须选取非自己所在团队的3个项目进行测试. 在你所测试的项目的Alpha发布 ...

  8. 如何写一个高效进程/线程池_关于高效企业测试的思考(1/6)

    如何写一个高效进程/线程池 企业中的测试仍然没有得到应有的广泛应用. 编写尤其是维护测试需要花费时间和精力,但是缩短软件测试并不是解决方案. 为了提高测试效率,应该追求哪些范围,方法和测试技术? 基于 ...

  9. 关于高效企业测试的思考(1/6)

    企业中的测试仍然不是应有的广泛使用的话题. 编写尤其是维护测试需要花费时间和精力,但是缩短软件测试并不是解决方案. 为了提高测试效率,应该追求哪些范围,方法和测试技术? 我根据许多实际项目,结合了我在 ...

最新文章

  1. C++——简单数据类型及布尔类型
  2. Metasploit攻击Oracle的环境搭建
  3. rsyslog服务日志报错分析1
  4. [转] Windows CE 6.0 启动过程分析
  5. 深度学习精度提升 3 个小妙招:模型集成、知识蒸馏、自蒸馏
  6. 设计模式(十六)迭代器模式 Iterator
  7. 前端实现给页面中的某一部分生成水印
  8. 禁忌搜索算法(Tabu Search)
  9. Python爬取小说网站页面制作电子书
  10. kafka集群搭建详细步骤
  11. x265 命令行参数大全(比较详细)
  12. 把阿拉伯数字全部转换为大写(1,2,3.... = 一、二、三、)
  13. java关于文件上传和下载,保存到后台并修改名字。
  14. Android 强大的图片加载缓存— Glide
  15. 算数操作符与移位操作符
  16. pytorch系统学习
  17. MATLAB 基础知识 数据类型 表 创建和使用表
  18. 写简历没模板?别怕,这些开源项目帮你搞定!
  19. G.7xx:视频/音频压缩协议(Audio/Voice Compression Protocols)
  20. 辽宁省高考成绩2021年在哪里查询,2021年辽宁高考成绩查询系统入口高考查分系统...

热门文章

  1. python爬虫抓取微信头像
  2. QQ安全防护驱动(QQProtect)彻底删除方法
  3. 异想家Win7系统安装的软件与配置
  4. 试讨论语法、语义、语用三个平面的区别与联系
  5. elasticsearch搜索过程分析
  6. 斑马识别成狗,AI犯错的原因被斯坦福找到了丨开源
  7. GDPU C语言 天码行空2
  8. Windows Vista系统管理员账号密码修改的方法
  9. mysql数据库的简单操作-1
  10. 什么是Vue-cil?