如果说过去在中国软件处于起步阶段,各软件软件企业为了尽快打入市场抢占一席之地,而让一些没有经过完备测试的产品推向市场的话,那么在中国软件产业已经处于相当规模的今天,我们应该更注重于产品的质量。因此软件测试工作因其益发重要的作用而受到企业领导的重视。
目前在国内,测试还是新的话题,很多公司都还持怀疑态度,他们一般都知道测试对软件整体的重要性,但在软件频频出现质量问题上,且加之CMM的影响,很多软件企业不知所措。在软件BUG已不再陌生的今天, 如何建立一个良好有效的流程和管理系统已显得更加重要。
我在过去从事测试工作过程中,也曾遇到了不少问题,有管理上的,有流程上的,还有技术与实现上的。如何出色的完成测试工作,我根据自己的体会总结出以下几点:
1. 良好的测试流程
测试不仅仅是测试部门的事情,测试部门是软件项目执行的并行部门,且与其它部门(项目开发组、技术支持组、销售部门等)关系密切。在测试部门执行项目的同时,这些相关的部门的流程的好与不好直接影响到本部门的工作。所以要重视部门之间的关系和配合,这是做好测试工作的基本前提。
2. 文档的重要性
没有文档的项目是一个不成功的项目。同样,没有文档的测试是一个不成功的测试。这是我一年多来的总结要点。无论是开发还是测试,文档相当重要,一个功能的计划、设计、实现,在这个过程中的思想和说明必须有写入文档。测试计划、案例、报告都应以文档形式或数据库记录形式存在。用以修订,补充和备案。好处在于它不仅可供相关人员阅读和提出意见和建议,更重要的是它是一个知识的积累过程和改进过程。
3. 选择合适有效的测试方法
其实我们也一直在努力做这项工作,好的测试方法可以减少很多费用开支和保证进度,高效且全面的测试方法是我们追求目标。但是,在现实中往往很难如愿。原因在于有很多因素在困扰着我们,项目的类型,项目的进度,产品的质量标准等等。
4. 选择或开发测试工具
合适的测试工具可以帮助我们更快更准确高效地执行测试任务,目前我们用的测试工具除了自行开发的工具外,主要是 Rational 公司的 Robot 系列产品和 WinRunner 7.0。两者都有各自的优缺点。
鉴于目前自动化测试技术还未成熟,我们所采用的测试方法是手工测试和借助测试工具相结合的做法。几乎100%的功能测试和80%的性能、压力、稳定性测试由人工完成,20%的性能、压力、稳定性测试借助一些测试工具来完成,如Smardbit、IXIA、Snnifer、Synflood、 Webstress等。这样测试很耗时间、人力,但却是我们公司目前最可行的测试方法。
5、详细的测试结果分析
一个好的测试项目最终都在测试报告中体现。能够发现更多的BUG,使软件产品的质量尽可能得到提高,是每个测试工程师的愿望,但如果能将测试结果进行统计分类,加上科学的原因分析,这无疑是我们最求得更高境界,这样可以大大减少开发人员的修改工作量,从软件产品的开发、维护成本角度来说,这给企业创造了价值。
6. 建立健全的缺陷追踪系统
如何管理和处理错误或缺陷是比较烦锁的问题,这不但需要一套完善的BUG管理系统,而且也需要从管理者的角度来考虑,设计出比较合理的BUG传递流程,才能够更加及时,准确,全面地管理和处理所有缺陷。
7. 建立通畅的产品信息反馈流程
测试工作做的再细也不可能确保软件产品不存在问题,我们应该将投放市场的使用作为产品Beta测试的一个重要环节,建立一个全方位的、畅通无阻的产品信息调查和产品信息反馈网络,使得我们能够及时、准确了解产品在应用中发现的问题,为开发人员提供可靠的修改依据。
最后,我想说的是测试是一件很烦锁的事情,要做好不容易,需要有足够的耐心和细心,我们的最终目标是要保证产品的质量,满足用户需求。相信我们每个测试工程师都喜欢这份工作,不管是现在还是未来,因为我们相信,软件会越做越好,测试岗位会越来越受重视。
|