【IT168 技术文章】
一般说来,一个成熟软件的寿命至少有10年以上。而它的寿命长短,则更多地取决于软件 开发质量的好坏。软件开发因此也称作“一步三回头”工程。也就是说,每开发一步,都要有 三道测试手续来检验。测试的重要性可见一斑。
然而,对于软件测试技术,我们又了解多少呢?是大学课本中所学到的黑盒、白盒测试, 还是市场中拿来就用的测试工具,或许是送到第三方测试厂商那里就完事大吉了?面对现实中 软件测试的应用现状,我们所熟知的又有哪些?软件企业测试工程师的比例到底有多大?是6 ∶1、4∶1,还是2∶1......
无论怎样,我们一定要正视一点:软件测试也是一个产业。规范而高效的软件测试,是提 高国内软件开发整体质量水准的基石,也是使中国最终成为一个先进的软件大国的基石。 走出婴儿期
软件测试在全球的发展是不平衡的,在发达国家和地区,软件测试已经成了一个产业,而 在中国,可能还算不上一个真正的产业,目前正在快速发展阶段。在如何提高测试效率,如何 更好地解决测试的充分性和时间上还要有新的突破……
郭旭 我们都知道,软件测试是软件开发过程中一道不可或缺的工序。从目前现状来看, 软件开发商有测试意识吗?
张志明 北京一家大型通信公司的高层技术主管最近曾讲,现在他们公司的软件测试工作 主要还是由开发人员兼做。可见,目前国内软件企业高层对软件测试重要性的认知还远远不 够。两年前,有专家称我国软件企业大多还处于手工作坊状态。怎样理解这句话,如何去衡 量,我认为软件开发人员兼做测试就是一个明显的标识。
软件测试理论从心理学角度认为,开发人员在测试自己开发的程序时有不可避免的心理障 碍,测试工作应该是相对独立的。大型软件企业要想实现质量控制,在软件测试方面一定要设 立独立的测试部门,建立专业的测试队伍,逐步建立一套适合企业自身的比较完整的测试管理 体系。
黄子河 应该说有规模的软件企业对测试还是比较重视的,但是,有足够数量的专职测试 队伍的企业并不是很多,大多数是开发人员兼职。可喜的是,软件用户越来越注重软件产品的 质量,软件测试也越来越得到软件企业的认可。高质量的软件不仅能提升软件公司的品牌,而 且可以节省很多的后期维护费用。看来,软件测试工作,越来越得到了软件企业的重视。
刘珍妮 从Borland的发展史也可以看到测试观念对于Borland的影响,Borland早期是以开 发工具厂商为企业核心,这就代表了在那个时期完全是以开发阶段为重心,Borland内部对于 软件产品的测试也是处于萌芽阶段,和当时大部份的软件厂商一样,并没有非常规范的测试机 制。Borland内部也在数年前导入了正规的测试流程,并且为每一个商业产品定义了最低接受 数值来保证产品的质量。
陈致平 在我的印象中,五年之前,软件测试可能还没有被接受,那个时候完全没有概 念。现在,很多公司已经认识到了测试的重要性。但是他们还没有具备很清楚,所以我个人觉 得大家有点在混沌的状态中去做。我也想做,但是我不知道怎样做得好?这个问题应该尽快解 决。
郭旭 从全球来看,软件测试还处于婴儿期阶段?
黄子河 软件测试在全球的发展是不平衡的,在软件产业比较发达的国家和地区,软件测 试也已经成为很大的一个产业,但是在中国,可能还算不上一个真正的产业,目前正在快速发 展阶段。因此说软件测试处在婴儿期可能有点不恰当,只能说软件测试在测试理论和方法上还 不尽完善,应该说软件构建技术的发展要快于软件测试技术的发展,在如何提高测试效率,如 何更好的解决测试的充分性和测试时间这对矛盾上还要有新的突破。
刘珍妮 这是很有趣的问题,软件测试的启蒙时间并不算短,但是相对于其它软件方法和 产品的发展速度和重视度来看,软件测试似乎是尚处于萌芽阶段。
陈致平 如果说从全球来讲,测试还处于婴儿期,这个我觉得就太言过其实了。实际上回 答这是一个工程基础问题,而工程问题在很多时候是抽象的。
郭旭 那么,导致这种现状的根源在哪里?
刘珍妮 我认为这和我们接受的传统教育和开发习惯有相当大的关系。软件行业相对于其 它一些行业来说是相当年轻,开发工作包含了需求管理、分析、设计、测试和部署等工作,由 于软件业的历史年轻,而且一般人认为,开发周期前面的工作没有完善之前,比较难于考虑到 稍后的阶段。因此,我们可以看到软件业大部分的精力都投入在需求管理、分析、设计三个阶 段的开发,造成了这些方面软件和方法论的快速发展,许多软件人员蓦然发现对于测试是多么 的忽视。
郭旭 国内软件的测试现状与国外差距大吗?
黄子河 差距肯定是存在的,主要体现在测试意识以及测试理论的研究、大型测试工具软 件的开发以及从业人员数量等方面。其实,这与中国整体软件的发展水平是一致的,因为我国 整体的软件产业水平和软件发达国家水平相比有较大的差距,而作为软件产业重要一环的软件 测试,必然有不小的差距。但是,我们在软件测试实现方面并不比国外差,国际上优秀的测试 工具,我们基本都有,这些工具所体现的思想我们也有深刻的理解,很多大型系统在国内都进 行了很好的测试。
郭旭 如何走出软件评测的婴儿期?
陈致平 分两步走,首先,我们应该搞清有哪些需求;其次,我们需要一些流程来保障这 个测试的过程。还有一种观点要注意的是,不要把测试当成一个功能较多药,或者是一个惟一药品。
刘珍妮 我想这需要软件开发商和所有软件开发人员需要共同努力的,软件开发商应该提 升对于测试工具的发展,软件开发人员则需要重新思考测试的重要并且体验测试带来的好处。 当软件开发商能够提供软件开发人员无负担的测试机制时,就可以大幅降低一般软件开发人员 抗拒使用或是尝试测试机制的力量。一旦软件开发引入测试机制并且提高软件质量之后,也能 够让一些管理人员更正对于测试不正确的想法。
严把质量关
软件不分大小,都要过测试这一关。而把握质量关,除了强化测试意识之外,还需要一定 的机制和流程来约束。专业性、独立性、客观性和公正性的第三方测试机构的出现,又对软件 质量起到了加固的作用……
郭旭 毫无疑问,测试是软件质量的保证。但严把质量关的方法有多种,如CMM、ISO等, 一定要走测试这道工序吗?
张志明 我认为,软件质量是管理学范畴的概念,CMM和ISO是质量管理体系。软件测试主 要是技术实现,是软件质量保障的技术关键。不进行充分有效的软件测试,谈软件质量就是一 句空话。当然,软件测试同样强调测试管理。可以肯定,没有经过严格测试的软件不具可靠性。
刘珍妮 如何达成严把质量关的目的?我想不是根据感觉而已,而是需要一定的机制和流 程。CMM、ISO等可以保证软件开发经过了验证的步骤,而其中的测试工序则可以提供量化的数 据让软件人员得知软件的质量,这是很重要的工作。
黄子河 ISO、CMM主要是从宏观的管理层面上发挥作用,而软件测试是重要的具体的实践 活动,他们是相辅相成的,对于一个软件企业来说,如果没有软件测试过程的ISO、CMM认证, 是不可想象的,比如,SEI的SW-CMM在它的成熟度第三级的“软件产品工程”关键过程中,就 把软件开发周期中不同阶段的测试作为实施活动的关键实践,“过程决定质量”——软件测试 必须贯穿于软件定义与开发的整个周期,只有在软件开发的各个环节实施了有效的测试,软件 产品质量才能得到根本的保证。
此外,软件测试不仅仅能发现现有软件中存在的错误,而且通过分析错误产生的原因以及 在错误产生的阶段,可以帮助发现软件开发过程的缺陷,以便进行改进。