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

sales@spasvo.com