云会计环境下基于软件测试技术的AIS审计

2018-08-01 07:08平,白
西安财经大学学报 2018年4期
关键词:马尔科夫测试用例软件测试

程 平,白 沂

(重庆理工大学 会计学院, 重庆 400054)

一、引 言

AIS(Accounting information system,会计信息系统)审计是借助IT技术对AIS的策划、开发、使用和维护进行检查的审计活动[1],其审计范围一般包含管理层控制、一般控制和应用控制,本质为IT审计。云会计是基于云计算、大数据等信息新技术构建的分布式虚拟会计信息系统,向用户提供“按需定制”的会计服务。在传统AIS审计中,同款会计软件的审计结果基本上是一致的,审计人员可以直接使用审计结果。由于云会计“按需定制”的服务特点,不同用户定制的AIS产品各不相同,使得审计人员在云会计环境下进行AIS审计时必须从头开始进行审计,工作量激增,因而人工手段可能无法满足其审计需求,需要更多地运用到自动化审计手段。软件测试是在软件开发阶段进行的、对软件功能进行评测的重要研发步骤,其通过测试用例集对软件进行测试,寻找软件可能存在的问题。云会计环境下基于软件测试的AIS审计通过软件测试方式从AIS管理层控制层面、AIS一般控制层面和AIS应用控制层面对云会计AIS进行审计,在相关算法的帮助下用自动化测试手段从数据的角度发现审计疑点、寻找审计证据,使得审计工作更加简单、高效。

AIS审计在会计实现信息化以来高速发展并受到诸多学者的重视。AIS审计本质为IT审计,程平等分析了云会计环境下AIS审计的特点,并参考COBIT5.0标准构建了AIS审计框架,梳理了审计流程[1]。在AIS审计发展研究方面,王娜阐述了AIS审计基本理论并在此基础上分析了我国AIS审计的发展现状,总结了在AIS审计发展过程中出现的相关问题[2]。在AIS审计的具体运用方面,孙立辉从内部控制的角度对AIS审计进行了研究,在介绍了AIS内部控制相关概念的基础上,详细阐述了AIS审计中内部控制评价的七个步骤[3]。吴克森等则从数据库建设的角度分析了数据库对AIS审计的影响,给出了建设AIS审计数据库的实施方案,并对数据库在AIS审计中的具体实践与运用进行了阐述[4]。史振生等则是在阐述了《萨班斯——奥克斯利法案》对AIS风险管理的具体要求的基础上,基于外部监管及AIS审计的视角对AIS建设过程中的风险控制与防范进行了分析[5]。

综观上述文献,多数学者都是从AIS审计框架构建、发展综述和实施运用的角度对AIS审计进行研究,但鲜有文献涉及在云会计环境下从数据角度进行AIS审计,审计中有关自动化测试的研究相对较少。有鉴于此,本文以云会计为背景,引入软件测试自动化的方法从数据的角度对AIS审计进行研究,构建基于软件测试技术的AIS审计框架并对AIS审计指南、AIS审计流程和基于软件测试技术的AIS审计方法进行了梳理,并以费用报销系统审计为例对软件测试自动化在AIS审计中的运用进行分析。

二、云会计环境下的软件测试自动化

(一)软件测试自动化与穿行测试

云会计环境下的穿行测试是将设置好的初始数据输入到云会计AIS中,经过数据处理、传递后将得到最终处理结果,通过比较最终处理结果与期望结果的差异可以帮助审计人员寻找AIS产品设计缺陷。

软件测试可大致分为功能测试与非功能测试,其中非功能测试又包括安全测试、压力测试、性能测试、容错性测试、扩展性测试、稳定性测试和数据一致性测试等测试内容。在测试方法上,软件测试通过选取测试用例——映射到穿行测试中可以表述为设置初始数据以及数据的期望处理结果,然后进行测试过程得出最终测试结果。将最终测试结果与测试用例的期望值进行比较可以发现软件中存在的缺陷和错误,这和穿行测试中让初始数据贯穿整个数据处理流程、比较实际测试结果与期望值差异,进而发现审计疑点的原理是一致的。

考虑到云会计环境的技术背景以及软件测试自动化的便捷,在云会计AIS审计中可以参照软件测试自动化的方法进行穿行测试,以此提高审计效率,减小审计工作量。

(二)云会计AIS审计中的软件测试自动化

软件测试自动化是提高软件测试效率的有效手段,在云会计环境下用户的定制产品各不相同,不同用户在子系统业务处理流程上也有所区别,因此在进行自动化软件测试时需要根据充分考虑到用户定制云会计AIS产品的服务特点、流程设计和运营模式。

