06月 8, 2013

看过很多人对软件测试的心得体会,但是多数文章都是以技术的角度去讲述。今天我就换一种思路,从商业的角度来谈谈自己对软件测试的看法吧。本文只代表了作者本人的观点,难免会有其偏颇之处,再加上商业这个话题带来的铜臭味,都注定了这个话题不会讨人喜欢。要特别注意的是,文中的部分概念是基于作者的理解,请读者在阅读本文时一定要带有自己的判断力。

谈到商业,最关键的两个词是“成本”与“收益”。从狭义上看,成本与收益体现在货币上。从广义上看,成本与收益体现在一切可能转化为货币的资源上(人力,物力,时间等等)。本文中,取其广义的概念。

软件公司也好,互联网公司也好,也许它们更喜欢自己被称为“科技公司”,但是不过其性质如何,只要带上了“公司”,那么必然离不开“营利”两个字。

进一步讲,这就要求公司内的各项业务,要么能直接带来利润,要么能间接(帮助公司的其它业务)带来利润,要么能降低成本。对于绝大多数的IT公司,软件测试属于降低成本的业务(专注于开发测试工具的软件公司除外)。

为什么说软件测试是降低成本的业务呢?

首先要明确一下,对于公司来说,降低风险其实就是降低成本。当软件未经过测试便发布时,可能具有大量的风险(功能残缺,易用性差,稳定性差,兼容性差等质量问题)。当这些质量问题影响到了最终用户时,很可能会使公司损失大量金钱、名誉,以及市场。所以,出于降低风险的考虑,测试是必不可少的环节。假如所有生意都是一锤子买卖的话,那么测试大约就没有存在的必要了。

但即使是降低成本的业务,其本身也是有成本的。软件测试中,最显而易见的成本来自于三处:A、工程师的薪酬;B、所需要的设备购买;C、完成任务所需的工时(决定了产品发布日期)。其中B相对固定,不会发生频繁变化,而且在成本中所占比例较低。如果想降低软件测试的成本,就要着重从A、C两个点入手。

这就引出了“自动化测试”的概念。就像工业中经常用到的机器人一样,其引入的初衷是为了解决两个问题:如何降低成本,如何完成人难以完成的任务。自动化测试通过减少重复测试的次数、排除了人工测试可以带来的误操作、不间断地运行、易于复用等优点,可以大大减少测试中的人力投入与工时。

令我惊讶的是,很多人提到“自动化测试”时,总是带着一种对于的技术痴迷,最显而易见的特点是,他们认为手工测试是很落后的。我很理解这种想法,大概和哥伦布初次登上美洲大陆看到印第安土著的感觉差不多——惊讶之余夹杂着几分对落后文明的不屑。

这里有必要重定义一下软件测试的概念:

在(软件)产品交付至最终用户前,模拟最终用户来进行(软件)产品验收的过程,称为软件测试。

最终用户可以是机器,也可以是自然人。如果测试的是一个“接口”,那么最终用户是与其对接的程序。如果测试的是以提供内容为主的软件(如:游戏),那么最终用户必然是自然人。

那么如果有几十款游戏(App)需要测试怎么办?难道需要几十个测试人员吗?

几十个测试人员着实有些夸张,不过十几个测试人员恐怕是难免的。底层的部分自动化测试或许可以派上用场,但是对于表层的内容,只能依赖于测试人员。毕竟游戏(App)面对的是自然人,而不是由机器去体验。

模拟最终用户的行为,是测试的核心思想。在商业环境下,技术不是为了更酷,而是为了盈利。

如果自动化测试无法应用或者难以降低成本的话,还有别的方法降低成本吗?

去寻找更廉价的劳动力。

这就是为什么一些外国公司会选择把测试部门设在中国,为什么一些大公司会选择把测试业务交给外包公司。跳出测试这个圈子看的话,这也是现下很多创业公司逃离北上广、奔赴二三级城市发展的原因之一。
还有一个方法,但是我实在不忍心、也不愿意去说——进行中国特色的加班(实际上这是在透支未来)。

资本总是贪婪的。它们希望成本无限趋近于零。幸好不存在无限降低成本的方法。

谢天谢地。

Tags: ,,,.
06月 6, 2013

iDoNews 小牛注:百度近期手机地图将推出“位置共享”进军社交界,在作者枫间雨看来,想法很好,只是还得看企鹅的脸色,很难增加手机地图的社交性。

前言:本文的创作初衷在大约4周前,因为寻路不便而萌生出了一个想法。本来是想写这个创意的,但看到了最近百度手机地图要推出的“位置共享”进军社交的新闻之后,临时改变了主意,决定写一篇评论。

百度手机地图将增加位置共享功能,增加社交性。”这句话最近几天频频出现在各大媒体的报导中。那么以“位置共享”进入社交领域,这个想法可行吗?

我们先看一下常见的用户会面场景。

以两人会面为例,通常的场景有这么四种:

一、初始地标明确,双方熟悉路线的会面

A:明天中午12点,我们在XX地铁站的A口碰头吧。

B:没问题。

此种情景,不需要地图指引。甚至,也不需要联系。

