PoC 是什么?

PoC (Proof of Concept),是一种被广泛应用于客户具体应用验证的测试。根据用户的要求,对所采用系统的性能指数、扩展需求等相应指标,在服务器上通过真实数据的运行进行测试,对其能够承载的用户数据量和运行时间进行实际验算,并根据用户业务发展需求对验证数据量进行增加,以检测系统平台的承载能力与性能水平。

PoC 的类型

1

概念验证 (Proof of Concept, PoC)

通过构建小型原型或演示验证某个想法、方法或原理的可行性。PoC 通常规模较小,可能不是完整的解决方案。

2

价值验证 (Proof of Value, PoV)

侧重于展示潜在客户的使用场景和价值,而不像 PoC 那样深入。PoV 通常与 PoC 一起使用。

PoC 的作用

通过全方位、多角度的 PoC 验证测试,企业可以全面了解产品和供应商的情况,从而选择出最优质的产品或供应商,降低采购风险,确保项目的顺利实施。

产品功能检测

产品功能检测

根据企业提供的产品信息,对产品的功能进行全面检测和验证,确保产品功能满足企业需求。
个性化要求定制检测

个性化要求定制检测

针对企业的个性化需求,对产品进行定制化检测,确保产品能够满足企业的特殊需求。
API 适用性和开放性检测

API 适用性和开放性检测

检测产品的 API 是否适用于企业的系统环境,以及 API 的开放程度是否满足企业的集成需求。
技术文档规范完整性检测

技术文档规范完整性检测

检查产品的相关技术文档是否规范完整,为后续的实施和维护提供支持。
供应商实施能力检测

供应商实施能力检测

评估供应商的实施能力,包括技术水平、项目管理能力、响应速度等,确保供应商能够顺利完成产品实施。
企业资质规模检测

企业资质规模检测

检查供应商的企业资质和规模,确保其具备足够的资源和实力来支持产品的长期维护和升级。

PoC 环境

PoC 环境是指在正式的业务运行前,为了测试业务能力而提前部署的临时测试环境,与正式生产环境有所不同。PoC 环境为产品上线前的关键测试阶段提供了一个隔离的、安全的测试平台,确保产品功能和性能达到预期,为顺利投产做好充分准备。

PoC 环境是相对于生产环境用于测试所建立的独立数据库,因此不会对正式生产环境中的数据产生影响。这确保了测试活动不会影响正常业务运营。

PoC 环境主要用于对产品及其功能进行验证,包括功能测试和性能测试。在 PoC 环境中,可以全面测试产品的各项功能是否符合预期,以及在模拟真实场景下的性能表现。

通常来说,在一个项目初步确立后,为了客观地对产品及其功能进行验证,会先构建测试环境(PoC 环境)。只有在 PoC 环境中的测试结果经客户确认后,才会将产品放置于生产环境中投入运营。

PoC 环境具有临时性质,一旦测试完成并确认产品可以投入生产,PoC 环境通常会被拆除或重新用于其他测试目的。

如何做 PoC

构建 PoC 框架

开发人员可以直接使用现有的开源 PoC (Proof of Concept) 框架来加速 PoC 的开发过程,也可以自行编写 PoC 框架。无论是使用现有框架还是自行编写框架,开发人员都需要熟练掌握框架的代码规范和接口相关信息,因为这些信息直接关系到能否编写出高质量的 PoC。

  • 使用现有开源 PoC 框架的优势在于可以节省构建框架的时间,专注于 PoC 的编写。常见的开源 PoC 框架包括 Metasploit、w3af、Burp Suite 等。
  • 自行编写 PoC 框架则需要投入更多的时间和精力,但可以根据自身需求定制框架功能和特性。

开发人员也可以选择不构建框架直接编写 PoC,但这种方式会面临较多的风险和挑战,如缺乏统一的代码规范、接口不一致等问题。因此,建议在编写 PoC 之前先构建或选择一个合适的 PoC 框架。

构建 PoC 框架

熟悉漏洞详情

在编写 PoC 之前,开发人员需要全面了解目标漏洞的详细信息。对于开源 CMS(内容管理系统)的漏洞,可以通过官方网站或其他渠道获取对应版本的源码,搭建模拟环境进行研究和分析。

  • 研究源码可以帮助开发人员深入理解漏洞的根本原因和产生条件,为编写高质量的 PoC 奠定基础。
  • 搭建模拟环境可以复现漏洞,验证 PoC 的有效性,同时避免对实际生产环境造成影响。

对于不开源的漏洞,由于无法获取源码,开发人员可以通过网络搜索相关案例进行黑盒测试,手动尝试复原漏洞产生过程。但需要注意,不建议进行任何破坏性试验,以免造成不必要的损失。

