软件质量工程SQA-8审计

《ASQ Audit Division》(Russell 2013)将审计定义为 "系统的、独立的和记录在案的过程,用于获取审计证据并对其进行客观评价,以确定审计标准的满足程度。"IEEE(2008)包括一个类似的审计定义:"由第三方对软件产品、软件过程或一组软件过程进行的独立检查,以评估是否符合规范、标准、合同协议或其他标准。" 根据ISO(2015)的规定,内部审计是质量管理体系的一个必要组成部分。发展的能力成熟度模型集成(CMMI)包括正式的审计,作为在过程和产品保证过程领域进行客观评价的方式之一,以及在客观评价遵守通用做法的方式。发展的CMMI还包括配置审计的执行,作为配置管理过程领域的一个具体实践(SEI 2010)。IEEE软件审查和审计标准(IEEE 2008)包括执行审计所需的过程。

软件审计是有计划的活动--没有突击的软件审计。软件审计不是要 "抓住 "任何人最坏的情况。参与软件审计的人员应该了解审计的范围、目标和时间表,以及他们在审计期间的角色和责任。审计是由独立于被审计领域的个人进行的。这种独立性有助于确保进行客观的评估。软件审计有记录的计划和报告。此外,对于审计过程中发现的任何不符合要求的情况,纠正行动计划也被记录下来。软件审计对软件系统、流程、项目、产品或供应商的某些方面进行评估,并为管理层提供信息,以便做出基于事实的决策。软件审计使用一套商定的标准作为进行这些评估的要求。

审计目标

软件审计应该是为向管理层提供信息而进行的增值活动,其依据是对以下情况的评估。

  • 组织的标准、流程、系统和/或计划是否足以使组织满足其政策、要求、目标和目的。
  • 组织在执行其工作活动时遵守这些记录在案的标准、流程、系统和/或计划。
  • 组织的标准、过程、系统和/或计划及其实施是有效的。换言之,政策、要求、目标和目的是否真正得到满足?
  • 资源,包括人力资源和其他非人力资源,都得到了有效的利用。
  • 产品符合其要求的规格和工艺标准,产品实际上适合于其目标受众使用。

软件审计还有助于确定需要改进的领域,并在组织内确定应传播到其他领域的最佳做法。事实上,在比较成熟的组织中,识别/传播最佳实践是审计的主要目标之一,因为这些组织很少或没有不符合要求的情况存在。

审计计划

作为组织的质量管理体系的一部分,应规划一个总体的内部审核计划,以确保定期进行必要的审核,并经常对关键功能进行审核。审计计划还确保只有经过培训的、合格的和独立的审计人员才能进行审计,并且审计过程是标准化的,并不断得到改进。审计计划中的审计工作应与组织的战略、利益相关者的要求、高级管理层的关注和组织的风险紧密结合。在审计项目计划中,个别审计的安排应尽量减少对被审计者的不便。例如,对一个项目的内部审计不应该安排在一个重要的发布期间,因为这个项目的每个人都在争分夺秒地处理最后的细节。安排这样的审计的一个更好的时间可能是在该版本的开发过程中或在主要版本的推动结束后。

审计的考虑因素

审计结果必须以事实为基础。然而,由于人类在识别和解释这些 "事实",审计人员必须尽可能地独立,以提高客观性。客观性是指不存在任何会影响审计结果的偏见。虽然内部审计师完全独立是不可能的(在组织的某个层面,每个人都向同一个管理层报告),但目标仍然是保持足够的独立性,以便审计师能够客观地评估和分析证据,并产生无偏见的审计结果。

进行审计需要消耗资源,包括金钱和时间。审计人员通常需要花时间与软件经理和个人贡献者交谈,以便进行有效的审计。这可能会占用开发和维护软件业务的时间,而这正是软件组织的主要任务。应该注意确认从审计中得到的信息的价值要高于审计的预期成本。换句话说,审计应该是增值的活动。这意味着,审计信息必须有客户(顾客),要用这些信息来做决定的人,即使这个决定是 "一切都很好--没有必要采取行动"。

一项审计可能会产生一个或多个发现。这意味着需要更多的资源来对任何已发现的不符合项进行根本原因分析并采取纠正措施,或计划和实施改进行动或传播最佳实践。事情会得到改善,但与此同时,更多的资源将被消耗掉。

仅仅是进行审计的行为就在参与者心中建立了期望,即管理层将根据信息采取行动,使事情变得更好。如果审计结果没有得到充分的跟进,整个审计过程可能被认为是浪费时间和精力。除非一切都很完美,否则增值的审计应该导致行动和跟进。
根据过去的经验,人们可能会把审计看成是一种消极的 "监督行动"。这可能会导致人们不愿意与审计合作,或者怀疑审计结果会被用来对付审计参与者。审计人员以及审计方和被审计方的管理层都应注意将审计的重点放在过程和产品的改进或系统性问题上,而不是个人。

审计类型

