软件测试人月神话

[复制链接]
查看11 | 回复2 | 2015-9-22 15:53:22 | 显示全部楼层 |阅读模式
随着云计算、物联网技术的飞速发展,软件规模日趋庞大,分布式计算,海量数据处理是其中的关键性技术。目前在多个区域甚至多个国家同步实施的软件项目已经较为常见,其原因综合成本控制、海外市场政府支持、软件全球化实施部署等多方面因素。可以说全球软件开发已经成为IT行业的一种生活方式,与此相对应的软件测试实施团队也将具有人数多,实施地点分散、人员流动迅速等特点。在这种环境下,软件测试不能仅局限于充当工业流程的一个环节,更应该提供创造性的解决方案,同时这也是新时代测试工程师应该具备的思想觉悟。传统的测试管理工具侧重于辅助工作,缺乏构思和交流的功能,因而本文尝试引入社交网络的理论来分析软件工作流程,对新一代测试管理系统进行了探索性研究。
测试工程师的乐观主义
所有的测试人员都是乐观主义者,无论是崇尚暴力的强度测试,还是温柔婉约的敏感性测试,甚至如突袭般的安全性测试,工程师都能在工作中找到快乐。如同世界上从来没有不透风的墙,软件中也从来没有无缺陷的完美作品。无论是什么样的程序,结果是毋庸置疑的,总能找到一个错误。当然郁闷总是与快乐并存,“我永远也找不到最后一个错误”。
在实际测试项目的进度安排背后的第一个假设是:一切都运作良好,每一项测试环节仅花费它所应该花费的时间。对这种弥漫在测试人员中的乐观主义,理应受到慎重的分析。创造性的测试工作需要包含三个阶段:构思、实现和交流。软件测试创造性产生的构思阶段是基于对业务系统的理解,实现阶段依赖于测试团队的安排部署,这两个阶段都受到第三阶段的影响,而新环境对交流阶段造成的影响也最大。即便构思和实现都能顺利进行,交流也会在多区域分布式测试环境中制造更多的障碍,因此测试人员的乐观主义不应该是理所当然的。大型的测试任务,或多或少的包含了很多任务,某些任务间还具有前后的次序,从而一切正常的概率都会变得很小。测试项目一样受到人月神话法则的约束,向进度落后的项目增加人手,只会使进度更加落后。
测试团队良好的内部交流能够促进项目实施,也能够带来创造性的测试成果。对测试工程师来说,现有的沟通交流手段已经不能适应新的工作环境,测试人员的交流也没有得到重视。大型跨国测试项目需要团队具有良好的沟通协调能力,而测试人员日常工作最常用的测试管理系统通常也不提供交流功能。在这种情况下,将社交网络分析的技术手段引入到测试管理系统中,可以说是一个非常具有理论和实践价值的尝试。
社交网络分析
对传统的测试小组来说,成员之间良好的交流是非常有必要的。小组成员针对各自的工作情况、已经做出的用例设计以及对原有决定的变更等方面互相交换信息,可以增强小组的凝聚力,推动的项目的良性进展。但是实际情况往往不尽如人意,想象中简单的交流在现实工作中往往难上加难。究其原因,小组规模和小组结构发挥了重要的影响力。对于大规模的项目来说,单向交流链的数目与小组成员接近平方关系,因而成员之间往往没有实际交流。同时小组成员职位差距也是交流的阻碍,因为官本位意识下的单向沟通是不能算有效交流的。有层级的小组结构中,交流通常按照层级进行,因此不同小组之间的同级成员往往交流甚少。在这样的前提下,利用社交网络的技术手段能够有效的改善交流困境。测试团队成员的交流由单向变成多向,不同小组的成员也可由技术兴趣等原因构建自己的小组。兴趣小组间只有技术生活探讨,而无世俗职务高低之分,对于促进跨组成员尤其是沉溺于技术的宅人之间的交流尤其有益。然而,如何有针对性的对成员交流情况进行分析,对于改造测试管理系统以使其精益求精呢?这需要借助社交网络分析的理论手段。
复杂网络的理论基础是利用图形描绘复杂的现实系统,而社交网络分析是用来检视节点、连结之间的社会关系。节点是网络里的个人或者小组,连结则是参与者之间的关系,节点之间可以有很多种连结。一些学术研究已经显示,社交网络可以在很多层面运作,从家庭到国家层面都有,并扮演着关键作用。社交网络可以决定问题如何得到解决,组织如何运行,并在某种程度上决定个人能否成功实现目标。用最简单的形式来说,社交网络是一张图,标示出所有与节点相关的连结。社交网络也可以用来衡量个人参与者的社会资本。这些概念往往显示在一张社会网络图,其中节点是点状,连结是线状。
将社交网络分析应用到软件测试项目实施中,我们的网络中存在两种节点,分别是个体和分组。使用个体这个节点,在网络中表示某个特定的测试工程师;分组这个节点则表示某个项目组,负责被测对象中的某个分系统。两个个体属于同一个分组的时候,它们被连接在一起。如果两个分组连接在一起,那么只有一种可能,就是某个个体在同一时间是两个项目组的共同成员。
结合Bug管理流程来进行社交网络分析,在日常的软件测试工作中,Bug管理的一般流程:
测试人员提交新的Bug入库,错误状态为New。
高级测试人员验证错误,如果确认是错误,分配给相应的开发人员,设置状态为Open。如果不是错误,则拒绝,设置为Declined状态。
开发人员查询状态为Open的Bug,如果不是错误,则置状态为Declined;如果是Bug则修复并置状态为Fixed。不能解决的Bug,要留下文字说明及保持Bug为Open状态。
对于不能解决和延期解决的Bug,不能由开发人员自己决定,一般要通过某种会议(评审会)通过才能认可。
针对具体的某个测试项目,我们通过Bug提交信息构造两个网络。这两个网络是综合提交者和软件分系统区分而制定的,分别如下:
提交者网络: 每个节点对应一个Bug提交者。如果两个测试工程师在某个分系统中都提交了自己发现的Bug,那么将这两个节点连接在一起。
分系统网络: 每个节点对应项目中的某个分系统。如果存在一个提交者对两个分系统均做出了贡献,也就是都提交了Bug,那么这两个分系统节点连接在一起。
上述网络连接线的权重可以使用提交数量等属性,针对这个网络还可以针对某个项目定义若干特性用于分析。利用统计分析等手段进行分析项目中的人员沟通情况,对于传统的测试管理系统,显而易见其交流仅存在于小团队中,对于跨国规模的软件测试项目就显得力不从心了。如果将社交网络的技术引入测试管理系统中,通过日志、微博、wiki、兴趣小组等功能来加强人员交流,那么提供具有创造性的软件测试服务是可以预见的。另外,社交网络分析不仅有助于改造测试管理系统,也有助于发现团队交流的障碍所在,进而通过其他手段来解决问题,增强团队凝聚力。
结语
本文通过分析软件发展趋势指出未来测试领域面临的机遇与挑战,在提供创造性服务的目标下需要对软件测试管理系统进行改造。通过典型的错误管理流程,分析社交网络分析技术在管理系统应用的可能性,本文的下一步工作将结合开源软件进行相应系统的实践研究。
回复

使用道具 举报

千问 | 2015-9-22 15:53:22 | 显示全部楼层
不是有一本叫《人月神话》的书吗
回复

使用道具 举报

千问 | 2015-9-22 15:53:22 | 显示全部楼层
good job
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行