1.测试用例集

测试用例集作为软件测试过程中所有测试用例的集合,在传统软件测试中测试用例由测试人员人为设定,而将软件测试方法运用到云会计AIS审计中时有所不同。由于在AIS审计时相关会计业务已经发生,和传统软件测试所处的软件开发阶段有较大区别,因而在AIS审计中进行软件测试时可以将财务数据作为设置测试用例的基础,参考企业云会计AIS各子系统的业务处理流程设置期望值,进而形成测试用例,构建云会计AIS审计中的测试用例集。

2.测试过程集

云会计环境下基于软件测试技术的AIS审计是借鉴软件测试的方法进行审计,因此需要将传统软件测试的测试过程映射到AIS审计中。传统软件测试过程包含单元测试、集成测试、确认测试、系统测试和验收功能测试等五个步骤,映射到云会计AIS审计中可以建立基于软件测试技术的AIS审计方法,分为单元审计、集成审计、确认审计、系统审计和其他审计。

(三) 云会计环境下实施软件测试自动化的特点

云会计环境下的软件测试过程在云中进行,从云会计AIS审计的角度可以认为是一种云外的测试(Testing of a Cloud),由审计人员对用户定制的云会计AIS产品进行测试,从而对云会计AIS的功能与服务质量进行验证[6]。由于云会计用户只拥有定制云会计AIS产品的使用权,因此审计人员在进行AIS测试时应当和云会计服务提供商保持沟通,其中可审计性是云会计AIS可信性的重要组成部分,也是展开基于软件测试的AIS审计的前提[7]。审计时发现的问题需要同时反馈给被审计单位管理层与云会计服务提供商,并由云会计服务提供商给出问题的相关解决方案。

三、基于软件测试自动化的AIS审计

(一) AIS审计框架

基于软件测试自动化的AIS审计主要参考软件测试的技术,通过对会计信息的输入、处理、传递和输出等步骤进行测试对AIS管理层控制、AIS一般控制和AIS应用控制进行审计。基于软件测试的AIS审计其本质为IT审计,因此可以在充分考虑云会计AIS特点的情况下参考COBIT5.0标准构建AIS审计框架。同时由于将软件测试作为一种审计手段,因此在构建云会计AIS审计框架时还应当将其技术架构、实施流程纳入考虑范围中。云会计环境下基于软件测试技术的AIS审计框架应当包含AIS审计指南、AIS审计流程与基于软件测试技术的AIS审计方法,如图1所示:

图1 云会计环境下基于软件测试的AIS审计框架

1. AIS审计指南

AIS审计指南能够指导审计人员开展基于大数据测试的云会计AIS审计工作,大致分为关键审计因素、流程能力模型、风险控制模型、审计知识库、软件测试用例集和软件测试过程集等六个部分。其中关键审计因素是需要审计人员重视的、云会计AIS的关键风险点;流程能力模型源于《ISO/IEC 15504 软件工作——流程评估标准》,旨在测评AIS审计流程的绩效,以及是否满足法律法规、会计准则的相关规定;风险控制模型为审计人员提供应对审计风险的参考流程;审计知识库负责收集、整理和提供审计人员在AIS审计中发现的审计知识,包括如何构建测试用例、项目中AIS存在的不足等内容;AIS测试用例集为审计人员以获取到的用户企业财务数据为基础构建的测试用例集合。

2. AIS审计流程

AIS审计流程依旧包括制定审计目标、风险评估、制定审计计划、设计审计程序、执行审计程序、出具审计意见等六个步骤,其中审计程序的设计主要包含了对AIS管理层控制、AIS一般控制和AIS应用控制进行的审计程序。基于软件测试技术的AIS审计方法主要运用在AIS审计流程中的审计程序设计阶段,其在AIS管理层控制、AIS一般控制和AIS应用控制中都能够起到重要作用。审计结束后,审计结果应当反馈给审计知识库,同时云会计服务提供商应该根据AIS审计结果提供相应的解决方案。

(1)AIS管理层控制

AIS管理层控制一般涉及云会计AIS的账套管理、权限管理等日常管理,以及包含重新定制云会计AIS产品、变更云会计服务提供商等在内的云会计AIS变更。在AIS管理层控制中更多地运用到功能测试,作为一种辅助手段配合问卷调查、穿行测试等方法从数据层面帮助审计人员对AIS管理层控制做出评价。

(2)AIS一般控制