定义并区分各种审核类型,包括过程、合规、供应商、系统。

审计的类型是由谁来进行审计(内部审计与外部审计或第一、第二和第三方审计)或由被审计的内容(系统审计、过程审计、产品审计、项目审计或供应商审计)。还有一些特殊目的的审计,包括跟踪审计和桌面审计。

内部第一方审计

内部审计,也被称为第一方审计,是组织对自己进行的审计。在第一方审计中,进行审计的人(审计师)、被审计的人(被审计人)和客户(要求审计的人或组织)都是同一个组织的成员。内部审计的审计标准可以来自组织内部(例如,组织的质量管理系统、个别过程或计划)。审核标准也可以来自于组织外部。例如,组织的客户的标准或要求,或外部的行业标准可以作为审计标准。

对于使用敏捷方法的组织和团队来说,内部审计可以继续使用,基于风险等级、行业标准(如ISO 9001,或其行业特定的对应标准,如NQA-1、AS 9100等)的要求、监管要求或合同义务。"无论是否敏捷,一个团队最终都要满足法律和基本的组织需求,而审计有助于确保这一点"(Ambler 2012)。然而,在风险较低、要求不那么严格的行业,敏捷团队可以通过审查、回顾和/或反思来代替自我监督,以实现部分或许多内部审计的软件质量保证目标。

在某些情况下,一个组织可以雇用或将其内部审计外包给外部公司或顾问团队。这仍然被认为是内部的、第一方的审计,因为雇佣的审计人员只是组织的临时雇员。

第二方审计

第二方审计,也称为供应商审计,是一种外部审计,由客户或与客户签约的组织对其供应商进行审计。在第二方审计中,审计师和客户在客户的组织中,被审计者在供应商的组织中。外部第二方审计的审计标准可以来自供应商的组织内部。例如,供应商的系统、流程或计划可以作为审计标准。审计标准也可以来自客户的组织,包括客户的标准和要求。在第二方审计中,如果与供应商的合同/协议要求遵守外部标准,也可以按照这些标准对供应商进行审计。

第二方审核的一个例子是供应商资格审核,即客户在授予合同之前对潜在的供应商进行审核,以验证该供应商是否具有生产所需质量水平的产品的能力和实力。另一个例子是供应商监督审核,即客户对其供应商进行审核,作为合同/协议执行期间持续的供应商监督活动的一部分。当然,这些审核的要求应记录在与供应商的合同或其他协议中。

外部第三方审计

第三方审计是由其客户以外的外部审计师对被审计方进行的审计。在第三方审计中,客户可能是被审计的组织,也可能是一个第三方组织。第三方审计的审计标准可以是被审计组织自己的内部系统、流程或计划,也可以使用外部标准作为审计标准。

第三方审计的一个例子是,政府监管机构对一个组织进行审计,以验证所有要求的外部法规(标准)是否得到满足。另一个例子是注册机构在授予ISO 9001认证之前进行的审计。尽管注册机构的费用是由被审计的组织支付的,但他们被认为是独立的第三方,因为他们向认证委员会报告。

系统审计

系统审计是对管理系统进行的审计,评估这些系统的所有政策、流程和工作指令、支持计划和活动、培训和其他组成部分。系统审计可以被认为是一个巨大的过程审计,因为它着眼于系统中的所有过程。例如,质量管理系统审计评估了一个组织现有的质量管理系统的充分性、一致性和有效性。其他可能被审计的系统包括一个组织的环境系统或安全系统。

过程审计

过程审核评估一个单一的过程(或一组小的过程),以确定该过程是否被定义、部署,并足以满足所需的质量目标。过程审核还评估过程是否被正确地尽职实施,并确定过程是否真的有效。过程审计只包括整个系统的一个特定部分。过程审计的一个例子是,一个组织对其需求规格检查过程进行审计,以评估是否符合其记录的同行评审过程,以及该过程的有效性。另一个例子是审计软件配置管理过程,或只是审计其一个子过程,如配置识别过程。

产品审计

产品审计着眼于一个产品,评估其是否符合产品规格、性能要求和工艺标准,以及/或利益相关者的要求。产品审计可以查看软件同行评审、测试或其他验证和确认(V&V)活动的结果,审查V&V或其他产品质量记录,或者它可能包括重复V&V活动的抽样(重新同行评审或重新测试)。产品审计的一个例子是一个组织对源代码模块进行抽样审计,以确定对内部编码标准的符合程度。另一个例子是审计一个完成的子系统,以评估其是否符合分配的功能要求。

项目审计

项目审计着眼于用于启动、计划、执行、跟踪、控制和结束一个项目的过程和活动。它评估项目是否符合文件化的指示或标准。项目审计还着眼于项目管理过程在实现项目预期目标和目的方面的有效性,以及项目控制的充分性和有效性。

后续审计