熟悉漏洞详情

构建漏洞靶场

在 PoC 的构建流程中,为了保护 PoC 搭建成果并避免对实际目标造成影响,最好利用虚拟机等手段搭建模拟环境进行 PoC 调试。

  • 虚拟机可以提供一个隔离的测试环境,确保 PoC 的调试不会影响实际生产系统。
  • 模拟环境应尽可能模拟真实场景,以确保 PoC 在实际环境中的可靠性和有效性。

除特殊情况,不建议直接利用互联网上的 Web 应用进行 PoC 调试,因为这可能会对目标系统造成意外损害,并可能导致法律纠纷。构建漏洞靶场是一种更加安全和专业的做法。

构建漏洞靶场

选择编程语言

选择合适的编程语言对于 PoC 的编写至关重要。合适的编程语言能够让开发人员将精力集中在具体的漏洞研究,无需为实现辅助功能而耗费大量时间和精力,从而大幅提高编程的效率和质量。

  • 常见的用于编写 PoC 的编程语言包括 Python、Ruby、Java、C/C++ 等。
  • 选择编程语言时,需要考虑语言的特性、开发人员的熟练程度、第三方库的支持等因素。
  • 不同的漏洞类型和目标环境可能更适合使用特定的编程语言。例如,Web 应用程序漏洞的 PoC 通常使用 Python 或 Ruby 编写,而系统级漏洞的 PoC 则更多使用 C/C++。


选择编程语言

PoC 测试

工作启动

在 PoC(概念验证)测试的工作启动阶段,企业业务相关代表或负责人会向潜在供应商发布邀请和 PoC 测试工作说明。一旦供应商接受邀请,双方将创建一个共享的交流平台(如 PoC 协同群),以便于沟通和协作。如果需要进行私有化部署,企业需要先向供应商了解环境部署的相关要求,然后双方共同执行部署工作。在整个部署过程中,企业参与人员需要对部署情况进行完整的记录,以确保部署顺利进行。


产品宣讲及现场集中测试

工作启动阶段完成后,根据企业提供的 PoC 测试工作说明及对应测试模块的案例或方案,供应商需要在现场对其产品进行测试论证。在功能测试过程中,企业相关参与人员也会参加测试,并进行测试记录和意见记录。在此阶段,供应商需要提供现场操作指导,以确保企业人员能够充分了解和评估产品的功能和特性。


技术测评

根据企业提供的技术要求,供应商会提供相关支持文档。企业需要对这些文档进行现场比对,对实际的检测情况进行完整记录,并根据供应商提供的资料进行对比记录。如果涉及场景演示 (Demo) 设计,企业还需要评估实施人员的能力、实施时长以及实施准确性,以获得更准确的测试结果。通过全面的技术测评,企业可以确保供应商的产品和服务能够满足其技术需求。


间歇性测试工作

间歇性测试可以在工作启动阶段同步进行。除了功能测试,企业还需要对关键用户的体验心得和易用性评价进行记录和分析。该测试阶段允许企业用户进行主观判断评价,通过扩大间歇性测试组织范围,可以提高测试的准确性。在测试期间,企业需要做好测试用户记录,以便后续分析和改进。间歇性测试有助于企业全面了解产品的用户体验,并确保产品符合用户需求。


商务验证

商务验证阶段可以在工作启动阶段同步开始。在这个阶段,供应商应当根据企业提供的商务测评方案,积极配合测评工作。如果涉及客户核实相关内容,企业同样需要逐个进行考证。通过商务验证,企业可以确保供应商的商业模式、定价策略和服务水平等方面符合其业务需求。


背书归档、分析总结

背书归档和分析总结阶段通常是 PoC 测试的最后一个工作环节。在前期的测试环节中,每个阶段的工作都对参与人员、时间和工作说明进行了记录。在这个阶段,测试记录文件和企业及供应商相关的文档都需要进行分类和归档。根据这些文件记录资料等,企业需要对每个阶段进行分析对比,并进行整体工作分析总结。通过全面的分析和总结,企业可以评估 PoC 测试的整体效果,并为后续的决策提供依据。

PoC 的挑战

规模有限

规模有限

PoC 通常是小规模的,无法完全模拟真实的生产环境。这使得 PoC 很难全面验证某个概念在大规模部署时的可行性和性能表现。PoC 的结果可能无法完全反映真实场景下的挑战和问题。
范围局限

范围局限

PoC 的目的是验证概念的可行性,而非全面测试。因此,PoC 通常只关注核心功能和关键路径,而忽略了一些边缘场景和非功能需求。这可能导致 PoC 阶段遗漏了一些重要的问题。
资源限制

资源限制

