借贷记账法的介绍及其测试分析

    因项目组的调整,所以今年开始接触银行核心系统,由于之前从未接触过任何会计相关的知识,所以一开始看银行核心系统的文档时一头雾水,不知道该从何下手,连需求文档都看不明白,更别说从中梳理测试点了。可以说是不知其然,更不知其所以然。因此,计划围绕银行核心系统的测试工作,进行一系列的总结,和大家一起学习。

    基于业务的测试,熟悉业务知识是相当重要的。所以第一篇向大家介绍借贷记账法以及围绕借贷记账进行测试分析。


借贷记账法的介绍及其测试分析_第1张图片

一.银行会计及会计核算方法

    银行会计是银行的各种经济业务统一以货币为计量单位,使用专门的方法,通过记账、算账、报账等一系列的程序来反映银行的经历信息。

    银行会计的核算方法,是根据会计原理,结合银行业务活动的特点和经营管理的要求制定的一套科学的方法。基本核算方法是各项业务核算手续的概括。比如存款、贷款都有他们自己的核算方法,但这些业务的核算方法都是基于基本核算方法上的具体应用。

    银行会计基本的核算方法包括记账方法、会计科目、会计凭证、账务组织等。本次将跟大家介绍记账方法。

二.记账方法

    记账是银行会计核算中的主要环节和最重要的基础工作,只有记好账,才能做好其他各项会计工作。而记好账,就需要运用一定的记账方法。记账方法是指在账本中登记经济业务的技术方法,以会计凭证为依据,按照记账原理和规则,运用一定的记账符号,把经济业务记到账本中去,并通过试算平衡来检查账本记录是否正确。根据该经济业务是设计一个账户还是多个账户,分为单式记账法和复式记账法。本文将以银行的存款业务为例,向大家介绍这两种记账的方法。

假设投资100w开一家银行,A客户存入20w活期存款,此时我们应该如何进行记账?带着这个问题,继续往下看。

1.单式记账法

    单式记账法是对发生的经济业务只在一个账户进行登记。比如,以上这个例子,单式记账法会这么记。

收:A客户20w

    这种记账方法非常简便,但是无法全面的说明这笔钱的来龙去脉,也无法检查账户记录的正确性和完整性。假设,这里的20w记错为2w,那我们是很难通过查账查出这笔错误的。因此,单式记账法适合表外科目进行记账,表外科目不涉及银行资金的变动,故不存在平衡关系。但表内记账涉及银行的资金变动,单式记账法并无法很好体现记录的正确性和完整性,所以引入了复式记账法。

2.复式记账法

    复式记账法是相对于单式记账法的,它对每一项经济业务都需要按照相等的金额在两个或两个以上相互联系的账户中进行记账。复式记账包括收付复式记账,增减记账和借贷记账。目前国内银行统一使用借贷记账法。

3.借贷记账法

    借贷记账法是以资金平衡公式为依据,以“借”、“贷”作为记账符号,按照“有借必有贷,借贷必平衡”的规则在账本中进行记账的一种复式的记账方法。

1)记账符号

    借贷记账法以“借”、“贷”作为记账符号,纯粹表示增加或减少,但都具有双重含义。资产类、成本费用类账户的增加记为“借”,减少记为“贷”。

负债类、所有者权益类、收入类账户的增加记为“贷”,减少记为“借”。

2)记账规则

    借贷记账法以“有借必有贷,借贷必平衡”作为记账规则。可以是一借一贷、一借多贷或一贷多借,但是双方金额必须相等。现在我们来看看上面所说的那个例子,运用借贷记账法,应该如何记账?

    客户存入20w,这笔业务使得银行拥有的现金,即资产增加了;同时20w是客户的钱,所以负债也增加了。按照上面的规则,资产增加记为“借”,负债增加记为“贷”,所以我们会这么记:

借:现金 20w

贷:活期存款 20w

3)试算平衡

    到这,大家已经知道当发生一笔经济业务后,我们该如何进行记账了,银行每天发生那么多笔业务,记账后,我们需要检查借贷是否平衡,因为“有借必有贷,借贷必平衡”!试算平衡是按照“资产=负债+所有者权益”的平衡理论来检查和试算平衡的。我们知道,资产指的是银行拥有的现金、负债是客户的钱、所有者权益是银行自己钱。