任何审计都可能产生不符合/不符合的情况,需要采取纠正措施。当这些纠正措施在未来某个日期完成后,后续审计是可以用来验证这些纠正措施实施的完整性和有效性的机制之一。后续审计可以与该地区的下一次预定审计相结合,以尽量减少时间和费用。

桌面审计

桌面审计,也称为文件审计,仅限于评估组织的文件,包括质量记录。这些审核可以在审核员的办公桌上进行,因为不需要现场访问,可以对人员进行访谈和观察活动。桌面审计也可以通过邮件进行,向被审计者发送问卷,被审计者提供所需的客观证据供审计师审查,而不需要进行现场访问。

审计角色和责任

识别审计参与者的角色和责任,包括客户、首席审计师、审计组成员和被审计单位。

客户

客户,也称为审计的发起人或客户,是要求进行审计的个人或组织。客户决定审计的必要性,并提供启动审计的权力。

  • 确定审计的目的(目标)和范围
  • 确定审计标准
  • 确定要进行的审计的类型
  • 选择审计机构

客户是审计报告的主要客户,决定报告的分发。对于任何无法在较低层次上处理的审计相关问题,客户也是最终的仲裁者。

审计师管理

审计师管理层是审计组织的管理层。审计师管理部门负责为每项审计指定一名首席审计师,并与该首席审计师合作,为审计团队选择任何其他成员。审计师管理部门确保选定的首席审计师和其他审计师具有适当的培训、知识、技能水平和独立性。审计师管理部门提供计划、准备、执行、报告、跟进和管理审计所需的资金和其他资源。

就内部审计而言,审计师管理部门还可能负责建立一个有效的审计方案,包括支持程序、流程和工具,并负责评估该审计方案和各个审计师的表现。审计师管理部门也可以自行计划审计项目,包括确定审计的优先次序和确定组织的审计项目时间表。一个组织可能有一个全职的内部审计师团队,也可能有一群经过培训的兼职审计师,他们进行审计只是他们的工作活动之一。无论哪种方式,在履行审计职责时,内部审计师都应向组织内有足够权限的经理负责。

  • 促进审计师和审计的独立性,并保持进行审计所需的业务自由度
  • 确保质量审计计划有足够广泛的重点,以包括所有的。
    • 质量管理系统的要素
    • 组织内影响质量的职能领域
    • 组织的产品和服务
  • 提供足够的资源来进行审核和培训审核员
  • 授权访问与执行审核有关的记录、人员和实物财产
  • 确保被审计组织的管理层充分考虑并处理审计结果
  • 确保被审核组织的管理层采取适当行动,纠正审核期间发现的任何问题或不符合规定的根本原因。

首席审计师

首席审计师,也称为审计组长,被指定管理单个审计及其审计组,并对该审计的整体进行和成功负责。除了履行审计师的职责外,首席审计师。

  • 规划审计工作并记录审计计划,包括向审计小组成员分配责任,并与被审计单位管理层合作,规划审计工作的时间表和后勤工作。
  • 管理审计团队,包括
    • 协助选择团队
    • 核实审计人员是否具备成功进行审计所需的技能、知识和信息
    • 必要时对团队的任务进行调整
    • 辅导和评估团队中的审计人员
    • 对他们的表现提供反馈
  • 对如何进行审计作出决定,包括控制冲突和处理审计中可能出现的任何困难情况或问题
  • 作为与被审计单位管理层沟通的协调人,包括与被审计单位管理层就审计过程中出现的问题或对审计报告内容的异议进行协商
  • 协调审计活动和后勤工作,包括主持开幕会议、日常审计小组和反馈会议以及闭幕会议
  • 审查在文件审查和审计执行过程中发现的问题和意见,并准备和分发审计报告
  • 协调对纠正措施计划的审查
  • 核实纠正措施计划的执行情况

审核员

审计员是进行审计的个人。对于大型审计,可能有一个由一组审计师组成的审计小组。对于小型审核,首席审核员可能是唯一的审核员。审计员的职责是

  • 为审计做准备。
    • 了解审计的目的和范围
    • 审查审计计划和审计标准(要求)。
    • 创建检查表、访谈问题和其他审计工具
    • 执行文件审查
  • 在审计执行过程中收集客观证据
  • 根据审计标准评估证据,以确定审计结果
  • 参加开幕、闭幕和日常审计小组会议
  • 向首席审计师报告审计结果,作为对审计报告的投入
  • 保持保密性和专业性

被审计人管理

被审计单位管理层是被审计单位的管理人员,他们被指派与主审计师协调与审计有关的事宜。被审计单位管理层负责

  • 与首席审计师合作,计划审计的日程和后勤工作
  • 向员工告知审计及其目的和范围
  • 为审计师提供接触被审计单位人员、设施和资源的机会
  • 参加审计的开幕、日常反馈和闭幕会议
  • 提供审计人员要求的所有适当信息
  • 根据需要为审计人员提供联络/护送服务
  • 用纠正行动计划来回应审计结果,并与首席审计师合作,解决在审查纠正行动计划过程中出现的任何问题
  • 确保纠正措施得到实施
  • 向首席审计师提供成功实施纠正行动的证据

