2009-04-30

软件测试易混淆概念区分

手工测试与自动化测试
手工测试是指执行测试采用的是手工;自动化测试是指QC根据程序开放的接口,编写和运行脚本来执行测试,或者利用现有的工具如LR等录制回放。自动化测试执行过程中,通常是无人值守。

黑盒测试与白盒测试
黑盒测试是指知道测试输入和测试输出,但不去了解内部实现过程;白盒测试是指,直接了解内部实现过程。

以上2组概念常被混淆:黑盒测试被等当作手工测试,白盒测试被当作自动化测试;尤其是后者被混淆的程度更大,这可能与2者都有“代码”在其中参与有关。
需要强调的是,自动化测试是测试员编写代码,用来跑测试用例;而白盒测试则是指直接对程序员所写的代码进行测试,执行者可以是程序员,也可以是QC。 比如:编写代码对程序员所写的代码进行静态分析,是采用了自动化测试的方法执行白盒测试。

静态测试与动态测试
这组概念通常运用于白盒测试领域。其区别在于是否把被测代码运行起来,不运行就是静态测试,运行就是动态测试。

(以上概念区分源于个人理解,更规范而全面的释义请自行搜索。)

手工测试没有技术含量?

首先说明,手工测试不等于黑盒测试。

结论:手工测试当然是有技术含量的,而且还很高。

手工测试和自动化测试的关系:
手工测试是自动化测试的基础。

手工测试和自动化测试的效果:
80%以上的bug是手工测试发现的--这是无法否认的权威数据。

手工测试和自动化测试的应用范围:
自动测试的比例在软件行业最高也不超过50%的比例。手工测试应用最广泛,只能自动测试而无法手工测试的东西就算存在也决不会太多。

最后,两者对测试员的能力需求:
自动测试对测试员的能力需求包含了手工测试对测试员的所有要求,并且还增加了代码能力的要求。

因此,自动测试比手工测试技术含量高。但是高出的仅仅是代码能力,相对于其他大多数相同的需求,代码能力占的比例并不高,最多也超不过10%。所以虽然自动测试比手工测试技术含量高,但是也没有决定性的优势,不能以此否认手工测试具有的技术含量。

结论:手工测试具有技术含量。

网络游戏开发模式对比

加入游戏业5年来接触到不少开发模式,其中两种比较典型:
A:程序负责实现,策划负责设计。
B:程序负责底层代码支持,策划负责功能和逻辑的设计和实现。

简单的区分就是:第一种情况,策划是不接触代码的,所有代码都由程序完成;第二种情况,程序则不关心游戏具体的内容,只负责引擎和工具支持,游戏的逻辑和规则部分代码是由策划在程序提供的支持基础上完成的。

由于各自的工作分工不太一样,因此工作方式也有很大不同,其中也有一些不同的陷阱。

A类,主要问题是经常会出现策划设计完成后程序说不能实现,或者程序理解策划案错误,做出来的效果令策划不满意。
这种团队非常依赖程序与策划间的沟通,如果沟通不好就会出现种种问题。对策划案的质量要求也比较高。要求程序员要懂一点游戏,策划要懂一点程序。

B类,由于游戏逻辑和规则是策划自行实现的,因此很少会出现程序声称策划设计无法实现的情况。
这种模式对策划和程序间的沟通需求较少,对文档要求较低。这种模式中程序员可以专心技术,甚至一点游戏都不懂似乎都问题不大。而对策划的程序能力要求较高,要能自己编程实现(虽然是在程序提供的工具基础上进行)。

实际上,还存在很多AB之间的模式,也就是策划要负责一部分实现,但是可能仅仅是一部分逻辑或者一部分数据。

A类的优缺点:
优点:
1:首先,专业分工明确,各部门职责明确,管理上相对更顺畅。
2:相对于B,通常过程文档更丰富,便于后期维护。

缺点:
1:由于职责分明,各部门对于其他部门的知识相对了解较少,可能出现以知识优势忽悠的情况,早年这种情况较多,目前应该说已经很少见了。
2:分工明确,也导致部门间沟通需求更多,增大了沟通成本,而当团队过于依赖口头沟通时反而可能导致过程文档质量下降。
3:由于程序策划分工明确,互相对对方专业了解不足,因此对测试员的知识面要求比较高。

下面再分析B模式的优缺点。
优点:
1:首先,这种模式对沟通要求低,因此往往能够节约开发时间。但是需要警惕,不要把必要的沟通也省略掉。
2:程序员可以专心与程序底层,而不需要关注游戏逻辑和表现,因此相对来说游戏底层的稳定性可能会更高(只是有这个可能性)。
3:开发模式决定了这类游戏系统的扩展性往往较高,因为底层和游戏逻辑之间的分隔比较清晰。因此,做换皮类项目更快,更稳定。往往可以在更短的时间内,作出一个换皮项目,实现流水线式的游戏开发。

