第一章概论 蓄求分析 概要设计 目口口臣 图1-1V模型 2.如图1-2所示,基于V模型,结合“尽早和不断地进行软件测试”理念 的w模型。 图1-2 W模型 3.如图1—3所示,在V模型上引入“针对单独的程序片段进行相互分离的 编码和测试,并通过频繁的交接、集成为最终合成为可执行的程序"理 念的X模型。 复杂工作漉软件自动化测试方法的研究第一章概论 图1-3X模型 4.如图1—4所示,随时介入测试,不断进行测试“微循环”的H模型。 图1.4H模型 随着软件工程的进步,技术同新月异,理念也在不断发展。从最初的面对过 程,到面对对象,直至今日的面对业务,组件式开发……各种技术、思想的出现, 都给软件测试提出了更高的要求。测试技术同样必须不断改进、发展,跟上时代 的脚步。 1.1.2国内软件测试现状与问题 随着我国软件产业的蓬勃发展,企业对于软件测试越来越重视。软件测试正 逐步形成一个新兴的产业,并处于快速成长阶段,我国正在大步迈向测试时代。 有理由相信,经过一段时间的发展,国内的软件测试行业会缩小与国外发达国家 的差距,从而带动整个软件产业的健康发展。 虽然未来是乐观的,但我国测试行业目前与国外差距依旧明显。 复杂T作流软件自动化测试方法的研究第一章概论 相对于国外软件测试的悠久发展历史,我国的软件测试的起步较晚。普遍认 为,我国软件测试技术研究起步于“六五"期间。直到1990年,才成立了国家 级的中国软件评测中心,测试服务才逐步展开。由于起步时间上的差距,我国目 前不论是在软件测试理论研究,还是在软件测试的实践上,和国外发达国家都有 不小的差距。技术研究贫乏,测试实践与服务也未形成足够规模,从业人员数量 少,层次也不够高。 软件测试从业人员的技术层次,根据能力、经验的不同,可划分为如下几个 层次: 1.初级测试员。初级测试员通常只能进行最简单、最基本的黑盒功能测试。 此类停留在表层的功能测试无法稳定提供软件测试的深度与广度,难以真正保证 软件质量。 2.测试工程师。测试工程师对于测试技术掌握较为全面,但是缺乏足够的 经验积累和深度钻研。测试工程师执行的测试不会完全停留在展现层,会有意识 的进行深入测试,如检查相应的数据库等。 3.测试专家。测试专家经验丰富,经历过各类测试实战。测试专家能够根 据自己的经验,进行更有针对性的测试,能够对发现的问题进行定位。缺陷的发 现率与定位能力强于测试工程师。 4.测试大师。测试大师站在更高的角度观察、思考问题。进行测试理论研 究,并提出创新性的想法,整合出有贡献、有价值的测试理论体系。基于大师的 新体系、新思想,能够出现更好的测试模型与平台,能够促进更优秀的方法或工 具的诞生,能够真正改变软件测试的实践方式,并推动整个软件行业的发展。 如前文所述,我国的测试正处于发展过程中,发展时间较短。我国大量的软 件测试从业人员仍停留在较低的初级测试员与测试工程师的层次中,测试专家己 属稀缺,测试专家更是遥不可及。 从测试软件市场上便能看到端倪。目前最流行的三套测试体系,一是HP的Mercury系列,二是IBM的Rational系列,最后则是Microsoft的VisualStudio系列。测试软件市场几乎完全被IT业界的三巨头垄断。 国产软件在测试软件方面起步较晚,但是随着软件测试在国内的高速的发 展,已有先驱厂商进入了测试软件市场。如上海泽众软件科技有限公司开发出的 国内第一个拥有自主知识产权的自动测试软件一一AutoRunner,让人看到了出现 国产测试软件体系的希望。 复杂T作流软件自动化测试方法的研究第一章概论 1.2本文选题意义与研究内容 时间就是金钱,在如今的商业世界中更是如此。更快了解用户需求并更快响 应的企业才能在竞争中立于不败之地。快速、灵活,敏捷成为了目前软件工程领 域的热门前进方向。SOA(Service.OrientedArchitecture——面向服务架构)、敏 捷开发等新名词不断涌现。其最终目的都是为了缩短软件的开发、测试、上线周 期。测试,作为软件生命周期中重要一环,同样必须提速。 然而,在一般情况下,当测试人力资源与测试效率确定时,软件测试中的“速度"与“质量”之间存在着矛盾——需要提速,必须牺牲测试的质量。在测试过 程中,若希望能够在不影响质量的情况下提速,必须增加测试人力或是提高测试 效率。改进测试方法以及引入自动化测试都可以大大提高基于工作流软件的测试 效率,从而使得软件测试的“速度"与“质量’’同时提升。 改进测试方法的重要方法之一是改进测试用例的编写技术。本文以WOA项 目中一个典型工作流为例,比较了基于节点法与基于路径法两种编写方式,并提 出了以基于路径法为主,基于节点法为辅的优化编写方法。依据此方法编写的用 例,比理论上的全覆盖路径数量减少了98%以上,大大降低了冗余性,可大幅提 高测试效率。 针对基于复杂工作流的WOA项目,引入了自动化测试。针对快速变更的业 务,WOA自动化测试框架采用分层与模块化的结构——由外围控制层、环境配 置模块、清理模块、事务、主脚本、对象库与数据驱动层七大元素组成。