确定测试和鉴定测试是软件质量活动中两个方面不同、目的迥异的重点步骤,常被混淆,实则泾渭分明。
确定测试是我们创建的产品是不是正确? 它是用户需求和预期目的的满足程度,证明软件是不是解决了真实情形下的实际问题。这个过程本质上是向内的,是开发方或最后用户对产品作用的内部审视。常见的用户验收测试(UAT)就是典型代表,由业务人员在实际或模拟环境中操作,确定软件功能、流程和体验是不是符合最初的设计意图。
鉴定测试则回答这个产品是不是合格,并能否被权威认可?它重视的是对外部标准、法规或合同条款的严格符合性。这个过程必须由有相应资质的、独立于开发方的第三方权威测评机构执行。它像一场严格的“资格认证考试”,根据国家/行业标准(如GB/T 25000.51)、安全规范或特定技术要求,对软件进行全方面的检验。其成果是一份具有法律效力和公信力的官方鉴定报告或证书,用于产品定型、市场准入、科技成果评价、政府项目验收或法律仲裁。
确定测试是做对的事,不同需求的符合性;鉴定测试是把事情做合格,不同标准的符合性。 两者的关系是递进的:一个软件产品先必须通过确定测试,证明其对于用户是有用的、正确的;在此基础上,才有必要通过鉴定测试,证明其在更广阔的市场或规范框架下是合规的、优质的。前者是质量的内生证实,后者是质量的外部背书。