软件测试的延伸—浅谈运维测试

发表于:2012-4-19 13:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:黄江平    来源:51Testing软件测试网采编

  对于信息系统建设项目而言,其生命周期体现了该信息系统建设项目从产生到报废的完整过程,根据软件工程有关定义,软件生命周期包括如下几个阶段:项目规划、需求定义和需求分析、软件设计、程序编码、软件测试、运行维护等。而事实上,对于一个信息系统建设项目而言,运行维护阶段才是系统真正实现价值的开始,在此之前的所有工作都是为了得到一个可以为用户提供更多价值的软件产品和信息系统。

  因此,软件运行维护阶段对于一个软件产品或者信息系统而言,是其生命周期中最为漫长的一个阶段,据初步统计,软件运行维护阶段占整个软件生命周期的时间比例为80%。随着IT建设的不断深入和完善,计算机软硬件系统的运行维护已经成为了各行各业、各单位领导和信息服务部门普遍关注和不堪重负的问题。由于这是一个随着计算机信息技术的深入应用而产生的新课题,因此如何进行有效的IT运维管理也是一个新的领域,对于这方面的知识积累和应用技术还刚刚起步。

  毫无疑问,作为信息系统建设质量检验的最有效手段,在系统运维阶段也离不开软件测试,但由于系统运行之后,其相比于软件开发阶段,存在较多的现实难题,诸如不能影响用户的现有业务运行,不能引起业务运行中断,不能破坏系统存储的真实业务数据等等,这些都给系统运维阶段的软件测试工作带来了新的难题,也对系统运维测试提出了更高的要求和期望。

  综上所述,系统运维测试是在软件系统投入正式使用后,在系统运行阶段实施的测试服务,包括对上线后系统运行状态进行监测和异常报告、对上线系统实施动态测试等,以寻找系统缺陷和风险,并对相关缺陷进行诊断,指导系统调优;对系统风险进行评估,制定预防策略,确保系统上线后稳定运行。

  系统运维测试是系统运维管理的重要组成部分,是软件测试在系统运维阶段的进一步延伸和扩展,那么运维测试又有哪些特点呢。

  特点一:软硬件全覆盖测试

  系统运维测试是在软件投入使用后的一个测试服务活动,由于IT系统建设是一个复杂的实体,它必然由一系列的硬件、网络、基础软件和业务软件组成。一旦投入正式使用,IT系统将是一个整体,且随着企业IT系统的日益成熟和复杂,企业的关注点已从单点向多点进行转移。

  在信息系统开发建设阶段,由于环境比较单一,我们可以分别针对网络、硬件、业务软件进行独立测试,但一旦系统投入使用,我们就必须结合系统软硬件环境进行综合测试,并针对测试结果进行综合分析,从总体上验证系统建设架构的可用性和服务水平。

  特点二:系统业务在线运行测试

  系统运维测试时针对用户已经开展业务的系统进行测试,此时,运维测试完全基于生产环境下完成,因此,运维测试中要确保当前的测试操作不影响系统的正常运转。

  生产环境下的软件测试和模拟环境下的测试有较大的不同。模拟环境下,软件系统的用户仅为测试用户,测试用户可以随意的构造和处理数据,不对系统正常运行和对外提供服务负责,只检验软件是否符合验收的标准;生产环境下测试用户执行的操作将会受到较大限制,既要满足测试要求,又不能对系统的业务造成影响。

  生产环境中,需要在约束条件下完成系统测试,这需要制定较为完善的测试计划和测试方案,一方面要保证系统的正常运转,另一方面要完成测试的内容。运维测试中,需要把测试重点放在对系统运行状况的核查上,对软件系统的业务流程,功能完备进行检查,对系统并发测试可以选择查询、统计等不对系统产生数据损坏的操作为主。

  系统运维测试阶段,考虑到系统正在对外提供服务的现实情况,我们对系统的测试应该在检查功能实现正确性的基础上,尽量保证系统的稳定运行,不应影响系统的实际运行,因此我们需要加强对系统数据的保护:

  1)在执行测试前,我们应尽可能对系统进行备份,至少要对系统的重要

  数据和文件进行备份,确保系统测试结束后可以恢复到初始状态;

  2)进行在线系统测试时,对于系统测试过程中产生的少量测试数据要进行特殊标记,测试结束后要及时清理。测试数据我们可以事先准备并予以特殊标记,可以是带有特定意义的区域数据或者是特殊时间段内的数据,当系统测试结束后,我们可以根据这些特殊标记将相应的测试数据删除,保证系统的正常运行,对于那些需要直接在系统中进行变更的数据在相应的业务操作和功能确认完成后应予以及时恢复,确保将系统恢复到数据变更前的正常状态;

  3)对于系统并发负载测试或者其他可能影响系统运行并导致系统崩溃的测试操作,我们可以安排在非工作时间进行,出现系统异常时有时间可进行系统的恢复工作。另外,在具体实施系统并发负载测试时,应按照指标驱动和用户逐渐增加的方法对系统进行测试。在测试过程中,应实时关注系统状态,当系统不能承受相应的压力时,测试立即终止,这样可以有效保证测试不会超出系统的最大可承受压力,避免系统崩溃和数据损坏。

  特点三:测试执行具有多变性

  系统运维测试是以满足用户使用为基础,针对运行中出现的问题进行报告和分析,由于系统已经对外提供服务,因此,所有的测试都必须是在用户使用的空隙基础上进行,具有时间多变性特点。

  另外,系统运行维护阶段必然面临系统升级和变更,这是运行维护测试不可或缺的一部分内容,考虑到升级和系统变更需要在比较短的时间进行发布,在系统发布前需要进行充分的测试,在系统发布后还需要进行在线实际测试。

  特点四:测试分析应具备前瞻性

  系统运维的出发点是要保证系统高效稳定运行,且由于系统已经上线,为不影响用户的实际使用,我们必须充分关注系统的变化情况,建立系统运行基线,一旦发现系统运行状态与基线对比存在较大变化,或者系统整体趋势存在服务能力快速下降的可能时,我们应及时提供有效手段保证系统能够及时调整、扩充,以满足用户日益增长的使用需求。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号