控制测试和实质性程序,到底怎么配合
审计现场,项目组成员盯着控制测试的工作底稿,发现采购付款循环有两笔穿行测试的审批签字缺失。
“控制有缺陷。实质性程序要加量。“现场负责人翻了下整体审计策略,“但加到什么程度?是全量核查还是扩大样本?这个度怎么把握?”
这个问题,几乎每个审计项目都会遇到。控制测试和实质性程序的关系,准则写得清楚,但实务中的灵活运用,才是真正考验执业判断力的地方。
先厘清:控制测试和实质性程序,到底是什么关系
控制测试审的是"过程”——企业设计的控制是否合理、是否在运行、运行是否有效。实质性程序审的是"结果”——财务报表数字对不对。
可以这样理解两者的分工:
- 控制测试是"测体温",判断内部控制体系整体是否健康。
- 实质性程序是"做CT",直接定位到具体科目和交易层面找问题。一个看过程,一个看结果。
核心逻辑就一条:控制有效,可以信赖,实质性程序可以减少;控制无效,不能信赖,实质性程序必须加码。
但这只是原则。实务中真正要解决的问题是——控制测试的结论,怎么"翻译"成实质性程序的具体调整?不是笼统地说"多查"或"少查",而是精确到三个维度:性质、时间、范围。CSA 1231号准则的要求正是如此。
大多数项目只调了"范围"——多抽几个样本、多发几份函证。这不够。
理解这个"翻译"机制:三层映射
控制缺陷不是一句"XX流程有问题"就完了。要把一个缺陷转化成实质性程序的调整,实务中最实用的方法是三层映射。
第一层——锁定影响的科目和认定。同一个缺陷可能影响多个科目、多个认定。拿采购付款循环的审批签字缺失来说:
-
最直接的是采购交易的真实性——没人审批,这笔采购是不是真的需要、价格是否合理,存疑。
-
间接影响的是存货的计价——未经审批的采购,入库价格可能虚高。再延伸一层,应付账款的完整性——如果采购本身不真实,对应的负债也不应确认。
一个缺陷影响了三个科目。如果只做了"加量"处理——多翻了几笔凭证——但没调整程序的方向,风险评估就是有盲区的。
第二层——按认定调三要素。锁定科目和认定后,实质性程序的调整从三个维度展开:
- 性质调整——不是多查,是换着查。控制缺陷影响最直接的是证据的可信度。如果审批控制有缺陷,依赖该控制产生的内部证据就得打折。此时实质性程序必须从"低强度的分析性复核"升级为"高强度的外部证据或交叉验证"。
拿几个典型场景来看:
-
收入确认依赖手工台账、无系统校验:分析性程序不够用,必须上细节测试——顺查(合同→出库→签收→发票→回款)加逆查(收入分录→合同+签收单回查)
-
关联方交易审批缺失:不能只看合同和发票,要延伸到最终客户的穿透核查,配合天眼查/企查查交叉验证工商信息
-
付款审批为事后补签:不能只看付款凭证上的签字,要追踪资金流水,比对银行回单日期和审批日期
-
时间调整——不能只测期末。控制缺陷集中发生在年度中间(比如年中系统切换导致审批断档了两个月),实质性程序只在期末做就不够。一个可操作的判断逻辑:缺陷存续期不超过1个月,以期末测试为主,期后事项覆盖该时段;1到3个月,缺陷存续期内按月分层抽样;超过3个月,该期间不能依赖任何内部证据,实质性程序必须覆盖整个期间的所有重大交易。核心就一句话——控制什么时间失效,实质性程序就必须覆盖那个时间段。
-
范围调整——不能只调数量级。范围调整更关键的不是"多抽"还是"少抽",而是分层逻辑的变化。控制有效时,抽样可以按金额大小分层——风险在大额项目。控制存在缺陷时,金额大小不是唯一的分层维度。比如销售内控缺陷,需要叠加客户类型(新客户vs老客户)、销售区域(境外vs境内)、交易性质(关联方vs非关联方)——原先按金额分三层的方案,变成多维交叉分层。样本量未必增加很多,但每一笔样本都冲着缺陷最可能产生错报的方向去。
第三层——IT环境下的特殊考量。如果被依赖的控制是自动化的,但底层的IT一般控制(ITGC)存在缺陷——程序开发变更无审批、系统访问权限未分离——那控制测试结论就需要大幅修正。三单匹配的自动化计算逻辑本身是正确的,测试结果"无偏差",但如果拥有系统管理员权限的人可以随意修改采购订单数据,“控制有效"的结论就建立在沙滩上。ITGC缺陷的底线是:不从被审计单位的系统中直接导出数据作为审计证据,需要通过银行流水、海关数据、税务申报数据或手工重建来获取独立信息来源。
三层映射走下来,一个控制缺陷就从一个模糊的"有问题"变成了明确的"影响哪些科目、调哪些程序、用什么方法、覆盖什么时间"的完整行动方案。下面五个策略,本质上是这个映射框架在不同场景下的具体应用。
策略一:控制有效时——“减量不减质”
最常见的情况。销售收款循环,控制测试25个样本无偏差,每个环节都在有效运行。实质性程序可以简化到什么程度?
可以减的是范围,不是程序质量。应收账款函证可以减少发函数量,但发出去的每一封仍要做到独立发函、直接回收、差异跟进。不能因为"控制有效"就把函证变成走过场。
三条底线:
- 分析性程序照做——控制再有效,这是发现异常波动的第一道防线。
- 样本可以缩小但不能为零——收入、成本、货币资金等关键科目的实质性程序属于"必须执行的程序”。
- 关键风险点不降——管理层凌驾于控制之上的风险,控制测试查不出来,年末异常大额的非经常性分录,实质性程序一点折扣不能打。
实务中最容易被低估的一点:控制测试覆盖的是"时点"或"期间",不代表100%的交易都经过有效控制。控制测试"未见例外",可能只是因为样本量不够,或者选样本时避开了异常月份。不是控制没问题,是你的测试没逮到。
策略二:控制缺陷时——“精准加码”
比"全部有效"更常见的情况。采购付款25个样本中发现2笔审批签字缺失,偏差率8%,超过可容忍偏差率。
这个时候,不是简单地"多查几笔",而是精准加码到控制缺陷可能影响的方向。审批签字缺失属于授权控制缺陷,直接影响采购交易的真实性和合理性。相应的实质性程序应集中在:扩大三单匹配核查范围、增加新增供应商的背景核查、对异常大额采购逐笔穿透测试——从采购订单追到付款凭证。
加码的幅度怎么定?偏差率8%只是一个信号——它告诉你原有的"信赖基础"不成立。需要回到"不依赖控制"的实质性方案重新计算样本量,而非简单按比例放大。
如果能进一步判断缺陷影响的认定方向(回到上面三层映射的第一层),加码的效率会更高。比如缺陷判定为"可能导致存货计价高估"——实质性程序就集中在采购价格与市场价格的比对,而不是均匀地撒在所有采购交易上。
策略三:控制测试与实质性程序的时序协同
理想模式是控制测试先行——先摸清内控的底,再用结论指导实质性程序。但年报审计现场通常只有2-3周,两种程序必须并行推进。
并行推进时有一个关键的判断节点:期中控制测试结论出来后,必须回头审视已执行的实质性程序是否充分。这不是"下周再说",是"立刻补"。
实际场景:第一周同时开工控制测试和实质性程序。第一周结束,控制测试发现销售收款循环存在缺陷,但实质性程序的收入核查已经按"控制有效"的假设执行完了。等到出报告前复核才发现"控制有缺陷但实质性程序没跟上",再补程序就非常被动。
建议在审计计划阶段就把"控制测试结论出具日"设为实质性程序的强制复核节点——到了这个时点,无论手头在做什么,先停下来对照结论检查实质性程序的充分性。
策略四:整合审计中的双线协同
整合审计(财务报表审计+内部控制审计)中,控制测试承担了双重使命。财务报表审计看"控制是否足以信赖,从而减少实质性程序",内控审计看"控制运行是否有效,是否存在重大缺陷"。两个口径必须分别满足。
两者不一致并不少见。采购付款审批签字偶尔缺失,偏差率未超可容忍水平——财务报表审计角度,控制可以"有限信赖";内控审计角度,这构成一个需要评估是否为"重要缺陷"的控制偏差。
处理这种不一致,财务报表底稿写"控制基本有效,实质性程序适度减少",内控底稿写"存在控制偏差,分析原因后判断不构成重大缺陷"——两个结论不矛盾,但论证路径不同,必须分别记录两个口径的评估过程和依据。
策略五:滚动审计中的动态调整
控制测试不是"今年做完了,明年照着来"。企业内部控制环境在变化——换了财务总监、上了新ERP、业务模式调整了——都可能导致已有的控制测试结论失效。
三个维度的动态调整:
-
频率。新上线的系统自动控制,测试频率从每年一次调整为每半年或每季度一次。
-
范围。业务量增长的循环,样本量需同步放大。这里有一个经常被忽略的问题——控制运行频率直接影响样本量的合理性。控制每天运行多次、全年数千次,取25个是底线。但控制每月只运行一次、全年12次——还取25个完全没有必要,2-5个即可。取25做保底是错的,取25做天花板也是错的——关键看控制跑了多少次。
| 控制运行频率 | 全年次数 | 合理样本量 |
| 每日多次 | >250 | 25-60 |
| 每日一次 | ~250 | 20-40 |
| 每周一次 | ~52 | 5-15 |
| 每月一次 | 12 | 2-5 |
| 每季一次 | 4 | 2 |
| 每年一次 | 1 | 1 |
- 性质。发现控制偏差后,下一年的测试不能照旧,要针对偏差根源设计更有针对性的测试点。去年在哪出了问题,今年就在哪个环节多花功夫。比如发现审批签字缺失,下一年应增加对审批人权限和职责分离的测试。
双重目的测试:一把双刃剑
控制测试和实质性程序能不能用同一套样本?答案是:可以,但有前提。
审计准则称这种情况为双重目的测试——针对同一笔交易,既验证控制是否有效运行,又验证交易金额的准确性。两个条件必须同时满足。
条件一:样本量必须按更严的口径计算。不能因为控制测试只需25个样本,就把实质性程序本该做60个的要求"合并"成25个。
条件二:测试目的不能混淆。同一笔交易,控制测试看"审批流程是否完整",实质性程序看"金额是否正确"——两份底稿、两套逻辑、两个结论,不能混成一套底稿。
双重目的测试的优势是效率——抽一次凭证完成两个测试。但风险在于:如果样本设计偏向控制测试(按时间均匀分布),就可能漏掉实质性程序应该覆盖的高风险时段(年末突击交易)。
实务中的通行做法:常规交易合并采样提效率,高风险交易分开采样保质量。
核心原则:省时间是合理的,但省掉的不能是审计质量。
内控审计中反复掉进去的几个坑
以上五策略加双重目的测试,是理想路径。以下是项目上最容易出问题的偏差——犯一次,底稿被问一次。
坑一:样本选取"挑着做"
控制测试的样本必须是随机或系统化的,不能专门挑那些看起来"没问题"的。拿到全年采购明细,手动挑了25笔金额适中、供应商熟悉的交易——看起来样本量够了,但极端大额和异常小额被有意无意避开了,样本不具代表性。
怎么绕过去:
- 使用系统化抽样或统计抽样
- 如果分层抽样(大额全查+小额随机抽),底稿中明确记录抽样方法和各层覆盖率
- 对新供应商、关联方、年末突击采购等高风险交易,单独增加针对性样本
还有一个容易被忽略的维度——控制全年都在变化:年中OA升级、关键人员离职、组织架构调整导致审批流程变更。一套测试覆盖全年,但样本集中在某两个月,结论说"全年有效"——这在逻辑上不成立。控制有变化的时间段,必须单独测试。
坑二:把"签字检查"当"控制测试"
这是最隐蔽的问题。控制测试审的是"控制目标",不是"业务流程"。
采购付款循环:采购员填申请→部门经理审批→财务审核→出纳付款。测试时逐笔检查了每个节点的签字。
但签字的背后,控制目标是什么?
- 部门经理审批对应"采购的合理性和必要性"
- 财务审核对应"发票与合同、入库单的一致性"
- 出纳付款对应"付款金额和收款方与审批一致"
只查"有没有签字"而没验证"签字的背后逻辑是否被执行"——控制测试就成了签字检查。
有一个真实案例:采购审批单上的签字一个不缺,看起来控制完美运行。但在交叉验证时发现,财务审核人在签字当天正在外地出差。追下去才发现是事后集中补签。
绕开这个坑:
- 每个控制测试点先写清楚"控制目标是什么",再设计测试程序
- 签字不等于控制有效——审核人签了字,但审了什么、怎么审的、有没有审出问题,这些才是要验证的
- 证据维度上,询问+检查+观察+重新执行四维交叉印证,不能只用"检查"一种方法。尤其是"重新执行"——折旧计算自己重算一遍、银行余额调节表自己编一份——程序化的控制点,这才是最硬的证据。
坑三:证据记录不充分
底稿上只写了"已测试,未发现例外"八个字。质控复核人一定会追问:测了哪些样本、什么期间、什么方法、什么结论、什么依据?
每一份控制测试底稿至少应包含:测试期间、样本选取方法、样本清单(凭证号/合同号/日期)、测试方法、测试结果、偏差分析、结论。"
未发现例外"不能替代对测试结果的描述——即使没有例外,也需要写清楚"经过测试,所有样本均符合控制设计要求"。管理层访谈纪要必须在48小时内整理完毕并请访谈对象确认。
另外,控制测试中发现的单个偏差不能简单地用"金额不大"放过。CSA 530要求:任何识别出的偏差都需要调查其性质和原因——是不是孤立的?还是系统性问题的一角?判断标准不是"金额小",而是"确认是孤立的、有合理解释的、不会重复发生的",解释本身也要有证据支撑。
坑四:过度依赖管理层陈述
“我们一直都是这么做的。“这句话不是证据——至少不是独立的证据。
管理层的陈述只能用来验证和补充,不能作为独立证据。“管理层说运行有效+测试只做了5个样本=结论有效”——这个逻辑经不起任何检查。对管理层的解释保持"有依据的怀疑”——每一条解释都追问"证据在哪”。关键控制人的访谈一定要交叉验证:采购经理说审批很严格,去问财务经理审批退回率是多少——两个数据对不上,就有问题。
核心原则:管理层声明是"佐证"不是"主证",核心结论必须建立在独立获取的审计证据之上。
坑五:穿行测试≠控制测试
穿行测试跟踪一笔交易从头到尾走一遍,是为了理解流程。控制测试是挑多笔交易,验证控制点在业务量足够大的情况下是否稳定运行。穿行说"流程存在",控制测试说"流程有效"——“存在"和"有效"之间,差的是测试量。
穿行测试做1-2笔,控制测试至少覆盖足够样本量。穿行在计划阶段做,控制测试在执行阶段做。底稿里用穿行的结论支撑"控制有效"的判断——复核人一眼就能看出来。
坑六:缺陷严重程度分级不准
发现了控制偏差之后,最关键的一步是分级:一般缺陷、重要缺陷还是重大缺陷?实务中常见的倾向是低估——原因很简单:分级越高,报告越难写。
-
但低估的后果是:如果出具了"无重大缺陷"的结论,后来这个缺陷导致了重大错报——审计师要承担的责任远比"报告难写"严重得多。
-
分级需要按准则框架逐项评估:缺陷发生的可能性、可能导致的错报金额、是否存在补偿性控制、是否涉及舞弊或关联方交易。这里有一个常见的认知偏差——把执行层面的问题都归为"一般缺陷”,只有设计层面的问题才往上升。但有些执行缺陷,比如关联方交易完全未经任何审批,其定性严重程度不亚于设计缺陷。
-
另外注意不要单独评估每个缺陷——多个"一般缺陷"集中在同一个控制循环中,可能合并构成"重要缺陷"。底线是:评估过程比结论更重要。底稿中完整记录缺陷识别的逻辑链和严重程度判断的依据。
坑七:缺陷识别后——实质性程序没跟上
发现控制缺陷→写入汇总表→管理建议书提一下→实质性程序照旧。这个流程里缺了最核心的一环。
发现了缺陷,实质性程序必须做出对应调整。而且还必须在底稿里记录清楚——不是笼统地写"已相应调整实质性程序",而是"因为A缺陷影响了B科目的C认定,所以对D实质性程序做了X性质/Y时间/Z范围的调整"——完整的因果逻辑链。
同样,上一年发现的控制缺陷,今年测试时发现同一个问题还在——整改没有闭环。缺陷闭环的完整路径是:建议→管理层整改计划→整改实施→独立验证(由审计师重新测试确认已修复)。最后一步不做,就不知道建议是落地了还是停在纸面上。
底稿完成后的五问自检
控制测试的"无偏差"结论,背后是不是至少有检查+观察的组合证据?只有一个来源,结论不可靠。
发现了控制缺陷后,实质性程序的性质有没有变化?不只是样本量——换方法没有、换方向没有、换时间覆盖没有?
ITGC如果有缺陷,有没有追溯对自动化控制测试结论的影响?
每个偏差有没有"性质和原因"的说明?不是"金额不大可以接受",而是"确认孤立+有合理解释+不会重复"并有证据支撑。
缺陷分类的判断依据能不能在底稿里直接找到?不只是"判断为一般缺陷"——金额影响范围、涉及科目、是否涉及舞弊,这三个维度在底稿里有没有记录?
控制测试和实质性程序不是两道独立的工序,而是一个判断链条上的两个环节。两者之间没有"做完A再做B"的线性关系,而是一个持续互动的过程。控制测试的结论决定实质性程序的起点,实质性程序的发现反过来修正对控制有效性的判断。
回到文章开头那个场景。
采购付款循环发现两笔审批签字缺失后,正确的做法不是"把所有采购凭证翻一遍",而是:
先走三层映射
- 判断缺陷性质(授权控制缺失)
- 锁定影响范围(采购真实性和合理性、存货计价、应付账款完整性)
- 精准调整实质性程序的三要素——性质上升级为外部证据交叉验证、时间上覆盖缺陷存续期、范围上增加新供应商和关联方维度。
底稿里把这一整套判断过程记录下来——不是"做了什么",而是"为什么做这些就够"。
内控审计最容易犯的错误,本质上是同一个问题:用"做完了程序"代替"做出了判断"。样本选够了、测试做完了、底稿填齐了——但如果每一步都是机械执行而没有执业判断贯穿其中,最终给不出一个有质量的审计结论。能说清楚"为什么这么做"和"为什么做到这个程度就够了",才是内控审计真正的专业能力所在。