未雨绸缪:从软件测试到质量保证

本文涉及的产品
性能测试 PTS,5000VUM额度
简介:

摘要】我们都遇到过这样的情况:每次系统上线,几十人,甚至几百人的测试和开发团队都要提心吊胆的经过若干个不眠之夜。从高层领导到技术人员、测试人员不停的想象着各种可能遇到的情况…

  2005年11月1日,日本东京证券交易所股票交易系统发生大规模系统故障,导致所有股票交易全面告停,短短2个小时造成了上千亿的损失。经查明,故障的“元凶”是当年10月为增强系统处理能力而更新的交易程序存在缺陷。

  设想一下,当一名大银行老总,正在焦头烂额地组织本行的IT系统建设工作,突然看到这样的一条消息,会有什么样的感觉?当然首先会想到,如果自己新上线的系统也出现类似的故障,后果同样是不堪设想的。所以,一个很自然的想法就会冒出来:对即将上线或已经在运营中的IT系统进行一次全面体检,保证系统健康上岗!

  质量危机

  现实中,因IT系统质量存在问题而导致的这样或那样的事故,在很多大型的金融、电信企业中时有发生。

  我们都遇到过这样的情况:每次系统上线,几十人,甚至几百人的测试和开发团队都要提心吊胆的经过若干个不眠之夜。从高层领导到技术人员、测试人员不停的想象着各种可能遇到的情况:服务能否正常运转;功能会不会存在问题;速度能否满足用户要求;移植过来的数据正确性如何,是否会影响业务导致客户投诉……总算熬到安全上线,ATM机系统故障、Pose消费终端没有响应、核心业务系统故障致使业务暂停等等一系列问题又会不时出现,造成巨大的经济损失和恶劣的社会影响。质量问题已经成为企业IT系统主管心中难言的痛。

  在激烈的市场竞争中,如果能在竞争对手前推出新的业务,就能在竞争中争取有利的位置。兵贵神速,新业务的推出速度越快越好。但同时,如果新的业务没有一个稳定可靠的系统支撑的话,那么,轻则面临大量的直接经济损失,包括对客户的损失的赔偿以及修正系统错误的开销,重则损失大量的开展新业务,占领市场高度的时机,直至声誉下降,大量的客户流失,一败涂地。

  避免IT系统质量问题带来的风险,降低故障成本已经刻不容缓。然而,中国质量测试行业才刚刚起步,很多企业采用的测试方法和技术简单而低效,如:组织大批的业务员,把以前做过的业务拿出来,在新的系统上重新跑一遍,发现错误和隐患后,再和开发部门联系进行整改;当有系统变动就再组织大规模人力重复上面的工作,如此反复。然而,这样的方法并不能解决实质性问题,只能头痛医头,脚痛医脚,而且受很多因素限制,系统的质量风险很难控制。一旦遇到测试人员业务不熟;人员长期反复工作产生疲劳倦怠情绪;或是系统有了较大变动,而第二天又要保证上线等等诸多状况时,IT系统的质量风险会陷入不可控的境地。同时,大型金融,电信企业的IT系统又是错综复杂的。以下面的建设银行总行IT系统为例。

  建行已投产运营的项目有十几个,包括银行渠道平台、网上银行、综合产品管理、客户关系管理、信息总线项目等等;后续建设的项目,如企业资源计划(ERP)、数据仓库、信贷业务系统等约十多个。这些项目大都采用了国际国内最先进的技术,技术构成复杂而多样性;而且很多项目在业务、技术架构、物理部署和数据上都有很强的关联,构成了一个庞大的、复杂的IT系统群集。未投产的项目需要进行跨系统的集成测试和非功能性测试,并组织实施投产上线;已投产的项目要进行系统调优和未来的系统发展分析预测;同时,项目还涉及到与大约20个总行级系统的联调测试。这样规模的IT系统质量已经不是上述的简单测试方法能够保证的。

  这就需要专业的质量测试团队来协助企业进行IT系统全面的质量保证和测试工作,从而降低质量风险,使IT系统更好的为业务提供支撑服务。

  专业服务

  要解决质量问题,就必须把IT系统的质量测试工作摆到重要位置。那么采用何种方式保证质量?

  如果客户自己来做测评,虽然也能发现一些问题,但局限于测评方面的专业知识和行业经验,不利于问题在开发方面的追踪,协助开发人员进行修正。如果开发人员自己来做的话,不仅缺乏丰富的测试经验,更重要的是,由于开发工作通常划分比较细致,各部门各司其职,不利于从大局上对软件的质量进行把握。而且,如果在开发的问题上双方出现分歧的话,开发部门自己的质量测试报告的效力就会打折扣。因此,对于大型IT项目而言,最好的办法就是引入专业的第三方质量测试机构,来保证过程和结果的客观性和公正性。而且从测试技术和解决方案上,专业的质量测试机构也更先进和全面,可以提供更为可靠的质量保证。

  在中国,专业的软件测试服务目前尚处于起步阶段,能提供大型项目质量测试服务的机构更是少之又少。专业化的质量测试服务机构,必须具备下面三个条件:1、有先进的、完整的软件质量测试管理理念;2、结合先进的测试技术和工具,有一套完整的实用的质量测试解决方案;3、拥有一批行业经验丰富,测试水平高超,项目管理能力很强的咨询实施团队。

  具备这三个条件的神州数码质量测试事业部,敏锐地看到了这个市场商机。事业部前身是神州数码ITS项目管理中心。多年的项目监理、质量保障和测试管理经验,让其具备了深厚的专业功底,并建立了基于IT系统全生命周期的质量测试解决方案。顺应市场的呼唤,2004年初,事业部正式成立开始走入质量测试领域,为大型应用系统提供来自第三方专业的咨询实施服务。

  建设银行总行,十分注重自身的IT系统质量,其信息化水平在业内也属于领先地位。他们采用的策略是针对重点系统进行性能测试,验证各种系统在不同使用条件和压力下的性能表现,跟据性能测试进行系统性能优化,包括对用户行为、硬件和软件参数配置、数据库和代码的优化。对软件体系结构方面的性能基准测试和咨询。从而确保系统在上线前后都无质量问题。此外,在项目前期通过实施事业部提供的设备选型方案和技术架构验证方案,采用科学化的技术手段和客观的数字分析,来采购最适合的设备和最适宜业务特点的架构,避免了资金的浪费和后期的开发风险。

  事实证明,质量测试是企业IT系统建设健康运转的必备手段。它需要由独立在客户与开发人员之外的专业机构,严格按照客户的质量需求,对IT系统的质量进行全生命周期的监控。

  如何判断IT系统质量是否存在问题?一般的评判标准包含以下几个方面:1、功能,软件的规范和满足用户需求的程度;2、性能,即软件的运行速度和消耗的资源;3、可靠性和安全性,在规定的时间和条件下,软件所能维持其性能水平的程度;4、友好度,软件的学习、理解和使用的方便程度;5、可维护性,当运行条件或者软件本身发生故障的时候,对其进行修正的困难程度。

  系统能不能用,是用户关心首要问题。这就需要功能测试,原则就是不能出错。系统是一个有机的整体,动一指而牵全身。所以,一个细微功能的改变都有可能对系统的其它部分造成重大影响。比如,银行最常见的业务是存、取款,如果因为新的功能加入,造成存、取款业务出现错误,甚至无法完成的话,那么就需要对新加入的功能模块进行修正。针对大量的重复性功能测试,可以采用自动化回归测试方案,每天设定程序自动执行,从而减低人力成本,提供测试效率。

  解决了系统是否能用问题,好不好用就提到了重要位置。也就是性能测试。如果系统不能在规定的时间内做出正确响应的话,就是根本无法投入使用的,再强的功能也只能是摆设。比如,春节时电话和短信的数据量会有一个爆炸性的增长。如果系统性能不过关的话,就会因为不堪重负宣布罢工,这是电信供应商和消费者都不能接受的。性能测试,就是要找出对系统性能起着瓶颈式影响的各种因素并对其进行优化。

  功能再强,性能再好,但如果系统三天两头出故障,同样也是不能接受的,所以需要进行可靠性和安全性方面的测评。

  而友好度和可维护性,都可以通过功能测试和针对性地专项测试来实现。

  总之,IT系统质量的几个因素相互关联。比如,功能的提升,可能会带来可靠性和性能方面的问题。所以,质量测试工作必须从全局的高度出发,平衡各因素的影响,从而系统质量能够满足用户需求。

  针对这点,神州数码质量测试事业部与世界上著名的测试工具供应商,美国Mercury公司在建立白金级战略合作伙伴关系。双方建立了研发级实验室,由Mercury公司提供培训,事业部也依靠强大的研发能力为测试工具开发更为实用的功能插件。同时,作为微软在国内的四个战略合作伙伴之一,在测试外包、行业应用测试、微软平台的开发等领域广泛合作。致力于吸取国外先进质量测试理念和技术,更好的为行业客户质量保证工作尽自己的一份力量。

  从被动测试到主动管理

  然而,测试终究是被动的查漏补缺,没能从根本上解决质量问题,实现标本兼治。如果从IT系统生命周期的源头做起,从过程上做起必然能大大提高软件开发与应用的效率,这就是质量管理。即是从客户的需求开始,主动对IT系统生命周期的产生过程进行质量控制。

  根据业界著名的“V”字型模型,每一项测试工作都与开发的经过是一一对应的。所以需要从需求开始,结合软件质量5个方面的层次需求,按照需求、设计、详设、开发、测试的流程,对软件的质量进行全生命周期的质量管理,这样,才可能把隐患减小到比较低的程度。比如需求,神码质量测试事业部总经理单军说“其实,很多时候,像金融、电信类的大型企业,他们自己困惑,为什么有的测试没有效果?原因是,他们对自己的需求没有明确。由于质量测试的依据是客户的业务和技术需求。需求不准确的话,测试肯定会出问题。所以,我们提出了一个测试需求的概念。”

  建设银行总行,在质量测试事业部的助力下,建立起一套有效的测试体系和管理流程,整合业界最先进的测试管理工具,从测试需求的管理、测试分析设计、测试案例的设计、测试执行、缺陷的管理和报告,确保使每一个需求,都保障得到有效的测试,每一次变更,都保障得到测试的覆盖。对于自身大型IT项目,采用了事业部的测试管理、质量保证方案;创新性地应用了项目群架构关联密集型的测试管理思路,制定了多主线并发测试管理流程,以及目标系统驱动的管理模式,在实际运作中取得了明显成效,有效的控制了项目质量风险,使项目开发更加有的放矢,成果显著。

  所以,将质量管理的理念渗透到IT系统的整个生命周期,是确保系统开发高效、质量可靠的有效保证。

  光明的蓝海

  经过严格的质量管理,苛刻的测试,拿到像神码质量测试事业部这样专业机构的质量测试报告后,也就意味着IT系统在很大程度上是健康的。也许有的人会觉得事业部有今天的成就已经很不错,但事业部这支年轻团队的目标更长远、更靠近客户“金融、电信等高端行业的质量测试业务个性很强,满足客户个性化的质量测试需求,提供更完善的、满足整个IT系统生命周期的质量测试服务,才是我们的目标。”总经理单军说,“我们还要不断努力,用更先进解决方案和技术,更贴心的服务为客户创造最大化的价值,共同开创一片光明的蓝海!”

  “中国的软件开发工作,在测试和质量管理的方面,投入是很低的,这个数据,在国外是30%—50%,要害部门的投入甚至达到了开发费用3—5倍。我们要通过专业化的服务,不断的提升中国企业质量测试意识,真正的为更多的客户提供帮助。”

  路漫漫其修远兮,吾将上下而求索!