由于 PoC 的规模较小,可投入的资源也相对有限。这可能会影响 PoC 的质量和代表性,无法完全模拟真实场景下的资源消耗和性能表现。
时间压力

时间压力

PoC 通常需要在有限的时间内完成,以便快速验证概念并做出决策。这可能会导致 PoC 过于简单化,无法充分考虑所有可能的情况和挑战。

注册开启免费试用 热门云产品任你选

免费体验 40+ 款企业级云服务,一次性试用多款云产品,迅速找到适配您业务的解决方案

亚马逊云科技产品的 PoC 优势

Amazon CodeBuild 是一项完全托管的构建服务,旨在简化软件构建过程。使用 CodeBuild,您无需设置、修补、更新和管理自己的构建服务器和软件。这意味着您可以专注于编写代码,而不必担心底层基础设施的管理和维护。CodeBuild 提供了一个无服务器的构建环境,您只需为实际使用的构建时间付费,无需支付任何其他费用。这种按需付费模式可以帮助您节省成本,并提高资源利用率。

  • 无需安装或管理任何软件,CodeBuild 为您处理一切
  • 无需预配置和管理构建服务器或虚拟机实例
  • 按需付费,只为实际使用的构建时间付费,无需支付任何其他费用
  • 与亚马逊云科技代码服务集成,实现无缝的持续集成和持续交付 (CI/CD) 工作流程

Amazon CodeBuild 具有自动扩展和缩减的能力,可以根据您的构建需求动态调整资源。当您提交新的构建请求时,CodeBuild 会立即处理这些请求,并为每个构建任务单独运行构建环境。这意味着您的构建请求无需在队列中等待,从而加快了构建速度并提高了效率。

  • 自动扩展以满足峰值构建需求
  • 同时并行运行多个构建任务
  • 构建请求无需等待队列,立即处理
  • 动态扩展和缩减资源,优化资源利用率
  • 支持大规模并行构建,满足高吞吐量需求

Amazon CodeBuild 是亚马逊云科技 Code Services 系列的一部分,旨在为软件开发团队提供端到端的自动化工具链。通过与其他亚马逊云科技代码服务(如 CodeCommit、CodeDeploy 和 CodePipeline)集成,您可以创建完整的自动化软件发布工作流程,实现持续集成和持续交付 (CI/CD)。

  • 与亚马逊云科技代码服务无缝集成,实现自动化 CI/CD 工作流程
  • 支持多种编程语言和构建工具,满足不同项目需求
  • 可插入现有 CI/CD 工作流程,与第三方工具集成
  • 支持并行构建,加快发布周期
  • 提供构建日志和报告,方便监控和故障排查

欢迎加入亚马逊云科技培训中心

从 0 到 1 轻松上手云服务,获取更多官方开发资源及培训教程

快速上手训练营

第一课:亚马逊云科技简介

本课程帮助您初步了解云平台与本地环境的差异,以及亚马逊云科技平台的基础设施和部分核心服务,包括亚马逊云科技平台上的弹性高可用架构,架构设计准则和本地架构迁移上云的基本知识。

亚马逊云科技技术讲师:李锦鸿

第二课:存储与数据库服务

您将在本课程中学习到亚马逊云科技上的三个存储服务分别是什么。我们也将在这个模块中为您介绍亚马逊云科技上的关系型数据库服务 Amazon Relational Database Service (RDS)。

亚马逊云科技资深技术讲师:周一川

第三课:安全、身份和访问管理

在这个模块,您将学习到保护您在亚马逊云科技上构建的应用的安全相关知识,责任共担模型以及身份和访问管理服务, Identity and Access Management (IAM) 。同时,通过讲师演示,您将学会如何授权给 EC2 实例,允许其访问 S3 上的资源。

亚马逊云科技技术讲师:马仲凯

了解更多入门学习计划 »

快速上手训练营

账单设置与查看

账单设置与查看

动手实操

快速上手云上无服务器化的 MySQL 数据库

本教程将引导您创建一个Aurora Serverless 数据库并且连接上它。

部署时间:10 分钟

启动一台基于 Graviton2 的 EC2 实例

本教程将为您讲解如何在云控制台上启动一台基于 Graviton2 的 EC2 实例。

部署时间:5 分钟

使用 Amazon Systems Manager 进行云资源统一跟踪和管理

在这个快速上手教程中,您将学会如何使用 Amazon Systems Manager 在 Amazon EC2 实例上远程运行命令。

部署时间:10 分钟

查看更多教程 »

动手实操

联系我们

联系我们

如需了解更多亚马逊云科技的专业服务和解决方案,请填写表单,我们的业务开发团队会与您联系
提交成功!
免费试用 12 个月

云服务器 EC2

每月免费使用 750 小时,两种实例类型可选,并可免费获得 750 小时公网 IPv4 地址