审计对象

被审核人是指在执行审核过程中被采访和/或观察的个人。被审核人负责对审核员的问题提供适当和准确的回答,并提供审核员要求的所有适当信息。

护送

对于外部审计,对于审计人员不熟悉被审计单位的组织或实际位置的任何类型的审计,或者对于在有特殊安全或安保问题的地区的任何类型的审计,可以为每个审计人员或审计小组指派来自被审计单位的陪同人员。陪同人员在数据收集期间陪同审计人员,并作为审计小组、被审计单位和被审计单位管理层之间的联络人。陪同人员负责

  • 向审计人员介绍被审计单位的人员
  • 必要时提供澄清信息,包括解释术语或缩略语
  • 提供或要求提供审计人员所需的用品、记录等
  • 充当审计师的向导
  • 确保审计师遵守公司规则

审计程序

定义并描述进行审计的步骤,制定并提交审计报告,并确定适当的后续活动。

  • 启动审计。一个软件审计从该审计的客户正式启动审计开始。
  • 计划审计。然后,必须对审计进行计划,该计划必须被记录下来并传达给审计利益相关者。
  • 为审计做准备。在审计准备阶段,首席审计师和其他审计师通过收集、组织和分析尽可能多的信息为审计做准备。在审计人员进行审计的执行步骤时,他们应该熟悉被审计单位的组织、审计标准以及被审计的系统、过程、程序和/或项目。在这个步骤中,根据审计标准对审计输入进行评估。在这一步骤中,还要准备好审计检查表、访谈问题、抽样计划和其他工具。
  • 审计执行。审计执行,也被称为审计绩效或审计实施,是审计的现场实地工作。它是审计的数据和信息收集部分。在执行步骤中,审计计划被实施,审计工具被用来收集客观证据,然后对其进行分析以得出审计结果。在包括对被审计单位进行现场访问的审计中,开幕会议、日常反馈会议和闭幕会议是审计执行步骤的一部分。在案头审计期间,审计执行步骤仅限于审查文件、质量记录以及审计案头的其他信息,不包括对被审计方的访问。
  • 审计报告。在这一步骤中,审核结果正式记录在审核报告中,所有审核的质量记录都被收集并适当保存。
  • 纠正措施和核查跟进。被审核方管理层负责对审核中发现的任何不合格/不符合项制定并实施纠正措施。被审核方管理层也可以选择实施过程改进和最佳实践传播行动。由首席审核员根据被审核方管理层提供的信息进行核查跟踪,或通过后续审核来确认这些纠正措施的有效实施。

审计启动

审计的频率根据组织的目标、目的、风险和合同要求而变化。在以下情况下,可以启动审计。

  • 审核程序中定义的标准确定了审核的必要性。
    • 质量管理体系的每个要素都应定期安排审核,以确保进行全面的评估。关键要素可以比不太关键的要素更频繁地被安排进行审核。
    • 当软件开发项目的主要里程碑完成时。例如,如果一个项目使用的是瀑布式的生命周期,对需求规范过程的审计可能会在需求阶段结束时进行。如果一个项目使用的是敏捷,审计可能会在迭代结束时或产品发布前进行。
    • 当测量值达到指定目标时。例如,如果项目超出预算20%以上,就可能对项目管理过程进行审计。另一个例子是,如果超过10个主要的现场报告的问题超过30天仍未解决,就会对问题解决过程进行审计。
    • 当发现一个重大差异或问题时。可以进行审计,以确定导致差异/问题的因素,或确定改进措施,以防止未来发生类似问题。
  • 一个客户要求进行审计。例如,一个内部经理要求对他们的区域进行审计,或者一个外部客户根据合同/协议要求进行审计。
  • 必须满足监管或政府的审计要求。例如,监管机构可能要求每年或在达到某个重要里程碑时进行某种类型的审计。
  • 必须满足合同的审计要求。例如,供应商可能被要求对其流程和系统进行内部审计,并将结果报告给客户,或者客户可能要求进行第二方审计,由他们来审计供应商的流程和系统。
  • 一个重大的组织变化已经发生,新的管理层正在寻求有关该组织当前状态的信息。

在启动步骤中,客户选择审计组织,定义审计的目的、范围和目标,并指定审计标准。这包括定义为什么要进行审计以及哪些组织、流程、项目或产品将被审计。在审计开始之前,所有需要的审计投入也必须具备。
审计目的声明作为审计的任务声明。它应该定义审计的目的(原因)和主要目标。审计目的声明的例子包括。

  • 内部第一方审计实例。确认同行评审程序的持续、合规实施,评估其有效性,并确定东北地区的改进机会。
  • 外部第二方审计示例。评估Acme分包商的软件开发流程,以确定他们是否有资格成为图形用户界面(GUI)设计的首选供应商。
  • 外部第三方审计实例。对软件质量管理系统进行差距分析,以确定是否准备好接受ISO 9001认证审核。