云会计AIS的一般控制主要涉及数据安全、访问安全以及网络安全等基础保障,在基于软件测试的AIS审计中通常以非功能测试为主,审计人员需要对AIS一般控制进行安全测试、压力测试、性能测试、容错性测试、扩展性测试、稳定性测试和数据一致性测试等测试内容。安全测试能够测试云会计AIS在防御恶意软件攻击、权限设置等方面的表现情况;压力测试主要验证云会计AIS在数据流量巨大、在多客户端登陆的情况下是否能够正常运行,整体性能是否下降或是出现运行异常等情况;性能测试能够测试云会计AIS的数据吞吐量、反应时间以及并行处理能力等多个指标,可以反映云会计AIS在不同负载情况下的性能;容错性测试是测试云会计AIS在部分子系统出现错误后能否继续在不影响整体性能的情况下继续工作,对“按需定制”的云会计而言有着重要意义;扩展性测试是测试当用户变更云会计服务,其定制的云会计AIS产品发生会计服务模块的增加、减少或变更后是否依旧能够满足用户的最低可信需求;稳定性测试主要测试云会计服务平台在长时间运行的稳定性,对云会计这种不间断长时间运行的云端系统而言其重要性不言而喻;数据一致性测试是测试云会计AIS输入、传递和输出的财务数据是否一致,该部分工作量较大,可用diff、SQL语句等编写脚本进行自动测试。

(3)AIS应用控制

AIS应用控制是对云会计AIS的相关应用进行测试,在确保每部分的子系统都能够实现其设计要求的同时还需要检查云会计AIS的各项设置是否符合会计准则的规定,另外税收可稽查性与可审计性在云会计AIS应用控制中应当受到重视[7]。

3.AIS审计方法

基于软件测试技术的AIS审计方法按照审计对象可以从局部到整体分为单元审计、集成审计、确认审计、系统审计和其他审计。其中单元审计是将软件测试自动化的方法运用到穿行测试中,进而对云会计AIS中的最小可测试单元进行审计,例如科目余额表的计算功能是否正常。集成审计是将最小可测试单元集成为云会计AIS的子系统,然后对集成子系统进行审计。例如,报表生成系统。确认审计是在完成集成审计后诸如子系统间数据接口错误等问题已不存在、子系统整合为AIS产品的情况下对云会计AIS产品的可用性进行审计,检查其是否能够满足最低的使用需求。系统审计是将云会计AIS产品置于互联网环境中,将其与硬件设施、外设等结合在一起进行审计,检测云会计AIS产品的可信性是否满足企业的最低可信需求,审计对象不仅包括AIS产品本身,还包括云会计服务器集群、与OA、SCM等其他业务系统的数据接口等。其他审计主要对云会计AIS产品面向其他会计信息使用者时是否可信进行审计。例如,面对税务部门时是否具有税收可稽查性,面对注册会计师事务所时是否具有可审计性。

(二)AIS审计中软件测试自动化的运用

云会计AIS中业务流程的处理可以表述为由一个节点向下一节点传递数据的状态转移过程,通过单元审计、集成审计、确认审计、系统审计和其他审计等审计步骤可以由局部到整体对云会计AIS产品进行审计。

1.半马尔科夫链模型

马尔科夫链是一种随机过程,满足以下两个假设。一是t+1时刻系统状态的概率分布只与t时刻的状态有关,与t时刻以前的状态无关;二是从t时刻到t+1时刻的状态转移与t的值无关,即在状态转移过程中未来的状态只和当前状态有关,和过去状态无关。半马尔科夫链建立在马尔科夫链基础之上,是离散、连续相结合的随机过程,用公式(1)表示为:

(1)

其中Xi为第i个状态,S为状态集合,N为自然数集,πij为由第i个状态转移到第j个状态的概率。在第i个状态可能发生的所有状态转移的概率和为1,因此从初始态到终止态的半马尔科夫链过程可以用状态转移概率矩阵进行表述,其中πij是状态转移概率矩阵的元素。

考虑到云会计AIS的业务处理流程,可以采用半马尔科夫链模型表达、量化云会计AIS业务处理中数据传递过程。在基于软件测试技术的AIS审计中,审计人员构建的每个测试用例都可以根据其实际状态转移概率和期望状态转移概率形成相关矩阵,并通过比较两者之间的差异来为寻找审计疑点提供帮助。

2.算法选择