====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
2月前
|
测试技术 持续交付 UED
软件测试的艺术:确保质量的实战策略
在软件开发的舞台上,测试是那把确保每个功能如交响乐般和谐奏响的指挥棒。本文将深入探讨软件测试的重要性、基本类型以及如何设计高效的测试策略。我们将通过一个实际的代码示例,展示如何运用这些策略来提升软件质量和用户体验。
|
2月前
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成:提升效率与质量的关键
在快节奏的软件开发环境中,自动化测试和持续集成已经成为不可或缺的部分。本文将探讨自动化测试和持续集成的重要性,以及它们如何协同工作以提高软件开发的效率和质量。通过分析自动化测试的策略、工具选择以及持续集成的实践,我们将揭示这些技术如何帮助开发团队快速响应变化,减少错误,并加速产品上市时间。
|
2月前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
3月前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
2月前
|
敏捷开发 监控 测试技术
软件测试中的自动化策略:提升效率与质量
在软件开发过程中,测试是确保产品质量的关键环节。随着敏捷开发模式的普及,自动化测试成为提升测试效率和质量的重要手段。本文将介绍自动化测试的基本概念、实施步骤以及如何通过自动化测试提高软件测试的效率和质量,同时分享一些实用的自动化测试工具和技巧。
67 3
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【10月更文挑战第35天】在软件开发的海洋中,自动化测试犹如一艘救生艇,它帮助团队确保产品质量,同时减少人为错误。本文将探索如何通过集成人工智能(AI)技术,使自动化测试更加智能化,从而提升软件测试的效率和准确性。我们将从AI在测试用例生成、测试执行和结果分析中的应用出发,深入讨论AI如何重塑软件测试领域,并配以实际代码示例来说明这些概念。
73 3
|
3月前
|
敏捷开发 监控 jenkins
自动化测试之美:打造高效的软件质量保障体系
【10月更文挑战第20天】在软件开发的海洋中,自动化测试如同一艘精准的导航船,引领项目避开错误的礁石,驶向质量的彼岸。本文将扬帆起航,探索如何构建和实施一个高效的自动化测试体系,确保软件产品的稳定性和可靠性。我们将从测试策略的制定、工具的选择、脚本的编写,到持续集成的实施,一步步描绘出自动化测试的蓝图,让读者能够掌握这一技术的关键要素,并在自己的项目中加以应用。
40 5
|
3月前
|
测试技术
软件质量保护与测试(第2版)学习总结第十章 黑盒测试
本文是《软件质量保护与测试》(第2版)第十章的学习总结,介绍了黑盒测试的基本概念和方法,包括等价类划分、边界值分析和因果图法,并通过具体例子展示了如何设计测试用例来验证软件的功能性需求。
82 1
软件质量保护与测试(第2版)学习总结第十章 黑盒测试
|
3月前
|
人工智能 人机交互 数据库
软件质量保护与测试(第2版)学习总结第一章
本文是《软件质量保护与测试》(第2版)第一章的学习总结,概述了软件的特征、分类、软件工程的层次化技术、现代软件开发的变化,以及软件质量的概念和评价体系,包括黑盒、白盒和灰盒测试方法。
43 1
软件质量保护与测试(第2版)学习总结第一章
|
3月前
|
Java 测试技术 持续交付
探索自动化测试的奥秘:提升软件质量的关键
【10月更文挑战第20天】 在当今快速发展的软件行业中,自动化测试已成为确保产品质量和加速开发周期的重要工具。本文将深入探讨自动化测试的核心概念、实施策略及其对软件开发生命周期的影响,旨在为读者提供一种全面理解自动化测试的视角,并展示如何有效地将其应用于实际项目中以提高软件质量和效率。
35 2