二、初始地标明确,一方不熟悉路线的会面

A:明天中午12点,我们在XX地铁站的A口碰头吧。

B:好,我查一下地图看看怎么走。

此种情景,不熟悉路线的人会事先查好路线(如果可能的话)。拥有地图app的用户,在路途中可能会使用

地图来确定当前位置。没有地图App的用户,更依赖于事先准备的路线,以及问路。查询的关键词为“XX地铁站”。

三、初始地标模糊,双方熟悉路线的会面

A:我们一会儿在XX地铁站外面碰头吧。

B:没问题。

半小时后……

A:到哪了?

B:还有两站,你到了吗?

A:我刚下地铁,那我先去A口等你了。

B:好。

此种情景,地标会在双方的联系中明确。联系主要是用来预估路程时间以确定最佳会面地点。不需要地图指引。

四、初始地标模糊,一方不熟悉路线的会面

A:明天来我新家玩吧。你到XX地铁站,我去接你。

B:没问题。

次日……

B:我到XX地铁站了,你到哪了?

A:啊,起晚了……还在洗漱,要不你直接过来吧。你从地铁站的A口出来,一直往前走到第三个红绿灯处,这时候向右手边看应该可以看到一个都是白色的楼的小区,我家就在那个小区。

B:好,我先走着,一会要是找不到再联系你。

数分钟后……

B:我到了第三个十字路口了,右边没看到白色的楼啊?

A:是三个红绿灯,不是三个十字路口……

B:啊,那我再看看是不是走过了。

又过了数分钟……

B:我到了这个小区了,你在几号楼?

A:12楼3单元4号。

B:OK。

此种情景,地标会在双方的不断联系中逐渐明确。联系主要是用来指引路线。当路线比较含糊或者信息量较大时,联系频率会变得很高。由于缺乏有效的关键词(地标模糊),地图App很难发挥作用。

没有列出“双方均不熟悉路线”的场景是因为:当目的地双方都不熟悉时,通常会选择一个熟悉的地点集结后,一并前往。此种场景可以视为一个人出行,故不在列举范围内。

可以很容易看出,在信息(地标、路线)不足的情况下,联系一定会发生。而使用地图app的场景,仅局限在地标明确(可以提供准确的关键词)的情况下。

而理想中,最有效率的指路方式是:

将目的地标记至地图上,地图自动计算出用户当前所在位置至目的地的最佳路线。

由于省去了关键词这个苛刻的条件,地图的可用性与易用性得到了极大地增强,进而带动活跃用户数增长。这个指路方式,其实就是“位置共享”的概念

“位置共享”看起来很酷,但实际上它并不是新东西。早在2011年,百度手机地图上就已拥有此功能,只是入口过于隐蔽。

那么时隔两年,百度手机地图再推“位置共享”,能借此推开社交的大门吗?

个人认为,很难。理由有二个。

其一,地图产品的用户核心需求是“指路”,而不是“获得其他人现在的位置”。

对于“指路”,只要做到“将目的地发送至对方的地图上”便足够。“位置共享”所提供的信息太多了,这意味着可能提供了人们不想提供的信息。

人们关心的是“其他人是否可以按时到达”这个结果,而不是“其他人通过哪条路线到达目的地”这个过程。

“你到哪了?”这句话并不意味着对方想获知你当前所在位置,而是为了估算到达的时间。事实上,很多人都不喜欢暴露自己的行踪。所以“你到哪了?”这句话经常得到的回复是“我再有X分钟就到。”

“位置共享”固然有用,但是未必能增加手机地图的社交性。

其二,从微信等即时通讯App中分走流量的难度很高。

上文列出的四个用户场景的对话,都是发生在约定与会面环节,这部分环节在整个联系过程中处于最末端——只有先确定了活动内容后,才会进入约定与会面环节。联系过程的前端(确定活动内容)目前已经被微信等即时通讯app霸占,这使百度手机地图争夺末端流量变得极为困难。而微信如果结合SOSO手机地图的话,却很容易把流量自行消化,并借此来推广soso手机地图。

彼时,微信还很幼小,百度手机地图的“位置共享”尚未成气候。此时,百度手机地图能不能借此社交化恐怕要看企鹅的脸色了。

社交引入工具,易;工具引入社交,难上加难。

最后一句话总结:

“位置共享”这个想法很好,但是很难增加手机地图的社交性,而且容易被“截胡”。

让我们拭目以待。

Tags: ,,,.
05月 30, 2013

你在什么情况下会联系别人?联系别人的方式有哪些?

在这里我简单地分出两种情况:

第一种是因为事情而联系。在事情的驱动下,以解决问题为目的。

第二种是因为情感而联系。在情感的驱动下,以联系某人为目的。

引入两个名词:弱联系方式,强联系方式。

弱联系方式指「不在意对方是否能够迅速收到信息并作出响应的联系方式」,不判定对方的状态。反之则为强联系方式,只要联系就一定能判定出对方的状态。

QQ的PC客户端中同时存在这两种联系方式。