实际状态转移概率的计算可以通过软件测试自动化算法实现,需要注意的是,由于传统软件测试是软件开发阶段的软件测评手段,其自动化算法会综合考虑到测试用例覆盖率与数量之间的平衡。在云会计AIS审计中,审计人员以财务数据为基础设置测试用例,从数据的角度帮助其发现审计疑点。因此,在云会计AIS审计中的软件测试自动化算法不用考虑覆盖率问题,在算法运用上要相对简单。

软件测试自动化的相关算法有很多,例如,GA遗传算法、PSO二进制算法、BP神经网络算法等[8]。在实际审计工作中,企业设计的内部控制制度规定了标准的相关业务处理流程,在使用半马尔科夫链模型对财务业务处理流程进行描述的情况下,可以认为其期望状态转移概率矩阵已经存在。因此在基于软件测试技术的AIS审计过程中,所选取的自动化算法不需要过于复杂,更多地需要对相关业务处理流程的期望状态转移概率矩阵和实际状态转移概率矩阵进行比较。

BP神经网络算法是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一,其所计算出的误差可以帮助审计人员比较企业财务处理流程的实际状态转移概率矩阵与期望状态转移概率矩阵,其差值可以帮助审计人员发现审计疑点。因此,可以选用简化的BP神经网络算法来实现实际状态转移概率与期望状态转移概率矩阵差值的计算。

四、以费用报销系统审计为例

企业的财务处理流程是从一个节点到下一个节点的信息传递过程,可信的云会计AIS产品在辅助财务人员进行业务处理时可以保证信息的接收、处理、传递和输出严格按照企业内部控制制度,符合会计信息质量要求。费用报销系统是云会计AIS产品的重要组成部分,在内部控制制度设计时一般会将不同金额的费用报销交由不同权限的管理人员进行审批,其状态转移符合半马尔科夫链模型,可以用半马尔科夫链模型对实际的费用报销流程进行描述。

(一)费用报销流程的半马尔科夫链模型

参考半马尔科夫链,可以得到云会计AIS费用报销流程模型X={Xn:n∈N,Xn∈S}。其中Xn为第n次费用报销申请单传递时的审批状态,N为自然数集,S为不同审批节点集合。当费用报销申请单传递时,将发生状态转移,由一个审批节点转到另外一个审批节点,根据费用种类、费用金额的不同,因此不同的费用报销申请单在进行审批时状态转移是相互独立的。假定A公司费用报销审批状态转移,转移流程如图2所示:

图2 费用报销审批的半马尔科夫链模型

状态转移概率表达如公式(2)所示:

(2)

其中,π12表示报销人员提出报销申请后,报销单传递给业务部门领导进行审核的概率;π23表示当业务部门领导审核通过后,报销单从业务部门领导手中传递到会计手中进行审核的概率;π34表示会计人员审核通过后,报销单从会计人员手中传递到财务总监手中进行审核的概率;π45、π48分别表示财务总监审核通过后,报销单从财务总监手中传递到总经理手中进行审批以及直接批准报销、进入支付程序的概率;π56、π57、π58分别表示总经理审批通过后,报销单从总经理手中传递给董事长、董事会以及直接批准报销、进入支付程序的概率;π67、π68分别表示董事长审批通过后,报销单从董事长手中传递给董事会以及直接批准报销、进入支付程序的概率;π78表示董事会审批通过后批准报销、进入支付程序的概率。

(二) AIS测试用例集的设置

不同性质、不同金额的费用报销单审批流程各不相同,用半马尔科夫链模型表述时可以取得期望状态转移概率,这是内部控制制度设计时所决定的。在此基础上可以构建AIS测试用例集,并通过基于软件测试的AIS审计方法对比AIS测试用例集的期望状态转移概率与实际状态转移概率,可以得到概率差异,进而发现审计疑点,帮助审计人员找到用户所定制云会计AIS产品在费用报销流程中存在的问题。

假定A企业为某大型国企,为应对中央巡视组就“三公经费”进行的调查,A企业请来咨询公司对企业内部控制进行强化。咨询公司在优化A企业内部控制制度设计时按照A企业的实际情况设计了云会计环境下的业务招待费报销审批权限和流程,见表1。

表1 业务招待费报销审批权限和流程 (单位:元)

当业务招待费金额超过20000元且少于100000元时需要经过业务部门领导、会计、财务总监、总经理审核后上报董事长审批,然后就可以进入支付程序。其期望状态转移概率矩阵如公式(3)所示:

(3)

同理,在其他不同金额情况下根据其审批权限和流程的设置情况不难得出期望状态转移概率矩阵。将实际状态转移概率矩阵与期望状态转移概率矩阵进行对比,就可以找出审计疑点。