下面我们来看看该例子中记账后是否平衡。客户存入20w后,银行资金发生怎样的变化?

银行拥有多少现金? 120w

属于客户的有多少钱? 20w

银行自己有多少钱? 100w

即:120(资产)=20(负债)+100(所有者权益)

    试算平衡也是我们后续再进行银行系统测试时非常重要的点,如果系统试算出错,那后果不堪设想。

    好了,介绍到这,想必大家对会计中的记账方法已经有一些认识了,那么针对记账,我们应该如何去设计我们的测试用例呢?下面以手工的借贷记账法为例,简单分析该记账方法应该如何进行测试设计。

三.测试分析设计

    手工的借贷记账提供业务人员手工在系统里进行记账的服务,记账方法如上一节介绍的借贷记账法,记账流程主要由入账与入账审核组成。由记帐员进行记账入账,由审核员进行入账审核。(凭证,即记账的书面证明。注意,凭证在不同的地方的解释会不一样)

1.功能实现说明

1.1 凭证入账前判断: addGlaAeuvCheck()

1. 用户角色判断

2.交易机构有效性判断

3.记账期间判断(某些特殊会计期间不允许记账,这点后续文章进行介绍,此处不详细介绍)

1.2 凭证入账检查: addGlaAeuv()

1.各输入字段规则检查

2.借贷平衡检查

3.借贷方向检查

4.币种检查

1.3 更新凭证信息: updateGlaAeuv()

1.4 查询待审核凭证: getGlaAeuvCheckList()

1.5 凭证审核处理: checkGlaAeuv()

1)同意

2)不同意

1.6 凭证作废处理: cancellGlaAeuvByPrimaryKey()

1.7 数据库操作:com.sunline.sunfe.mybatis.glaaeuvdetl,id=” queryGlaAeuvDetl”

2.模块流程图

    根据需求文档以及具体的实现可以梳理一下记账的全流程图(这里的流程图仅为了示例,具体以各自银行系统的为准。),如图1。

1.用户(记帐员权限)进行记账,系统判断是否允许进行记账。

2.记帐员进行凭证录入,进行凭证保存或凭证入账。

3.审核员查询待审核的凭证。

4.审核员同意or不同意待审核的凭证

5.同意的凭证入账成功

6.不同意状态的凭证该记帐员可进行凭证修改或作废。


借贷记账法的介绍及其测试分析_第2张图片
图1

3.测试设计

    从具体实现与梳理的流程图来看,我们可以从以下几个方面进行测试设计:

1)从需求入手进行测试设计。根据需求文档,梳理每一个功能的测试点,设计case覆盖每一个测试点,进行测试。比如:凭证录入检查等等。如下:


借贷记账法的介绍及其测试分析_第3张图片
图2

2)从实现入手进行测试设计。根据代码实现的逻辑,对流程图中的每一条逻辑分支进行覆盖测试,如凭证录入前检查,包括用户角色判断、交易机构有效性判断、记账期间判断,可以查看代码中的if-else语句来设计case,保证覆盖每一条逻辑分支。

3)异常测试:除了以上的测试,我们还需要构造一些异常数据进行异常测试,比如借贷不平衡的数据、在非末级科目下的记账、接口返回登录超时等。

4)测试难点:由于从凭证录入到入账完成中间状态较多,因此在构造数据时需要测试者梳理清楚要使用的测试数据,避免测试数据过多导致测试结果的混乱;凭证录入流程与审核流程需要不同的用户角色来完成,故在测试中需我们不停的切换角色,测试者可以思考是否可以使用当前角色完成所有的案例后,再切换另一个角色进行测试,提高效率。

5)测试的重点:基本的界面功能测试、流程测试、异常测试,在这些测试的基础上,我们还需要关注角色的权限问题,记账员与审核员的所拥有的权限不同导致其涉及的界面、功能点不同。

    关于记账方法的介绍就先到这,欢迎大家一起探讨,也欢迎指正。

你可能感兴趣的:(借贷记账法的介绍及其测试分析)