审核范围通过确定要检查的确切项目、组别、地点和/或活动来定义审核的边界。虽然审计的客户负责定义审计的目的和范围,但对于内部审计,很多时候是由首席审计师来正式记录目的和范围声明,作为审计计划的一部分。审计范围也被用来将审计人员的注意力集中在他们应该评估的内容上。审计人员不应积极寻求发现审计范围以外的问题。然而,如果发现了范围之外的问题,应该向被审计单位的管理层报告。如果它们是严重的或系统性的问题,可能会对软件产品或服务的质量产生重大影响,或者如果不加以纠正可能会产生法律后果,也应该在审计报告中作为负面意见向客户报告。

在审计准备过程中要评估的文件应该在这个时候提供,作为审计的输入。这样,审计人员就可以在执行审计之前进行文件审查。例如,如果正在对一个项目进行内部审计,使用组织的软件配置管理(SCM)流程作为审计标准,审计相关的输入文件可能包括项目的SCM计划和项目特定/定制的SCM流程或工作指令。注意,这些输入文件的级别取决于审计的范围。例如,在上面的例子中,项目级的审计将项目级的文件作为输入,而对于系统级的审计,输入文件将包括系统级的文件(项目级的文件可能在审计执行过程中被抽查,但不会被要求作为输入文件)。质量记录通常不被认为是审计过程中的输入。然而,在审计执行过程中,它们会被酌情抽样,作为客观证据。
审计的其他输入可能包括关于被审计单位的背景信息和以前审计的信息。背景信息可以帮助审计师了解审计所处的环境。这可以包括有关商业战略和目标的信息、产品信息、领域信息和行业信息(例如,竞争因素、监管环境)。如果以前对组织、系统或被审计的过程进行过审计,那么审计报告、纠正行动计划和这些审计的后续信息也是当前审计的输入。

