ERP功能测试10个步骤确保ERP系统的可靠性[1] 功能测试工具
ERP软件应用为企业提供管理大规模关键业务功能的能力,包括产品规划、部件采购、库存维护、和供应商的互动交流、提供客户服务,以及订单跟踪等。有些ERP解决方案还能包括一些财政和人力资源方面的应用模块。尽管这些应用通常不会直接生成效益,但是它们能让企业以一种有效的、切合实际的方式使用现有的客户数据,帮助合理化企业的业务活动,为企业新的和当前的客户提供高质量的服务。
ERP应用通常使用一个单一的、中央数据存储器来服务于所有的模块。因此,当这些应用产生了性能问题时,很有可能影响到使用同一存储器的所有业务领域。ERP和共享数据结构间的这种关系决定了它必须实施稳固的测试和监测程序才能确保企业关键应用的健康运行。
由于业务流程交易跨越企业中的多个部门和区域,并且涉及ERP应用本身的多个模块,因此测试ERP应用应该采用一种整体的方式。当验证这些业务流程的功能时,关键在于捕获自动化测试解决方案中的业务流程测试,用于实现快速的测试重复。由于ERP应用跨越多个业务领域,存在不可避免的复杂性,因此,对每个ERP应用以及每个应用发布版本展开功能测试是非常重要的。
每个ERP实施中都会面临的主要挑战之一就是确保应用在上线之前能满足所有的业务需求。关键在于测试和验证这些应用的运作情况是否符合设计要求。为确保关键业务应用的功能,下文中将从10个关键步骤详细描述,使用这些步骤能为企业的关键ERP应用来设计和实施有效的功能测试程序。
步骤1:初始规划和收集需求 软件测试
在任何一个环境中,功能测试的最重要阶段之一就是规划。对于ERP应用来说,这个步骤就更为重要了,因为其中涉及环境的复杂性以及推动这些应用实施的错综复杂的业务需求。不完善的规划可能导致失望的结果和不完整的测试覆盖面。经过深思熟虑的规划使您能避免一种“垃圾进,垃圾出(garbage in, garbage out)”的局面,使企业能衡量和最大化他们的测试工作,获取更多的投资回报(ROI)。
许多公司购买预先打包的ERP解决方案,希望能实现业务管理各个领域的快速整合。然而,这种被称之为“vanilla”的ERP打包方案必须经过客户定制,才能部署到它所要支持的业务中去。从逻辑上来说,收集需求是规划阶段的起点,因为开发人员通常根据需求来定制ERP应用;测试人员使用它来测试系统和客户定制项目;而最终用户使用它进行用户接受测试和终结测试。通过提前仔细地定义需求,测试人员可以规划和管理那些更加注重业务需要的测试。接着,需求可以同测试和实际测试结果(被识别的缺陷)相结合,以全面覆盖所有的功能测试。
步骤2:定义测试目的和选择合适的测试
测试人员通过创建主要的测试目的,将决定所需的特定测试类型。 测试目的、项目计划和团队结构也将从这些测试目标中形成。当功能测试一个ERP实施时,有多种不同的验证测试需要执行:
数据映射:由于许多ERP实施和后端大机系统紧密地集成在一起,因此测试ERP应用所显示的数据和在大机系统中被发现的数据之间的数据映射是十分关键的。很可能在大机系统中隐藏着一些陈旧的或无效的数据,这些数据会引起应用当中的问题。
业务流程测试:应该使用测试来验证各种业务流程是否正确运作。由于工作流对强化业务规则来说是非常重要的,因此测试应该覆盖整个整合系统中的所有导航项目和直接功能。应用的业务规则和启动项必须通过全面地测试,确保所有规则能被正确地执行。
权限控制系统:ERP权限控制系统决定了用户可以使用哪些信息,用户在这些信息中可以看到哪些数据。当涉及到供应链和合作伙伴入口时,将会增加安全方面的考虑。从用户界面的角度出发测试安全性可以确保严格执行验证规则。数据驱动的测试使IT人员能使用具有不同登录凭证的相同脚本去验证安全规则。
回归测试:每次部署一个“Code Drop”时,对位于这些程序的每个对象的功能进行回归测试是非常重要的。这其中包括测试它的存在、功能、值等等。“code drop”指的是任何一次新的ERP应用、补丁程序和/或hot fix的发布。
步骤3:定义目标,以满足测试目的
当完成所有的目的定义,选择好测试类型,接下去就要创建一系列的阶段目标来实现所定义的目的。一套最普通的初始阶段目标包括:
分析应用功能,并识别关键业务流程。在一个ERP应用中的关键业务流程实例就是“服务请求”的创建。建立“冒烟测试”,在开发周期中快速执行该类测试。冒烟测试不应深入被测试应用的功能,而是应该测试关键的业务功能。例如,用户是否能够创建可以和“Trouble Ticket”相应的活动。在每次正式发布形成后运行冒烟测试。着手创建自动化测试来降低手动运行冒烟测试的成本。
实现了这些初始阶段目标之后,应该建立一套后续阶段目标。
分析应用,展开功能识别,这将扩大测试范围,涵盖超过75%的总的应用功能数量。(取得100%的脚本自动化测试是非常困难的,因为自动化测试工具无法进行如可用性测试这样的事宜。)建立可持续运作的自动化测试,从而降低测试的工作量。