然而,对于软件测试技术,我们又了解多少呢?是大学课本中所学到的黑盒、白盒测试, 还是市场中拿来就用的测试工具,或许是送到第三方测试厂商那里就完事大吉了?面对现实中 软件测试的应用现状,我们所熟知的又有哪些?软件企业测试工程师的比例到底有多大?是6 ∶1、4∶1,还是2∶1......
无论怎样,我们一定要正视一点:软件测试也是一个产业。规范而高效的软件测试,是提 高国内软件开发整体质量水准的基石,也是使中国最终成为一个先进的软件大国的基石。 走出婴儿期
软件测试在全球的发展是不平衡的,在发达国家和地区,软件测试已经成了一个产业,而 在中国,可能还算不上一个真正的产业,目前正在快速发展阶段。在如何提高测试效率,如何 更好地解决测试的充分性和时间上还要有新的突破……
郭旭 我们都知道,软件测试是软件开发过程中一道不可或缺的工序。从目前现状来看, 软件开发商有测试意识吗?
张志明 北京一家大型通信公司的高层技术主管最近曾讲,现在他们公司的软件测试工作 主要还是由开发人员兼做。可见,目前国内软件企业高层对软件测试重要性的认知还远远不 够。两年前,有专家称我国软件企业大多还处于手工作坊状态。怎样理解这句话,如何去衡 量,我认为软件开发人员兼做测试就是一个明显的标识。
软件测试理论从心理学角度认为,开发人员在测试自己开发的程序时有不可避免的心理障 碍,测试工作应该是相对独立的。大型软件企业要想实现质量控制,在软件测试方面一定要设 立独立的测试部门,建立专业的测试队伍,逐步建立一套适合企业自身的比较完整的测试管理 体系。
黄子河 应该说有规模的软件企业对测试还是比较重视的,但是,有足够数量的专职测试 队伍的企业并不是很多,大多数是开发人员兼职。可喜的是,软件用户越来越注重软件产品的 质量,软件测试也越来越得到软件企业的认可。高质量的软件不仅能提升软件公司的品牌,而 且可以节省很多的后期维护费用。看来,软件测试工作,越来越得到了软件企业的重视。
刘珍妮 从Borland的发展史也可以看到测试观念对于Borland的影响,Borland早期是以开 发工具厂商为企业核心,这就代表了在那个时期完全是以开发阶段为重心,Borland内部对于 软件产品的测试也是处于萌芽阶段,和当时大部份的软件厂商一样,并没有非常规范的测试机 制。Borland内部也在数年前导入了正规的测试流程,并且为每一个商业产品定义了最低接受 数值来保证产品的质量。
陈致平 在我的印象中,五年之前,软件测试可能还没有被接受,那个时候完全没有概 念。现在,很多公司已经认识到了测试的重要性。但是他们还没有具备很清楚,所以我个人觉 得大家有点在混沌的状态中去做。我也想做,但是我不知道怎样做得好?这个问题应该尽快解 决。
郭旭 从全球来看,软件测试还处于婴儿期阶段?
黄子河 软件测试在全球的发展是不平衡的,在软件产业比较发达的国家和地区,软件测 试也已经成为很大的一个产业,但是在中国,可能还算不上一个真正的产业,目前正在快速发 展阶段。因此说软件测试处在婴儿期可能有点不恰当,只能说软件测试在测试理论和方法上还 不尽完善,应该说软件构建技术的发展要快于软件测试技术的发展,在如何提高测试效率,如 何更好的解决测试的充分性和测试时间这对矛盾上还要有新的突破。
刘珍妮 这是很有趣的问题,软件测试的启蒙时间并不算短,但是相对于其它软件方法和 产品的发展速度和重视度来看,软件测试似乎是尚处于萌芽阶段。
陈致平 如果说从全球来讲,测试还处于婴儿期,这个我觉得就太言过其实了。实际上回 答这是一个工程基础问题,而工程问题在很多时候是抽象的。
郭旭 那么,导致这种现状的根源在哪里?
刘珍妮 我认为这和我们接受的传统教育和开发习惯有相当大的关系。软件行业相对于其 它一些行业来说是相当年轻,开发工作包含了需求管理、分析、设计、测试和部署等工作,由 于软件业的历史年轻,而且一般人认为,开发周期前面的工作没有完善之前,比较难于考虑到 稍后的阶段。因此,我们可以看到软件业大部分的精力都投入在需求管理、分析、设计三个阶 段的开发,造成了这些方面软件和方法论的快速发展,许多软件人员蓦然发现对于测试是多么 的忽视。
郭旭 国内软件的测试现状与国外差距大吗?
黄子河 差距肯定是存在的,主要体现在测试意识以及测试理论的研究、大型测试工具软 件的开发以及从业人员数量等方面。其实,这与中国整体软件的发展水平是一致的,因为我国 整体的软件产业水平和软件发达国家水平相比有较大的差距,而作为软件产业重要一环的软件 测试,必然有不小的差距。但是,我们在软件测试实现方面并不比国外差,国际上优秀的测试 工具,我们基本都有,这些工具所体现的思想我们也有深刻的理解,很多大型系统在国内都进 行了很好的测试。
郭旭 如何走出软件评测的婴儿期?
陈致平 分两步走,首先,我们应该搞清有哪些需求;其次,我们需要一些流程来保障这 个测试的过程。还有一种观点要注意的是,不要把测试当成一个万能药,或者是一个惟一药品。
刘珍妮 我想这需要软件开发商和所有软件开发人员需要共同努力的,软件开发商应该提 升对于测试工具的发展,软件开发人员则需要重新思考测试的重要并且体验测试带来的好处。 当软件开发商能够提供软件开发人员无负担的测试机制时,就可以大幅降低一般软件开发人员 抗拒使用或是尝试测试机制的力量。一旦软件开发引入测试机制并且提高软件质量之后,也能 够让一些管理人员更正对于测试不正确的想法。
严把质量关
软件不分大小,都要过测试这一关。而把握质量关,除了强化测试意识之外,还需要一定 的机制和流程来约束。专业性、独立性、客观性和公正性的第三方测试机构的出现,又对软件 质量起到了加固的作用……
郭旭 毫无疑问,测试是软件质量的保证。但严把质量关的方法有多种,如CMM、ISO等, 一定要走测试这道工序吗?
张志明 我认为,软件质量是管理学范畴的概念,CMM和ISO是质量管理体系。软件测试主 要是技术实现,是软件质量保障的技术关键。不进行充分有效的软件测试,谈软件质量就是一 句空话。当然,软件测试同样强调测试管理。可以肯定,没有经过严格测试的软件不具可靠性。
刘珍妮 如何达成严把质量关的目的?我想不是根据感觉而已,而是需要一定的机制和流 程。CMM、ISO等可以保证软件开发经过了验证的步骤,而其中的测试工序则可以提供量化的数 据让软件人员得知软件的质量,这是很重要的工作。
黄子河 ISO、CMM主要是从宏观的管理层面上发挥作用,而软件测试是重要的具体的实践 活动,他们是相辅相成的,对于一个软件企业来说,如果没有软件测试过程的ISO、CMM认证, 是不可想象的,比如,SEI的SW-CMM在它的成熟度第三级的“软件产品工程”关键过程中,就 把软件开发周期中不同阶段的测试作为实施活动的关键实践,“过程决定质量”——软件测试 必须贯穿于软件定义与开发的整个周期,只有在软件开发的各个环节实施了有效的测试,软件 产品质量才能得到根本的保证。
此外,软件测试不仅仅能发现现有软件中存在的错误,而且通过分析错误产生的原因以及 在错误产生的阶段,可以帮助发现软件开发过程的缺陷,以便进行改进。
郭旭 软件测试的种类有多少?一个软件的推出,至少要过几道测试关?
黄子河 从不同的角度,软件测试有不同的分类。例如按测试功能划分,有黑盒测试和白 盒测试;按开发过程划分,有单元测试、集成测试、系统测试、验收测试等;按测试方法划 分,有静态测试和动态测试。当然还有很多其他的划分方法,不过我个人认为,划分软件测试 的种类并不重要,重要的是,一定要把测试看成是软件全生命周期持续不断的事情,而不是一 个阶段性的事情,并且要把测试概念的外延进一步扩大。
刘珍妮 不同的软件公司可能有不同的要求,除了开发人员熟悉的测试方法,例如功能测 试,单元测试,整合测试之外,还需要回归测试,Stop-Ship测试。另外对于企业应用系统可 能还需要进行效率测试,压力测试以及耐久测试等。因此对于不同的软件型态,可能需要经过 的测试流程以及重视的特定测试会有所不同。
陈致平 实际上,有很多种测试渠道关,实际上我觉得从质量保证手段这样一个范畴,有 需求的部分、设计的部分,然后到代码的走查和后面的单元测试、集成。实际上这一系列都是 一道道关卡和质量手段。只要考虑一个问题,你建一道大坝拦水,如果拦不住,这道坝也就没 有用了。因此,要用正确的方法去做测试,才能够达到效果,如果你确实想做,然后方法错 了,那你可能最后花多少钱也不是你最后想要的结果。
郭旭 是不是所有的软件的推出,都需要测试?哪些软件更需要测试?
黄子河 是。一个软件,无论其大小和应用领域,测试都是不可或缺的环节,除非根本不 在乎软件品质的好坏。
刘珍妮 对于Borland来说是绝对的,而且Borland对于每一个产品都有要求的测试分数, 只有高于最低标准的产品才能够推出。
当然,所有的软件都需要测试,我想这是毋庸置疑的,但是要花多少相对测试成本可能需 要考虑。一个公用应用程序需要测试的成本不可能高于系统软件。一般而言,系统软件,24× 7×365型态的软件是需要进行更严密的测试的。
陈致平 当然是。什么软件更需要测试?那肯定是跟人力相关的,不能宕机,这肯定是。
郭旭 理想状态下,软件在开发过程中,开发工程师与测试工程师的合理比例是多少?
黄子河 这里说的比例只能是一个概念性比例,并不是绝对的要求,主要还是根据实际测 试需要而定,有些人曾提出,成熟的软件产品制造过程中软件开发工程师和软件测试工程师的 合理比例为1∶3。最近,微软亚洲工程院张宏江院长在一次演讲中指出,微软开发工程师与软 件测试工程师比例是1.2∶1。像目前国内一般公司的软件开发工程师与软件测试工程师的比例 为6∶1甚至10∶1,有的甚至直接用开发工程师兼职,显然是不能满足测试需求的。
陈致平 我觉得其实质量就是成本,客户统筹是不是投入,这么大一个测试的群体,哪个 企业都不要盲目地跟从,首先要立足于企业自己的问题和需要。现在,国家已经开始有了问责 制,我们已经出问题了,或者说本来就出问题了,那我们一定要追查到。其实软件也是一样 的。所以,我觉得,这个合理的比例实际上现在肯定是少的,你能有多大的比例,其实完全取 决于你的客户愿意负责多少成本。
测试自动化
面对软件的规模越来越大,应用的复杂度和集成性越来越高,各种新的软件开发技术不断 应用,那么,如何提供高效、有效性的测试,是软件测试技术面临的巨大挑战。但不可否认的 是,测试自动化仍然是一种趋势……
郭旭 随着软件测试的重要性越来越明显,与之相关的软件测试工具也悄然而至。用这些 工具,就可以完成软件测试了吗?
黄子河 应该说,软件测试和软件开发一样,都是一项人的工作。但是在软件测试中最主 要的还是测试工程师,这与在软件开发中最重要的是开发工程师而不是开发工具,是一样的道 理,工具只能是工具,只不过是用它来实现测试工程师的思维,从而可以减轻一些手动的重复 的工作,使测试工作更加条理化。测试工具只是起到一个辅助作用,在更多的时候还要测试工 程师发挥他们的经验和智慧实施有效的测试。
刘珍妮 我想使用测试工具可以解决许多的测试工作,但是并非全部,尤其是对于垂直产 业的软件来说,目前的测试工具似乎还有待改进。这是因为垂直产业软件的测试需要结合领域 知识,现在的测试工具对于水平产业的软件支持比较好。即使如此,软件厂商在发展软件产品 时除了使用测试工具之外也仍然需要启动测试阶段,找各种不同外部测试人员(Beta Tester) 参加测试。
陈致平 测试自动化实际上是很困难的,从实际的结果来看,我们说有需求,有流程。这 是全面的,两个前提条件,你才能自动化,因为你有没有一个稳定的需求,你的测试自动化无 从谈起,你的目标就像一个自动靶射箭,没有流程你也没法射箭,所以说实际上自动化就是你 在少年这个阶段,你想得很清楚,你有足够的力气,你才能抡得动这把刀。
郭旭 从目前的测试工具来看,以国外品牌居多,对于用户来说,如何选择测试工具?
黄子河 选择测试工具当然也是要根据自己的需求,虽然有很多的测试工具,但是要看清 它们的测试类别,有针对功能的,有针对源代码的,有针对压力负载测试的等等,在同类的工 具中再进行比较,很多的工具大同小异,最好先进行试用,当然也可以咨询专业的测试机构, 无论如何,满足自己需要的才是最好的。
刘珍妮 这主要需要看使用者的软件形态和公司重视的测试项目,用户必须了解每一个测 试产品的重点,此外由于新的软件架构不断的出现也不时的造就出新的测试产品。
郭旭 软件测试技术发展走向是什么?利用工具进行自动化测试,是趋势吗?
黄子河 面对软件的规模越来越大,应用的复杂度和集成性越来越高,各种新的软件开发 技术不断应用,那么如何提供高效、有效的测试,是软件测试技术面临的巨大挑战。
刘珍妮 从各种测试工具的开发趋势来看,自动化测试是发展主流,因为这可以大幅减轻 开发人员的负担以及测试成本。除此之外,测试工具如何结合领域知识提供测试人员可重复使 用的测试以及测试学习机制,我相信测试工具打入垂直产业软件,让这种软件开发人员使用是 很重要的发展趋势。
郭旭 从目前来看,国内软件如何快速进入测试阶段?
陈致平 实际上应该立足于手动测试流程,要把流程建起来。我更觉得可能测试流程的管 理工具是更紧迫的。自动化主要是指一个黑盒、自动回放这样一些东西,取决于一个很好的流 程,一个测试管理的流程,取决于相对稳定的需求。尤其在中国现在的条件下,我觉得很多企 业是不具备一个好的流程,同时我们的市场变得太快,其实现在来讲,应该从自动化这个角度 做是相对比较困难的。现在可能从测试工具来讲,比较容易相对从体系里面,如果你要做一件 事情,受到的其他的牵制和压力很大的,一般来讲会有几个方面,首先从工具上来说,先是设 置的流程管理;其次会是一些我们会有一些其他的元素。这个你要考虑,但是相对来讲,其实 是一个比较有效的质量保证系统,然后我们说这种回归测试,就是说用机器来替代人,这个我 在国内应该是比较特定的一种服务,相对来说,我觉得这两个前提条件都是要具备的;最后的 是压力测试、单元测试。相对来讲,最高级应该是压力测试,这样才能回归。 相关链接:正确看待第三方测试黄子河
第三方测试最大的特点在于它的专业性、独立性、客观性和公正性。对于软件开发商来 说,经过第三方测试机构的测试,不仅可以通过专业化的测试手段发现软件错误,帮助开发商 提升软件的品质,而且可以对软件有一个客观、科学的评价,有助于开发商认清自己产品的定 位。对于行业主管部门以及软件使用者来说,由于第三方测试机构独立公正的地位,可以对被 测试的软件有一个客观公正的评价,帮助用户选择合适、优秀的软件产品。目前国家“863” 计划引入了“以测代评”的机制,通过第三方测试机构公平、公正、公开的测试,把可视性差 为特征的软件透明化,用量化的数据说话,为科技部和专家组择优支持提供了科学客观的依 据,从而避免了以前的印象以及关系成分。另外,很多大的信息系统工程的验收,也要经过第 三方测试机构的严格测试,从而最大程度地避免信息行业的“豆腐渣工程”通过验收。
可以说,第三方软件测试的出现,标志着中国软件产业走向成熟。虽然是“小荷才露尖尖 角”,但的确是一个非常可喜的征兆。希望它能快速成熟起来,为中国软件产业的发展发挥重 要作用 。
文章来源于领测软件测试网 https://www.ltesting.net/