随着时钟的脚步,2010年过去了,新的一年已经开始。在这新的一年里,我们也需要对我们所从事的软件测试这个事业进行些许总结,一点憧憬。

  软件工程的概念源于建筑工程,我们如果把软件工程比作框架,那么软件测试可以视为填充物,在过往的几年伴随软件过程的新发展软件测试也取得了一些新的进步。比如极限编程的思想和实践引出“极限测试”的探索;比如敏捷工程的提出导致“敏捷测试”的热烈讨论;比如SOA技术的大量应用使得对基于SOA架构的应用测试技术持续升温;而2010年随着云计算从理论向实践的过度和发展,人们开始对“云测试”、TaaS(测试即服务)等进行无限憧憬,保持了较高热度。

  这一切都一再印证着软件工程领域是个极为活跃的领域,是我们所呼唤的“知识经济”的主导者和标志性行业,是地球智慧集中的产业。近些年,软件应用需求朝着更大规模、更大集成度的方向快速发展,这种展现出来的新的需求对软件工程带来前所未有的压力,对软件工程的新一轮思索正在展开,CMMI被重新认识,在理想与现实的纠葛中,人们终于肯坦然面对CMMI并非是解救一切软件问题的良方。在对待一些具体的软件领域问题时,必须寻找新的战略、战术武器,正是在这样的背景下涌现出一些新的思想和实践,也是前面所述的极限编程、敏捷工程等。但是对于这些新的思想研究我们可以认识到,所有这些并非是软件开发技术的革命性进步,甚至很难说其有普适价值,而更多的是对原有软件工程思想的改良性实践。同样的问题在软件测试领域更为明显。

  软件测试本质上是一种“比对”技术,软件测试是试图制定一种可判定是非的规则和技术,从而用以确认软件是否满足其预定设计规格。目前,软件测试核心的技术是用例技术,用例是当前承载这种规则和技术的手段。无论是手工测试还是自动化测试都脱离不了这种用例测试思想,所谓区别无非是自动化测试能够一定程度上减轻测试和回归测试的工作量,效率比人工测试更高一些。这是我们所熟知的测试设计的核心工作,而测试计划无非是为了更合理的实施测试而进行的统筹安排,测试报告则是为了清晰的表述终“比对”结果。这是软件测试,测试计划、测试设计、测试执行和测试报告,几十年来软件测试从业者一直走过的路。在这条道路上,仍然存在一些我们想跨越却始终难以跨越的一些障碍,也是软件测试的一些局限,比如:

  ◆ 我们无法做到穷尽测试,所以我们无法告诉软件应用者们软件没有问题;

  ◆ 测试用例的设计依赖设计人员的自身素质,这里没有“编译器”,没有“调试”;

  ◆ 测试用例编制技术没有取得太大突破,高成本、低产出的状况没有改变;

  ◆ ......

  当然,软件测试领域也一直不乏研究者,他们孜孜不倦,试图通过自己的研究促进软件测试的发展,也做着一些改良实践。比如测试用例的自动生成、自动化测试等,这些技术的应用和探索覆盖代码层、系统层。这其中既包含了国际IT公司IBM、HP等,也包扩了很多研究机构(比如Bell实验室、中国科学技术院)和知名高校(比如国内的北京大学、中国科学技术大学)等。所以展望未来,软件测试依然值得期待,主要包括以下方面:

  软件测试产业化特征已经出现,相信在未来几年仍将持续发展。软件测试的产业化发展必将推动软件测试技术的成熟和进步,同时对于软件测试教育也有很大的促进作用,将影响软件测试人才培训机构的发展。第三方测试将有机会发展壮大,社会认可度将继续获得提高。短期内第三方测试仍将维持官方测评机构和专业领域测试机构各自发展的格局,但是3-5年后,将会出现一定的分化,迫于发展压力,少数测评机构会着眼于跨地域竞争,从而出现新的发展空间。

  测试标准将更加完善和适用。原有测试标准经过十几年应用,有了新的认知,同时也已不能满足当前软件技术的发展,因此测试标准的变革势在必行,国内新的测试标准将统一整合为25000系列,其中GB/T 25000.1将于本年度2月份正式生效。

  自动化测试技术仍将是领域热点。鉴于对手工测试的不满,人们始终对自动化测试抱以极大的研究热情,相信未来针对自动化测试技术的研究只会有增无减。在这个领域,伴随云计算技术的发展,云测试、远程测试将会是一个热点。

  软件测试纵深化发展。未来几年,各软件测试机构为了拓展本身的竞争能力和服务水平,将会将监理纳入视野,同时将软件测试向纵深化服务,比如需求设计类的技术评审、单元和集成测试等,单纯的软件测试向全程质量保障过度。在这一领域,目前山东省软件评测中心已走在前列。

  软件测试没有普适理论,仍然追求领域化发展。无论怎样发展,短期(5~10年)内软件测试的核心技术不会有大的改变,基础理论研究很难有大的突破,但是针对特定的领域,软件测试会展现出自己的灵活性,在理论应用层面发展出适用于这一领域的特定测评技术,比如分布式自动化测试技术、远程自动化测试技术等。