关于软件测试的思考探讨
2020-08-14谢华
摘 要 在过去的两年中,金融机构和专业的测试组织进行了大量的研究和工作实践,人们普遍认为应用测试自动化技术测试自动化可以提高测试效率,节省人工成本,但从实际出发,效果似乎并不符合所有人的期望,我们不得不重新检查自动化测试,基于不同的开发模型进行思考和认知。
关键词 软件测试;思考;探讨
1 金融行业主要软件研发模式
当前,金融行业的软件开发模型主要有两种,分别对应于不同的组织形式。一种是传统商业银行代表的标准,稳定,质量保证的瀑布式或类瀑布式研发模式,它对应于需求,研发和测试角色的独立和独立的组织形式。另一个是以互联网公司为代表的灵活,迭代和效率至上的敏捷研发模型,它对应于需求、研发和测试角色以及团队合作的相互集成的组织形式。两种研发模式各有千秋。传统的研发模式注重质量,需要严格控制风险以确保安全生产。敏捷的研发模型更重视效率,并且对在线问题有一定的容忍度。
在整个IT行业敏捷转型的大趋势下,传统金融行业也在核心稳定性的基础上探索了自己的敏捷研究与开发模型。大型商业银行通常采用“双模式IT”研发管理模式。一方面,传统的研发模式确保了核心基础业务的稳定性;另一方面,敏捷的研发模式满足了互联网创新业务的需求[1]。
2 不同软件研发模式下的自动化测试实践
不同的软件开发模式对应于不同的自动化测试技术系统和工作实践。自动化测试技术只有与组织模式,环境条件和测试阶段相匹配,并且它们在缺陷发现(质量),风险覆盖范围(范围),效率提高(时间)和资源节省(成本)方面的各自作用才有效。
2.1 传统瀑布式研发模式
最佳实践:在传统的瀑布式研发模式下,开发部门人员和金融行业软件自动化测试实践和思考都将完成单元测试和系统集成测试(SIT)。版本交付后,独立的测试部门团队将进行用户验收测试(UAT)。自动化测试分两个阶段进行,其中UAT作为质量保证的最终级别,并基于用户的角度对真实业务流程进行端到端模拟。 UAT主要使用UI页面自动化测试工具来执行自动化测试。当前版本修改内容的验收测试,由于脚本开发投资成本不合理,因此通常不考虑自动化测试。
前提条件:用于识别技术困难的UAT测试自动化控件位于首页上,而用于检查和测试自动化实现的业务逻辑取决于页面控件开发的标准化,标准化的过程和界面设计可以显著降低开发和维护自动化测试的成本脚本以及被测系统具有良好的可伸缩性是有效开发UAT测试自动化的前提。此外,高可用性测试环境,完整的数据库,成熟的平台工具,丰富的业务资产以及标准化的案例步骤也是有效实施UAT自动化测试的必要条件。尽管UAT不需要测试人员具备高水平的测试自动化技能,但对于R&D标准化,环境可用性,数据完整性,资产成熟度和行业也很重要。
效果:重复执行和烦琐的测试内容是UAT自动化测试实施的重点,脚本维护和新鲜度保存是自動化测试实施的难点。通过选择成熟稳定的业务交易流程来进行例行和自动执行回归测试,可以提高测试工作的综合性,可以扩大当前版本转换内容以外的测试范围,可以稳定核心业务和交易流程保证,并且可以整体上提高版本启动的信心。从发现的缺陷,风险覆盖率,效率提高和资源四个方面来看,UAT测试对项目贡献的自动化测试是通过扩大覆盖范围,达到质量保证的作用,对于回归测试的例行和执行效率以及节省人力的风险方面也已经实现了提升的优化,但对于测试主要关注的当期版本改造内容缺陷发现、测试效率提升和人力成本节约方面并未发挥明显作用[2]。
2.2 敏捷研发模式
最佳实践:在敏捷开发模式下,研发和测试都在同一团队中完成。研发和测试人员一起工作,可以实现高效的人员沟通和高度的资源共享。测试集中于接口级别的功能和系统集成测试(SIT),而用户接受测试(UAT)通常由业务部门执行,而不负责质量控制。该行业的成熟实践是通过界面自动化测试工具来进行自动化测试。界面自动化测试脚本的稳定性和可重用性优于UI自动化测试脚本。金融机构的许多测试部门都基于接口进行自动化测试,并建立了自动化测试流水线,以实现持续集成和持续建设。被测系统集成新接口后,它将自动运行所有接口测试用例,以确保新接口不会影响库存功能。
前提条件:敏捷开发模式下的测试对象是一个单独的接口,测试人员的验证可以实现接口功能的准确性,需要考虑业务本身的稳定性,直接根据接口定义配置测试数据,进行接口测试环境可以满足普通联通开发的自动化测试,测试自动化对外部条件的依赖程度低。敏捷研究和开发模式下自动测试实现的前提是明确接口定义和接口暴露程度。同时,接口自动化测试要求测试人员具有更高的技能水平和工具框架的灵活性,这些测试人员需要具有编码能力并且能够设计出良好的接口测试用例。自动化测试工具框架应灵活支持持续集成,持续构建的接口组装和批处理过程,这些都应进行测试。使用系统接口应该能够容易地被自动化测试工具集成和调用。商用工具通常很难满足要求,因此要求自动化测试工具的研发团队具有强大的研发能力,以支持敏捷研发模式下自动化测试工具的灵活需求。
效果:在敏捷开发模式下,可以继承和重用自动化测试用例,并在后续版本中重复执行,这为自动化测试提供了便利条件。从缺陷发现,风险覆盖范围,效率提高和资源节省的四个方面来看,这种自动化测试实践可以发现当前版本功能测试中的缺陷[3]。
3 结束语
科学地看待自动化测试,就是要了解自动化测试技术的优势和局限性。开展自动化测试可以带来收益,但也要认识到现阶段的自动化测试技术并不是万能的,不能解决全部问题,有一些在认识上的误区需要被澄清。
参考文献
[1] 陈孟婕,刘慧媛,王振洲,等.基于LoadRunner的Web考试系统性能测试与优化[J].中国农学通报,2014,30(34):250-256.
[2] 林一,陈靖,刘越,等.基于心智模型的虚拟现实与增强现实混合式移动导览系统的用户体验设计[J].计算机学报,2015,38(2):408-422.
[3] 荣国平,刘天宇,谢明娟,等.嵌入式系统开发中敏捷方法的应用研究综述[J].软件学报,2014,25(2):267-283.
作者简介
谢华(1977-),女,广西贵港人;学历:本科,现就职单位:广西软件管理中心,研究方向:软件工程/软件测试。