缺点:
1:由于是策划自行设计自行实现,因此可能导致文档质量较差,后期可维护性较差,人员流动对项目的影响较大。(只是这种可能性较大而已)
2:策划依赖程序工作,团队的工作效率严重依赖程序能力,当程序能力不足或者出现比较严重的问题时,会导致整个团队效率的下降。表面上看程序不参与游戏具体内容的制作,但是实际上在这种团队,程序一定是核心部门。
3:虽然此类团队的第二个项目(或者换皮项目)会做得很快,但是这是建立在第一个项目的基础上的,由于前面的问题,此类模式开发第一个游戏时效率并没有优势,甚至可能存在劣势。
4:游戏规则和逻辑是策划实现的,而策划毕竟不是专业的程序员,因此这部分的代码质量往往相对较差,bug会比较多。于是在这种团队中,测试组的重要性相对更突出一些。

盛大发展后劲不足

盛大通过某些方式收购(控制)了很多团队,产品线很丰富,但是盛大作为游戏公司,发展的后劲不足。

理由:自身研发能力不足。

固然运营比开发重要,但开发是根本。盛大已经并且仍将收购(控制)很多开发团队,但这些开发能力并不属于盛大自身。

腾讯必然成为行业第一

腾讯必然成为游戏行业的老大。虽然它现在还没有坐上第一的位置。

这是众所周知的。腾讯的营销优势太大了:它所拥有的用户群异常广大。

游戏测试员从业现状

据我所知,目前游戏测试员(仅指普通QC,不包括主管或管理人员)的待遇差别是很大的,较大一部分月薪在1k-2k档次,小部分在1k以下,也有一部分在3k-8k档次甚至更高。

1k-2k档次的人数在业内占据了主力地位,另外在网络上能查找到的游戏测试相关知识通常也是以这一档次人员的认知需求为主。故而大家一提到游戏测试人员往往就先浮现出一种低级体力劳动的印象,这种大众认识很大程度上束缚了游戏测试职业的发展。

多数网游研发公司或团队对研发期的测试并不重视。这种不重视主要体现为:

1.测试人员待遇低下;

2.工作内容与职业定位不符;

3.团队地位与岗位贡献不符。

这或许与游戏测试从业人员的职业素质良莠不齐互为因果。

好在一流的游戏研发公司和研发团队在产业形成之初就已经对游戏测试相当重视,并拉动了越来越多的团队注意到QC和测试部(组)设立的必要性。

游戏测试行业目前存在着供需矛盾:

企业需要高水平的测试人才,但是能力足够的人不满意游戏测试的普遍待遇而转向其它岗位,有兴趣向高级游戏测试工程师发展的人找不到学习资料和交流机会,能力不够且无心进修的人在现有岗位上继续为这个职业制造不好的形象传播。

游戏行业竞争力简论

技术(程序)和美术从来不是游戏行业的核心竞争力,现在它们也不再成为行业的门槛。

运营开始比开发重要了,营销是竞争主力,设计作为核心竞争力将要求策划团队更好的把握用户需求。

留个脚印

留个脚印

我为什么使用blogspot?

体验不到1小时,我就决定好好探索下blogspot。

作为互联网应用体验的保守者,老公对我邀请他注册google帐号一同在blogspot写博不满,质疑道,“你有多少blog都是写了一次就放弃的?红旗飘遍全国!”他这话倒是真的。不过应该改一下,把“全国”改成“全球”,这次blogspot是google提供的免费博客托管服务。

我从04年初开始使用blog,从天涯博客、网易日记到blogcn,sinablog,最终稳定在网易博客约一年半至今。开始对订阅器产生需求时,也尝试了多款,最终在google reader和有道阅读中艰难选择了有道。虽然有道阅读测试版远没有google reader好用和稳定,但它与网易博客的一帐号通及“转载到博客”功能,还是让我留了下来。

我一直以为google没有blog服务,这次在delicious上意外搜到google所提供的blog免费托管服务blogspot,让我又在网易通行证和谷歌通行证2者之间摇摆了。

对blogspot的期待:

1.体现google帐号的聚合作用,一个帐号串联我所需求的大部分互联网应用。

2.访问速度快、界面简洁友好、安全稳定。

3.社区待发掘的用户及用户贡献的价值高。

4.others待发掘的惊喜。

《游戏创造与职业》阅读计划

阅读范围:

11章 编程原理 P208-242

14章 用户界面与游戏控制 P292-306

17章 游戏测试 P332-342

19章 公共关系与市场营销 P350-374

阅读计划:

1.了解及部分掌握,作读书笔记,写心得。

2.5月10日前完成。