我想了解关于确认测试的知识，请写一篇详细的介绍
确认测试又称有效性测试，其任务是验证软件的有效性，即验证软件的功能和性能及其他特性是否与用户的要求一致。当软件完成了集成测试且可运行，所有软件代码都在配置管理控制下，已经具备了合同规定的软件确认测试环境时，可进行确认测试。软件需求说明书描述了全部用户可见的软件属性，是软件确认测试的基础。#### 确认测试的内容

确认测试的内容包括以下几方面：
1)安装测试
在安装软件系统时，会有多种选择。要分配和装入文件与程序库，布置适用的硬件配置，进行程序的连接。而安装测试的目的不是查找软件错误，而是要查找出在这些安装过程中出现的错误。
2)功能测试
功能测试是依据需求文档来测试软件系统的功能是否正确。由于正确性是软件最重要的质量因素，所以功能测试必不可少。
3)性能测试
性能测试是测试软件系统处理事务的速度，一方面是检验性能是否符合需求；另一方面是为了得到某些性能数据以供参考。
特别是对于实时系统或嵌入式系统，软件只满足要求的功能而达不到要求的性能是不可接受的，因此还需要进行性能测试。性能测试可以出现在测试过程的各个阶段，甚至在单元层次上，也可以进行性能测试。
4)安全性测试
安全性测试是测试软件系统防止非法入侵的能力，及系统有无漏洞。为此要了解破坏安全性的方法和工具，并设计一些模拟测试用例对系统进行测试，力图破坏系统的保护机构以进入系统。
5)兼容性测试
兼容性测试主要想验证软件产品在不同版本之间的兼容性。基本的兼容性测试有两类：向下兼容和交错兼容。向下兼容测试是测试软件的新版本保留它早期版本的功能的情况；而交错兼容测试主要是验证共同存在的两个不同但相关的产品之间的兼容性。
6)可使用性测试
可使用性测试主要从使用的合理性、方便性等角度对软件系统进行检查，以发现人为因素或使用上的问题。
7)文档测试
文档测试是检查用户文档(如用户手册)的清晰性。#### 确认测试的基本方法

在确认测试阶段，首先要进行有效性测试以及软件配置复审，然后进行验收测试和安装测试，在通过了专家鉴定之后，才能成为可交付的软件。
1．进行有效性测试
有效性测试是在模拟的环境(可能就是开发的环境)下，运用黑盒测试的方法，验证被测软件是否满足需求规格说明书列出的需求。进行有效性测试时，首先需要根据要求制定测试计划，规定要做测试的种类。还需制定一组测试步骤，描述具体的测试用例。通过实施预定的测试计划和测试步骤来确定软件的特性与需求是否相符，以确保满足所有的软件的功能需求、达到所有的软件性能需求，并且所有的文档都是正确且便于地使用。此外，对其他的软件需求，例如兼容性、可移植性、可维护性、出错自动恢复等，也都要进行测试，确认这些性质是否得到满足。
2．软件配置复查
确认测试的另一个重要环节是配置复审。复审的目的在于保证软件配置齐全、分类有序，并且包括软件维护所必需的细节。
除了按照合同规定的内容和要求，由人工进行软件配置审查外，在确认测试的过程中，应当严格遵守用户手册和操作手册中规定的使用步骤，以便检查相关文档资料的正确性和完整性，并仔细记录发现的错误和遗漏，适当地进行补充和改正。
3．a测试和b测试
在软件交付使用之后，用户将如何实际使用程序，对于开发者来说是无法预测的。例如，用户可能错误的理解命令，或提供一些奇怪的数据组合，亦可能对设计者自认明了的输出信息迷惑不解等。因此，软件是否真正满足最终用户的要求，应由用户进行一系列验收测试。验收测试既可以是非正式的测试，也可以是有计划的、系统性测试。但是一个软件产品，可能拥有众多的用户，不可能让每个用户都来进行验收，因此，往往采用称为a、B测试的方法，以发现可能只有最终用户才能发现的错误。
a测试是由一个用户在开发环境下进行的测试，也可以是软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为a版本)进行的测试。a测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的用户操作方式，并在测试中试图发现错误并修正。a测试人员是除开产品开发人员之外首先见到产品的人，他们提出的功能和修改意见是特别有价值的。
经过a测试调整的软件产品称为B版本。B测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。与a测试不同的是，开发者通常不在测试现场。在B测试中，用户需要记录所遇到的一切问题，并要求用户报告异常情况、提出批评意见。开发者在综合用户的报告之后，做出修改，最后将软件产品交付给全体用户使用。8测试着重于产品的支持性，包括文档、客户培训和支持产品生产能力，因此，只有当a测试达到一定的可靠程度时，才能开始B测试。
4．确认测试结果
在全部确认测试的测试用例运行完后，就可以对软件系统的测试结果进行确认，软件确认测试的结果有两种可能：
(1)测试结果与预期的结果相符，这说明软件的这部分功能和性能指标满足软件需求说明的要求，用户可以接受。
(2)测试结果与预期的结果不符，这说明软件的这部分功能或性能特征不满足软件需求说明的要求，用户无法接受。此时，需要开列一张软件各项缺陷表或软件问题报告，通过与用户的协商，解决所发现的缺陷和错误。