美国国家安全系统指令委员会(CNSSI)将 IV&V 定义为“由客观第三方执行的全面审查,分析和测试,以确认正确定义了要求,并确认系统正确地实现了要求。功能和安全性要求。”
电气和电子工程师协会(IEEE)简化了该概念,将IV&V定义为“由技术,管理和财务上独立于开发组织的组织执行的验证和确认”。
无论行业如何,独立的验证和确认都将重点放在对软件选择或开发项目的要求进行公正的审查上,包括企业资源计划(ERP)软件 -以及根据商定要求进行的软件实施。IV&V在包括开发,实施和软件选择过程在内的多种情况下都很有价值。
独立验证的重点是确定软件开发计划(SDP)是否符合特定的最终目标。例如,如果委托一个项目来创建商业智能(BI)模块,并且SDP包含适用于客户关系管理(CRM)模块的编码,则由于CRM不在范围之内,因此独立验证会将该计划标记为错误的BI。人员现在有机会相应地调整SDP,从而节省了实施所需的时间和资源,否则这些实施本来会超出商定的范围和预算。
独立验证是IV&V测试的后一步,从验证过程逻辑上来说是如此。验证检查需求时,验证的重点是最终产品,以确保软件满足验证的SDP确定的需求。独立验证确认构建按计划运行,满足已验证软件计划概述的特定要求。
简而言之,验证可确保软件开发过程背后的设计计划旨在实现特定的最终目标。验证确认软件版本符合验证计划指定的预期功能,并且这些计划已由编码人员适当执行。
在软件开发周期的早期发现高风险的错误和问题。
随着软件开发过程接近完全实施,缺陷的成本增加。实施越接近,纠正任何缺陷的成本就越高。由于IV&V是在流程的早期进行的,因此应避免在验证和确认过程中因错误的设计和实现而产生的潜在费用。
有时,IV&V被随意地称为“健全性检查”,部分目的是确保现有计划切实可行。IV&V还通过避免重新编码复杂错误的需求来提高理智。
通过避免员工和承包商重新设计软件来降低项目总成本。
花费时间来修复不合适的计划和错误的代码会增加项目成本,还可能导致延迟。因此,IV&V几乎提高了所有软件项目的投资回报率(ROI)。
在软件的生命周期内提高产品质量。
IV&V流程可确保软件开发始终专注于软件产品的质量和实现的质量,同时避免诸如范围蔓延或冗余之类的问题。
促进最佳实践在软件工程过程中的应用。
IV&V允许将现有软件计划与软件工程流程的最佳实践进行比较。
促进计划管理人员与人员之间的交流。
独立的验证和确认涉及必须完成的特定基准。IV&V流程包括绩效报告和状态指标,可促进决策者,员工和承包商之间的双向双向沟通。
验证收益,降低风险并为突发事件做好准备。
IV&V为组织提供了确认成本节省和提高实施效率所需的数据。通过防止实施错误来减轻风险,同时可以通过准备合理的应急计划来快速消除潜在风险。
技术独立性– IV&V人员应与最初发现软件需求和设计以及开发过程相分离,以实现设计需求。
管理独立性– IV&V的经理应来自不属于计划管理和开发团队的组织。这样可以确保组织外部的领导者选择要测试的问题,技术和数据,以避免利益冲突并保持公正性。
财务独立-提供给IV&V团队的财务激励措施必须与开发团队的财务保持脱节。合同独立性可以被视为这一重要参数的一部分。执行与开发人员签署的合同或协议没有关联的合同有助于确保维持财务独立性。
参与IV&V流程的团队应避免重复开发团队中进行的测试。计划和设计测试用例和过程应与开发团队完全分开。这样就建立了软件的补充测试,与仅仅复制开发团队的测试相比,它为IV&V流程增加了价值。
功能测试
这种测试类型侧重于软件的特定功能,以及它们是否按预期工作。功能测试结合了传统的质量保证和软件测试活动。质量保证确认该软件是根据规格和设计文档编写的。软件测试可验证该解决方案是否可以根据系统和用户要求工作。
非功能测试
非功能测试侧重于建立稳定和可靠功能的软件方面。路边的广告牌提供了一个简单的类比:检查广告牌广告的脚手架可被视为非功能测试,而测试安装在广告牌上的广告的内容和照明可被视为一种功能测试。显示广告是广告牌的目的,而将广告牌固定在适当位置的物理结构可以支撑显示。
非功能测试有五种主要类型:
压力测试故意尝试通过极端使用情况破坏系统。
性能测试应用各种工作负载来测试在各种情况下的快速,稳定的响应。
耐久性测试可长期检查性能,以确保稳定,持续的使用。
可用性测试,通过测试实际最终用户来评估软件。
安全测试可发现该软件是否在维护完整功能的同时保护数据免受恶意行为的侵害。
回归测试
这些测试用于发现现有系统中的新错误或问题。IV&V过程的这一部分通常在修补程序,更新,配置和增强功能改变整个系统的行为之后执行。
IV&V并非没有挑战或潜在障碍。最常见的是:
有限的财政和人力资源;
缺乏行业或软件专业知识;
没有足够的机会获得项目资料;
快速改变软件产品;
缺乏深入的报告或过多的报告;
在没有适当计划或背景的情况下交流报告;
开发团队与IV&V团队之间的沟通困难;
关注技术目标而不是业务目标;
缺乏详细的项目管理计划。
IV&V的成本将取决于多个项目变量,包括所需的时间,正在测试的项目的大小以及在特定行业中执行IV&V所需的专业知识。更大的项目,更长的测试周期以及缺乏可用于执行IV&V的专家的行业将增加成本。