发送QQ信息,是弱联系方式。发送者只知道信息发出去了,不知道对方是否收到信息,不知道对方收到信息后是否查看,不知道对方查看信息后是否想回复。弱联系方式几乎不具备干扰性。

发起QQ语音,是强联系方式。这种方式是非常有效的一个验证对方是否在线的方法。几乎没人会忍受一个弹出并不停叫唤的窗口,所以如果请求超时便说明对方离线,如果请求被拒绝则说明对方隐身。强联系方式的干扰性极强——为了吸引接收者的注意不得不对其造成干扰。

情感驱动的情况下,多数人首选弱联系方式。发信息虽然效率低,但却将内容完整地保留了下来,作为情感的一种延续。另外,持久的情感也需要更经济的联系方式。

事情驱动的情况下,多数人首选强联系方式。有事的时候,打电话比发短信效率高很多,这一点相信大家都有体会。
微信、短信、手机QQ是弱联系方式,电话、语音聊天则是强联系方式。

你使用微信的初衷是什么?使用手机QQ的初衷又是什么?

使用微信的初衷是——省钱。得益于手机联系人的关系链,微信很容易凭借“省钱”将短信重度用户吸引过来。

使用手机QQ的初衷是——无聊时看看有谁在可以聊天。作为PC端的延续,用户登录手机QQ时带有明确的目的性——找人聊天,挂机(等搭讪)。

凭借手机一直“在线”的特点,微信大大降低了聊天的门槛——不需要关心对方当前的状态便可发起聊天。这种情况下,聊天对象通常是固定的——由个人情感来决定。

而手机QQ的“在线”用户,相比微信而言,更明显地带有一种“此刻愿意聊天”的信号。这种情况下,聊天对象通常是随机的——由在线用户来决定。

你平时QQ经常处于在线状态还是隐身状态?

常年处于在线状态。正因如此,微信和手机QQ对于我来说并无什么区别。

但对习惯于“隐身”的人来说,常年“在线”的状态却是一个噩梦——许多“不想联系的人”误以为你有意聊天,发来的大量信息会产生严重的干扰。

也许有人会很奇怪,既然不想联系,为什么又要加好友呢?

出于礼貌或者是某些难以拒绝的理由,不得不加为好友。

所以,有了“隐身”这个状态,有了一群永远不聊天的“好友”。

如果微信先于手机QQ出现,那么手机QQ还有存在的必要吗?

个人认为,没有必要。

微信和手机QQ都完美地将平时常联系的熟人圈子引入进来。相比手机QQ,微信具备更高效的联系方式,和更酷的与陌生人搭讪的方式。无论是熟人社交还是生人社交,微信都胜过手机QQ。

但历史是不允许假设的。

既然先有手机QQ的存在,那为什么当初不把手机QQ尝试“微信化”发展呢?而是做一个全新的APP?

个人猜想:一方面受到了其它即时通讯APP(如:米聊)的影响,另一方面对一个成熟的APP(手机QQ)做大手术是很困难的事情,这两方面的因素导致了微信的出现。将前途未卜的方案费尽唇舌推销给成熟的APP,不如另起炉灶做一款全新APP来证明自己来得更容易。

过于重视风险/收益比,过于重视股东的脸色,是大公司的通病,一款产品不受重视的时候反而更容易成功,因为没有太多自以为是的人横加干涉。

如果没有QQ关系链,微信还会如此成功么?

有了用户数据,只要不是傻子,一般都不会玩的太烂。

QQ关系链是基础,有了它可以快速引入大量用户。进行病毒式营销的前提是拥有一定规模的用户数,否则传播很快就中断。

当然,不凡的产品必有过人之处。如果微信资质平平,那么最终无非变成另一个手机QQ,只是换了层皮。摇一摇是一个创举,改变了这一切。

一言以蔽之——微信能够成功是因为它站在了巨人的肩膀上,而这个巨人就是腾讯掌握的用户数据。

对于微信和手机QQ这两款目前定位已高度重合的产品,未来怎么发展呢?

微信专注于手机用户之间的联系(并不能说是移动互联网用户,因为微信没有pad版本),而手机QQ专注于QQ关系链用户之间的联系(PC和移动终端之间的联系)。

微信的身份更具真实性——声音、照片、地理位置,展示了现实中的信息。

QQ的身份更加虚拟化——QQ秀、虚拟宠物、QQ等级,展示了网络上的信息。

所以个人看法是,根据微信和手机QQ身份上的不同特点,走差异化路线。一个靠真实信息赚钱,一个靠虚拟物品赚钱。
泡MM用微信,玩游戏用手Q,这是我对未来的设想。

想一想YY的崛起,其实很有意思。

后记:

曾经想采用循序渐进的分段写法,但是发现段落之间跳跃性太强,不利于阅读,于是最后采用了问答式写法。

如果简要地做一个总结的话,微信和手机QQ之间的差异化,只围绕在两点上:“在线/离线”状态,身份的真实/虚拟。无法想象一个一直在线的QQ,亦无法想象一个显示着QQ秀的微信。

透过“聊天”这个行为,抵达行为背后的意识本源,才能发现需求的最原始形态。

Tags: ,,,.