审计标准提供了客观的要求,并根据这些要求对一致性和合规性进行评估。审核标准的例子包括。

  • 书面的组织质量政策
  • 文件化的目标(例如,预算、计划、合同客户或组织的质量规范标准、流程或计划
  • 产品要求或工艺标准
  • 政府或监管要求
  • 行业标准

审计规划

在计划步骤中,首席审核员为审核选择适当的策略。审计策略包括。

  • 要素法审计策略。这种策略根据审计要求的各种要素将审计组织成可管理的任务。例如,针对ISO 9001标准的审核可能会根据各种要求分为若干要素,如组织的背景、计划、支持、运营、绩效评估、改进和领导。然后,审计人员在所有被审计的组织或地点检查每个要素。

  • 部门审计策略。这种策略是根据被审计组织的部门或职能结构,或按物理位置,将审计组织成可管理的任务。例如,同样的ISO 9001审计也可以按部门来组织,如项目管理、系统工程、软件开发、软件测试、软件质量保证、软件配置管理等等。然后,审核员对每个部门的标准的所有要素进行检查。

  • 发现法审计策略。在这种策略中,也称为随机审计或探索性审计,审计人员进入一个区域,调查该区域目前发生的任何事情。例如,如果审计人员访问了一个软件工程小组,而该小组目前正在进行同行评审,那么审计人员就会评估该同行评审。如果相反,他们正在做单元测试或编写需求规范,那么这就是审计人员所评估的。虽然发现法审计确实检查了当前的工作实践,并发现了及时的问题,但它并不适合系统的审计或完整的审计范围。

基于所选择的策略,首席审计师估计审计的工作量和人员需求。首席审计师与审计机构管理层协商,后者为审计工作提供资金、资源和人员配置。然后,首席审计师与被审计单位管理层协调,制定详细的审计时间表,安排获取与审计有关的输入文件和被审计单位的信息,并协调审计后勤工作。

首席审计师记录审计计划,将审计细节正式传达给审计师和被审计单位管理层以及审计小组。审计计划是通知审计利益相关者即将进行的审计的主要沟通工具。根据IEEE(2008),审计计划描述了以下内容。

  • 审计的目的和范围
  • 被审计的组织(地点和管理层),包括要审计的业务单位
  • 要审计的软件系统、流程、产品、项目或供应商
  • 审计标准
  • 审计员的责任
  • 审查活动(文件审查、访谈、被观察的活动、被检查的记录,等等
  • 资源要求
  • 审计时间表
  • 保密性的要求
  • 检查表和其他工具
  • 审计报告格式
  • 审计报告的分发
  • 必要的后续活动

审计计划是一份活的文件,应随着审计期间收集到的信息进行更新和/或逐步阐述。根据IEEE(2008)的规定,审计计划以及对这些计划的修改,应得到客户的审查和批准。

审计准备

审计员在审计执行前通过研究输入文件为审计做准备。该文件审查的目的是根据审计标准评估审计输入文件,以评估其合规性、完整性、一致性和有效性。随后的执行步骤将确定这些文件中定义的系统、流程和/或计划是否已按文件规定实施,并有效和高效地运行。在准备步骤中,审计师使用来自输入文件和审计标准的信息来准备检查表、客观证据收集计划、访谈问题和其他工具,供审计期间使用。可以使用标准化的检查表、访谈问题或其他工具,但应根据每个具体审计的需要进行调整。

"审计核对表是为审计带来秩序的主要工具"(Russell 2013)。核对表是与审计标准相对应的是或否的问题清单。每个审计标准(要求)都可以转化为一个或多个检查表项目。核对表被用来给审计带来结构,并确认审计范围内的完整覆盖。检查表中的每个项目都应该是精确的、可衡量的(必须能够收集客观证据来确定该项目是否被满足),并且是事实。检查表的目的是在审计的执行步骤中指导信息的收集。核对表可以帮助审计师记住在某个特定领域要寻找和观察什么。然后,检查表上记录的信息可以被分析并用于证实审计结果和结论。然而,检查表只是工具,不应该被用来限制或约束审计的执行。在审计执行过程中,检查表可以酌情修改甚至放弃。

对于许多类型的审计,可以创建标准化的检查表(例如,见本书第27章的功能和物理配置审计的标准化检查表)。使用标准化检查表的优点包括。

  • 为审计小组成员、被审计者和管理层提供指导,帮助实现审计过程应用的一致性、统一性、完整性和连续性
  • 减少准备每次审计的工作量
  • 为分析从以前的审计中吸取的教训提供基础,然后可以将其纳入这些标准化的检查表,以改进未来的审计,作为持续过程改进的一部分。
  • 提供一套培训辅助工具以促进共同理解

在每次审计之前,应根据需要审查和更新这些标准化检查表,以确保它们反映自上次审计以来在标准、政策、流程或计划方面的任何变化。这些通用的检查表也应该根据每个审计的确切情况进行补充和调整。例如,如果针对以前的审计结果的纠正措施在当前的审计中得到了验证,那么这些行动的具体检查表项目就可以添加到检查表中。另一个例子可能是对小型项目的审计,其中某些可选的过程或过程步骤并不适用,被定制出来。只有该特定项目所需的过程应包括在其该项目审计检查表中。"可选 "或 "不适用 "的过程应被确定为这样,或从检查表中删除。

对于每个检查表项目,审计人员应准备一个客观的证据收集计划。这个计划将在审计执行过程中用来收集证据,以确定检查表项目是否已经得到满足。如果审计人员决定使用访谈作为一个或多个检查表项目的客观证据收集机制,也应事先准备好访谈问题。访谈问题应该是开放式的,以促使被审计者在访谈中做大部分的谈话,并且不涉及上下文,不限制讨论的范围,也不通过问题的措辞暗示预期的答案。

除了作为审计师为审计做准备外,首席审计师还为审计团队做准备,确保所有的审计师都已经接受了指导和审计所需的任何必要培训。首席审计师继续与被审计单位管理层合作,保持沟通渠道畅通,回答问题,并处理持续的后勤问题。

审计执行

审计执行步骤是审计的实际现场工作。审计执行是审计的数据和信息收集(客观证据的收集)部分。审计执行步骤以审计组和被审计单位之间的开幕会议开始。首席审计师主持这次会议,被审计单位管理层至少有一名成员应参加开幕会议。但是,被审计单位管理层的其他成员以及其他被审计单位和相关方可以自行决定参加。

开幕会议的目标包括

  • 介绍审计组的情况
  • 审查审计工作的开展情况
  • 审查审计日程和后勤工作
  • 确保被审计方了解对审计的期待

任何已知的问题、难题或需要对审计日程或后勤工作进行的调整,都应在这次会议上通过被审计单位管理层和审计组之间的共识来处理。例如,如果受访者在预定的时间无法到场,可以调整审计日程。如果被审计单位有任何异议、需要澄清或提出问题,也应在这个时候解决。

审计执行步骤的大部分时间和精力是用来收集客观证据的。"审计人员的工作是收集事实信息,根据规定的要求进行分析和评估,从这种比较中得出结论,并向管理层报告结果"(Arter 1994)。客观证据是指根据通过观察、文件审查、测量、测试或其他手段获得的事实,可以证明是真实的信息。审计师的独立性对审计工作非常重要,原因之一是它有助于确保观察到的或记录的证据不受偏见、情绪或偏向的影响。收集客观证据的技术包括。

  • 检查质量记录。质量记录提供了以下的证据。

    • 产品符合要求
    • 发生了适当的活动或过程
    • 这些活动的执行符合规定的标准
  • 审查文件。如果文件是作为审计输入而提供的,那么在准备步骤中已经完成了对这些文件的审查。根据审计执行过程中获得的信息,可能有必要对那些作为输入的文件进行额外的审查,或审查审计执行过程中要求的其他文件。

  • 见证一个事件或过程。审计员可以见证或观察正在发生的工作事件,或正在实施的过程,以了解实际发生的情况是否符合审计标准和/或文件。这涉及到通过观察或在场而不积极参与事件或过程来见证工作的实际执行情况。审核员通过观察来确定。

    • 产品是按照文件规定的程序或工作指令制造的,或活动是按照文件规定的程序或工作指令进行的。
    • 活动是由指定的责任人执行的
    • 使用了适当的设备、环境和/或工具
    • 参与者熟悉政策和程序,他们知道自己的角色和责任(根据Russell 2013)。
  • 寻找模式。审计员可以检查数据或软件指标,并寻找模式或趋势。例如,审计师可以审查问题报告数据,寻找容易出错的组件或共同的根本原因。

  • 采访被审计者。审计员可以采访被审计人以获取信息。然而,一个人说某件事情是真实的,并不能成为客观证据。审核员必须通过一个以上的审核员说同样的事情,或通过质量记录、文件、观察或其他方法来寻求确证。

  • 检查物理特性。检查物理特性以获取客观证据的技术最常被用于产品类型的审核。虽然这种技术在制造业、硬件和一些服务行业的审计中被广泛使用,因为这些行业的物理产品或产出比较普遍,但它不太适用于软件类审计。然而,它仍然可以用来检查项目的属性,如屏幕显示、是否符合编码标准、或媒体标签。

当审计一个使用敏捷方法的组织或团队时,可能没有像审计传统软件开发方法时那样有很多质量记录或文件。因此,审计人员可能不得不更多地依赖其他客观的证据收集技术。

在审计过程中,永远没有足够的时间来查看所有可能的客观证据。例如,可能有数百个源代码模块或数千套会议记录(来自同行评审、状态会议、变更控制委员会会议等)或其他质量记录。审计总是基于对所有可能的客观证据的抽样。只要有可能,就应该采取随机抽样,以便将结果推广到整个群体。

追踪是收集客观证据的一个方法的例子。追踪是在物品被处理的过程中按照时间顺序进行的。追踪可以从过程的开始、中间或最后开始。然后选择一个行动,并对该行动的工作产品进行抽样。例如,审计师可以从软件开发过程的中间开始,选择对一个模块进行编码的行动。然后,审计师可以从已经编码的模块列表中随机抽取特定的源代码模块。审计员从五个方面收集被抽样项目的信息。

  • 劳动。关于谁对模块进行了编码,编码者的经验或资格,花费了多少精力,或者每个模块的估计精力是多少的信息。
  • 设备。关于开发平台和工具的信息
  • 方法。关于编码标准、代码检查过程、命名惯例或使用的源控制过程的信息。
  • 环境。关于编码员工作环境质量的信息(例如,噪音水平、中断)。
  • 测量。作为编码过程的一部分,收集了哪些测量的信息。

然后,审计师可以跟踪抽样的模块,进入集成测试,系统测试和发布,查看诸如集成方法,变更控制,以及针对模块的问题报告等项目。审计员也可以选择向后追踪模块,要求查看每个模块的相关详细设计或指定每个模块的高层设计,或者检查每个模块对其相关需求的追踪。追踪的好处是,如果一个随机抽样的项目可以通过流程向前或向后追踪,那么所有的项目都可以被追踪到,这是很有把握的。

在审计的每一天,审计小组都应该在每天的审计小组会议上聚在一起,分享收集的客观证据、暂定结论和问题。根据审计执行期间取得的进展,这些会议也可以用来重新规划审计活动。例如,团队可能会决定需要收集更多的数据来澄清不完整或矛盾的结果,或者审计的某个领域的延迟会导致审计人员之间分配的活动转移。即使只有一个审计师在进行审计,该审计师也应该每天花时间整合信息并酌情计划进一步的活动。在审计的最后一天,每天的团队会议被用来创建审计报告草案,该报告将在闭幕会议上提交。利用在执行阶段获得的客观证据,使审计结论和结果以事实为基础。

在每天的审核小组会议结束后,要召开每日反馈会议(也称为每日简报),向被审核方管理层通报迄今为止收集到的信息,以及任何潜在的不符合项、问题或关注领域。这里的目标是 "没有意外"。这些会议也给了被审核方管理层一个机会,提供额外的客观证据来澄清误解,并防止不正确的信息被纳入审核报告中。

召开闭幕会议完成了审计执行步骤。被审计单位管理层应与审计组成员和其他感兴趣的利益相关者(包括被审计单位)一起参加这次会议。首席审计师在主持结束会议时,先是对审计工作进行总结,然后详细介绍审计结果。介绍之后是对结果的公开讨论。首席审计师或审计组成员对任何问题作出回应,并在必要时澄清信息。这种讨论也给了被审计单位管理层最后的机会,"指出与所收集的事实有关的任何错误"(Juran 1999)。在结束会议上,首席审核员还解释了对任何不合格/不符合项的纠正措施的要求,以及相关的后续活动。结束会议的目的是确认被审核方的管理层清楚地了解审核的结果,以便他们能够开始进行纠正措施。

审计报告

在报告步骤中,审计结果被正式记录在审计报告中。审计报告包含(基于Russell 2013)。

  • 导言。

    • 审计的目的和范围
    • 被审计单位、客户和审计机构
    • 审计小组成员和首席审计师
    • 审计日期和地点
    • 审计所使用的标准
    • 因抽样而对结果进行限定的声明
    • 解决与审计有关的任何保密问题的讨论
    • 参与审计的被审计方人员(可选)。
    • 审计报告的分发
  • 审计结果的摘要,包括

    • 审计结果的概要
    • 审计小组对被审计单位遵守审计标准的程度的评价
    • 审计组对被审计单位根据当前系统、流程和/或计划及其实际执行情况实现其目标的能力的评估
    • 系统和/或流程的有效性和效率(仅限第一方系统或流程审计
  • 详细的审计结果,包括。

    • 主要不符合项是指系统、控制或过程的重大故障,不符合规定的要求或审计标准,或与同一要求有关的若干次要不符合项,并归纳为一个主要不符合项。
    • 轻微不符合项是指在审计标准(要求)中孤立的或单一的观察到的失误,或者是审计标准的一部分没有得到满足。不合格/不符合项总是在审核的范围内。
    • 观察是指审计人员观察到的任何其他重要的、足以传达给客户的、不属于不符合/不合规的情况。积极的观察有助于提高产品、系统、过程或项目的质量。负面的观察结果有损于产品、系统、过程或项目的质量,如果不加以解决,可能会导致未来的问题。任何在审核范围之外观察到的潜在不符合项也会作为负面观察报告。
    • 流程改进机会是已确定的领域,可以采取积极主动的措施来防止未来的问题,或提高系统、流程或产品的有效性或效率。
    • 最佳实践是指被审核者的实践值得被提出来,作为组织内其他团队、小组或项目可以使用的基准,以改善他们的实践。
  • 记录纠正行动和后续活动的机制

审计纠正行动和核查后续活动

对于审计报告中的每一个不合格/不符合项,被审计方管理层需要确保纠正行动得到计划和实施。被审核方管理层也可以决定,对于负面意见和过程改进机会,需要计划和实施纠正行动。被审核方的管理层可以自己做这个计划和实施,或者将这些活动委托给其他人。纠正措施计划应包括具体的行动,以及每项行动的时间表和责任分配。如果已经采取了行动来纠正不合格/不符合要求的情况,或观察到的情况,这些也应记录在纠正行动方案中。如果被审核方的管理层在对审核结果进行进一步审查后,认为纠正行动是不合适的,他们应在给首席审核员的回复中记录不需要采取行动的原因。

在收到被审计单位管理层的纠正措施答复后,首席审计师将协调对纠正措施计划的审查。这可以通过首席审计师审查纠正行动计划,审计小组审查这些计划,或在必要时,使用技术专家审查这些计划来实现。这种审查可以帮助防止被审核方的组织浪费时间和资源来实施纠正措施,而这些纠正措施并不能消除不合格/不符合规定的情况或解决问题。

如果纠正措施计划或不需要纠正措施的理由是可以接受的,首席审核员会通知被审核方。如果一个或多个建议的纠正措施或理由不能接受,首席审核员与被审核方管理层联系并解决问题。如果问题在首席审计师和被审计单位管理层之间无法解决,可以上报给客户。

当被审计单位完成了每项纠正措施的实施,他们会通知首席审计师。然后,首席审计师将协调对每项已实施的纠正措施的核查工作。

  • 通过与被审核方的书面沟通
  • 通过审查修改后的文件或新的质量记录
  • 通过进行后续审计,或在未来的审计中针对相关的发现进行重新审计

如果纠正措施在审核结束前完成,对该纠正措施实施的跟踪可以作为该次审核的一部分来完成,审核报告可以包括对不符合/不遵守情况的报告和纠正措施已实施并得到验证的事实。

首席审核员确认为验证纠正措施而采取的行动被记录下来。该文件成为审核的质量记录的一部分。

每项纠正措施在其成功实施得到验证后即告结束。当所有相关的纠正措施被验证和关闭时,每个不合格/不符合项就被关闭。当该次审核的所有不合格/不符合项都被关闭时,该次审核就结束了。

审核,像任何其他过程一样,应该是可审核的。这意味着与审核有关的质量记录必须被收集和保留。根据审计组织的需要,审计所需的质量记录应包括在审计过程的定义中。为审计保留的质量记录的例子可能包括:。

  • 审计计划
  • 开幕和闭幕会议记录,包括出席者名单
  • 审计报告
  • 纠正措施、后续行动,以及每个不合格/不符合项的结束文件
  • 可选择完成的审核工作文件,如核对表和审核员说明。

你可能感兴趣的:(软件质量工程SQA-8审计)