(三)基于软件测试技术的AIS审计方法实施

BP神经网络算法是一种误差逆传播的方法,审计人员可以充分利用该特质,在BP神经网络算法的运用中将测试用例集的实际状态转移概率矩阵和期望状态转移矩阵之间的差值作为传递内容。在云会计AIS费用报销内部控制中,不同性质、金额的报销业务有着特定的类别,每个类别所对应的期望状态转移概率矩阵是预先设置好的。BP神经网络算法得到的输出结果与期望状态转移概率矩阵的误差将成为审计疑点,帮助审计人员发现审计证据。

运用BP神经网络算法进行基于软件测试的AIS审计的具体流程如图3所示。首先按照内部控制制度的设计选取不同的类别,如报销金额为1000元到20000元(不含1000元),则不难得到其期望状态转移概率矩阵。然后在AIS测试用例集中抽取测试用例,用半马尔科夫链模型进行描述,记录测试用例从初始态到终止态的全过程,获得每个测试用例的实际状态转移概率矩阵,并通过简化的BP神经网络算法可以得到该类别整体的实际状态转移概率矩阵和期望状态转移概率矩阵的差值。

图3 运用BP神经网络算法进行AIS审计流程

η为实际状态转移概率矩阵与期望状态转移概率矩阵之间的误差。当η=0时,表明云会计AIS费用报销系统正常;当η≠0时,则说明云会计AIS产品在费用报销系统中存在问题,形成审计疑点。

(四) 基于软件测试技术的AIS审计结果

新的业务招待费报销流程正式实施后,截取A企业2016年某月业务招待费费用报销的部分数据,见表2。

表2 A企业2016年业务招待费部分费用报销数据表 (单位:元)

该部分报销数据可以作为AIS测试用例的依据,其中当业务招待费金额超过20000元且少于100000元时需要经过业务部门领导、会计、财务总监、总经理审核后上报董事长审批,其期望状态转移概率矩阵如公式(4)所示:

(4)

利用AIS测试用例对云会计AIS的费用报销子系统进行穿行测试。经过BP神经网络算法可以发现,当业务招待费金额超过20000元且少于100000元时的实际状态转移概率矩阵如公式(5)所示:

(5)

调用η=P-P′函数可以得到当业务招待费金额超过20000元且少于100000元时的,η=η>20000。因此,输出结果矩阵如公式(6)所示:

(6)

η=η>20000≠0,说明当业务招待费金额超过20000元且少于100000元时AIS未实现咨询公司为A企业设计的内部控制制度,依此审计人员可以发现审计疑点。

(五)原因分析

审计人员发现审计疑点后,应当进一步寻找审计证据,对该审计疑点产生的原因进行剖析,并提出改进意见。通过AIS审计可以认为A企业所定制云会计AIS产品的费用报销系统存在设计缺陷,没有达成内部控制制度的设计要求。审计人员通过AIS审计知识库等其他手段对审计疑点产生原因进行分析明确是否存在权限设置问题、是否存在未知程序BUG等,并将问题与公司管理层、云会计服务提供商进行沟通。审计人员在和云会计服务提供商进行沟通并获得技术支持后可以进一步明确问题产生的原因,最后向A企业管理层提出改进意见,并由云会计服务提供商给出技术上的解决方案。案例的相关审计数据汇总后形成审计知识,能够完善审计知识库。

五、结 语

软件测试可以有效评价云计算、大数据环境下的软件设计、开发、运行和维护情况,在云会计AIS审计中引入软件测试的方法进行穿行测试可以帮助审计人员更加科学地对AIS进行测评。本文在分析了云会计环境下的软件测试的特点基础上,提出了基于软件测试技术的AIS审计方法并搭建了审计框架。最后通过费用报销系统审计进行了模拟分析,分析结果表明在AIS审计中引入软件测试的方法能够帮助审计人员对AIS进行评价。

猜你喜欢
马尔科夫测试用例软件测试
基于三维马尔科夫模型的5G物联网数据传输协议研究
基于叠加马尔科夫链的边坡位移预测研究
回归测试中测试用例优化技术研究与探索
基于SmartUnit的安全通信系统单元测试用例自动生成
基于OBE的软件测试课程教学改革探索
基于改进的灰色-马尔科夫模型在风机沉降中的应用
航天软件测试模型构建与应用
EXCEL和VBA实现软件测试记录管理
软件测试工程化模型及应用研究
基于依赖结构的测试用例优先级技术