Acceptance Testing 验收测试
验收测试是由潜在的最终用户或客户进行的,其目的是判断软件是否符合必要的规格并且是否适用于其预定的用途。
相关术语:
更多信息也可以看看: Wikipedia
关于验收测试的问题
基础知识和重要性
什么是验收测试?
验收测试是系统开发生命周期中的一个阶段,主要用于验证系统功能和业务需求是否符合预定的标准,以确保软件已经达到投入生产的标准。通常,这是产品交付给客户或向最终用户提供之前的最后一道关卡。这种测试注重于用户体验和整体系统行为,而非单个组件,通常涉及真实场景和端到端的工作流程。
要有效进行验收测试,需要考虑以下几点:
- 明确定义验收标准:这些标准应由相关利益方共同商定,并构成测试用例的基础。
- 优先考虑测试用例:集中关注对业务和用户体验至关重要的功能和用户流程,以提供最大价值。
- 充分利用用户反馈:整合来自测试用户或实际用户的见解,以完善测试。
- 在适当的情况下进行自动化:尽管自动化可以提高效率,但某些测试可能需要手动进行,以评估可用性和外观。
- 审查和调整:根据测试结果做出明智的决策,评估产品的准备就绪程度,并找出需要改进的方面。
请谨记,验收测试不仅仅是为了发现缺陷,更是为了确保产品满足业务需求并提供积极的用户体验。保持与相关利益方的沟通渠道畅通,以确保期望与结果一致。
为什么验收测试很重要?
验收测试的重要性不可忽视,它充当产品发布市场或交付客户之前的最终验证环节。这确保软件符合业务需求,能够提供期望的用户体验。通过模拟真实的使用场景,验收测试验证了端到端的业务流程,而不仅仅是单个组件或功能。
这种测试通常是对缺陷和可能严重影响客户满意度和商业成功的问题的最后一道防线。它有助于发现用户期望与实际产品之间的任何差异,使团队能够在对最终用户产生影响之前解决这些问题。
此外,验收测试为产品验收提供了明确的接受标准的度量标准,确立了“完成”产品的明确标准。它还提供了法律合规性检查,以确保软件符合与行业或市场相关的法规和标准。
实质上,验收测试是关于增强对产品质量的信心,以及对部署准备就绪的信心。这是审查应用程序的功能、可用性、可访问性和整体性能的机会,这对用户验收至关重要。如果没有这个阶段,团队可能会面临发布产品的风险,这些产品未能完全满足客户的需求或期望,从而导致支持成本增加、声誉受损,甚至可能在市场上失败。
验收测试有哪些不同类型?
验收测试可以分为多个类型,每一种都专注于特定的方面和目标:
- 用户验收测试 (UAT): 用于确保软件满足用户需求,准备投入实际使用。由用户或利益相关者执行,验证端到端的业务流程。
- 业务验收测试 (BAT): 专注于验证软件的业务目标。类似于 UAT,但更具战略性,通常涉及高层业务利益相关者。
- Alpha 测试: 在软件面向外部用户之前由内部人员执行,旨在尽早发现任何重大问题。
- Beta 测试: 由一组外部用户在实际环境中执行,从用户角度识别问题。
- 合同验收测试: 确保软件符合合同要求,通常根据供应商和客户共同同意的检查清单执行。
- 法规验收测试 (RAT): 验证软件是否符合行业法规和标准,在金融、医疗保健和航空等领域尤为重要。
- 运营验收测试 (OAT): 也称为生产验收测试,检查运营方面的事项,如备份、恢复和维护程序。
每种验收测试类型都旨在验证软件在部署和使用方面的准备情况,确保满足所有利益相关者的期望。
验收测试如何融入软件开发生命周期?
验收测试在软件开发生命周期(SDLC)中扮演着至关重要的角色,通常在系统测试之后、产品上线之前的发布前阶段进行。它作为最终的验证环节,确保软件满足业务需求,并已准备好投入运营。
在敏捷方法中,验收测试被整合到迭代中,实现对用户故事的持续验证。这是一个协作的过程,涉及开发人员、测试人员和利益相关者,以确认产品的功能符合业务需求。
而对于瀑布项目,验收测试则是一个独立的阶段,跟随着详尽的系统测试而呈线性发展。它充当着在软件交付给客户或提供给最终用户之前的关键关卡。
在这两种情况下,焦点都是验证端到端的业务流程而非个别组件,以确保软件在类似生产环境中的行为符合预期。验收测试是基于所有相关方共同商定的预定义标准。
验收测试的结果对于启动/暂停决策至关重要。成功通过意味着软件被认为达到预期目标,而任何重大问题都必须在正式启动之前解决。此阶段还是验证法规和合规要求的良机,如果适用的话。
将验收测试融入 SDLC 确保最终产品不仅在技术层面正常运作,而且能够为业务及其用户提供预期的价值。
验收测试与其他类型的测试有什么区别?
验收测试与其他测试类型主要在其范围和涉及的利益相关者方面存在明显差异。而单元测试聚焦于个别组件,集成测试确保系统不同部分的协同工作,验收测试则评估系统对业务需求的符合度,以及是否准备好投入使用。
功能测试检查代码的具体功能,而验收测试关注的是整个应用程序从最终用户角度的行为。这是一种黑盒测试,内部工作原理不是关注的焦点。
另一方面,**性能测试**则评估系统在特定工作负载下的响应性和稳定性,这通常不是验收测试的主要目标。
**可用性测试**关注用户体验,但通常比验收测试更主观,也不太正式,而验收测试则有要满足的具体标准。
验收测试通常是软件上线前的最后一步,涉及真实场景和与用户需求的验证。通常由与开发或 QA 团队不太深度参与开发流程的利益相关者或业务代表执行。这种外部视角对确保软件满足预期用户的需求和期望至关重要。
总之,验收测试在其专注于从用户角度验证产品是否准备好投入生产的方面上具有独特性,而不仅仅是验证技术的正确性或性能基准。
技术和策略
验收测试中有哪些常用技术?
在验收测试中常用的技术包括:
- 行为驱动开发(BDD):使用 Cucumber、SpecFlow 或 Behat 等框架,以利益相关者理解的自然语言编写测试。测试基于用户故事,确保软件的行为符合预期。
Feature: 用户登录
Scenario: 使用有效凭据成功登录
Given 登录页面已显示
When 用户输入有效凭据
Then 用户被重定向到仪表板
- 用户验收测试(UAT):真实用户在模拟生产环境中测试软件,验证端到端的业务流程。
- 探索性测试:测试人员在没有预定义测试用例的情况下探索软件,发现意外行为或缺陷。
- 基于会话的测试:具有特定重点或目标以及设定时间框架的结构化探索性测试会话。
- 基于清单的测试:使用功能或需求列表作为指南,确保验证所有功能。
- Alpha/Beta 测试:将软件释放给组织外的有限受众(alpha)或实际用户(beta)以收集反馈。
- 自动化回归测试:运行自动化测试,确认最近的更改没有对现有功能产生不良影响。
- 性能测试:评估系统在负载下的性能,确保其满足速度和响应性的验收标准。
- 合规性测试:验证软件是否符合行业标准、法规或合同协议。
这些技术有助于确保软件在发布前符合业务需求,提供良好的用户体验,并且在关键问题方面没有问题。
如何制定验收测试策略?
制定一个验收测试策略包括以下几个关键步骤:
定义验收标准:与利益相关者合作,为每个功能或用户故事建立清晰且可衡量的验收标准。
选择测试技术:选择适当的测试技术,如行为驱动开发(BDD)或实例规约,以创建可理解且可执行的规范。
与 CI/CD 集成:将验收测试嵌入 CI/CD 流程,以实现对应用程序进行早期和频繁验证。
监控和度量:实施监控以跟踪测试覆盖率、通过/失败率和缺陷密度。利用这些指标来完善测试流程。
审查和调整:定期与团队审查测试策略,以适应应用程序或业务优先级的变化。
利益相关者沟通:通过提供清晰、简洁的报告和仪表板,及时向利益相关者传达测试进展和结果。
通过遵循这些步骤,您可以创建一个与业务目标一致并确保产品高质量的强大验收测试策略。
自动化在验收测试中的作用是什么?
自动化在验收测试中扮演着至关重要的角色,它通过简化软件对业务需求的验证过程,实现了测试用例的重复和一致执行,以确保新功能或更改不会破坏现有功能。验收测试中的自动化具有以下优势:
- 通过减少运行测试所需的时间,特别是对于回归测试,提高了效率。
- 通过在重复性任务中减少人为错误,增强了准确性。
- 通过在不成比例增加时间或资源的情况下,促进了测试工作的可扩展性,以覆盖更多的功能和场景。
- 通过允许自动化验收测试成为部署流水线的一部分,支持了持续集成/持续部署(CI/CD),提供了有关应用程序是否准备好投入生产的即时反馈。
- 向开发人员和利益相关者提供更快的反馈周期,加速了开发过程,提高了产品质量。
- 通过使人工测试人员专注于探索性测试和其他需要人类判断的领域,改善了资源分配。
自动化验收测试通常是用高级语言编写的,或者通过允许行为驱动开发(BDD)或领域特定语言(DSL)的框架编写,使它们易于理解,适合非技术利益相关者,并确保测试与业务语言和用户期望保持一致。
// 使用 BDD 框架的自动化验收测试示例
Feature: User login
Scenario: Successful login with valid credentials
Given the login page is displayed
When the user enters valid credentials
And the user submits the login form
Then the user is redirected to the dashboard
通过将自动化验收测试整合到开发工作流中,团队可以持续验证软件对业务需求的遵循,降低风险,并缩短上市时间。
验收测试有哪些挑战,如何克服?
验收测试在面对需求模糊性、环境不匹配和利益相关者沟通等挑战时,需要采取一些对策:
- 澄清需求:与利益相关者紧密合作,确保需求清晰且可测试。利用**行为驱动开发(BDD)**等技术,通过实例创建共享理解。
- 复制生产环境:确保测试环境与生产环境紧密匹配,以避免差异。采用**基础设施即代码(IaC)**自动化环境设置并保持一致性。
- 改善利益相关者沟通:定期向利益相关者更新测试进展,并让他们参与决策过程。实施演示会话和反馈循环以确保满足他们的期望。
- 管理测试数据:制定管理和生成测试数据的策略,以准确反映生产场景。利用数据匿名化和合成数据生成工具来维护数据的完整性和隐私性。
- 明智自动化:将自动化工作重点放在提供最大价值且容易出错的测试上。保持手动测试和自动化测试的平衡,以确保全面覆盖。
- 处理不稳定性:实施重试机制和根本原因分析以处理不稳定的测试以确保可靠性。使用容器化提供稳定一致的测试环境。
- 监控并采取行动:设置监控工具以跟踪测试结果和性能。利用这些数据不断完善和改进验收测试流程。
如何将验收测试集成到持续交付流水线中?
将验收测试整合到持续交付(CD)流水线中,确保新功能符合业务需求且准备好投入生产。为实现这一目标,请按照以下步骤操作:
自动化验收测试:编写与用户故事或需求相符的自动化验收测试。使用行为驱动开发(BDD)框架如 Cucumber 创建可读的场景。
版本控制:将验收测试与应用代码一起存储在版本控制系统中,以保持测试用例与其覆盖的功能之间的同步。
持续集成服务器:配置 CI 服务器(例如 Jenkins、CircleCI),在流水线的一部分触发验收测试。这应该在单元测试和集成测试通过后进行,以确保只有质量良好的代码继续进行。
测试环境:建立一个专用的测试环境,模拟生产环境。使用基础设施即代码(IaC)工具如 Terraform 或 Ansible 保持一致性和可重复性。
并行执行:并行运行测试以减少执行时间。使用 Docker 或 Kubernetes 进行容器化可以帮助管理和扩展测试环境。
门控机制:在流水线中实施门控机制。只有当验收测试通过时,才允许更改进入下一阶段,确保失败的代码不会到达生产环境。
反馈循环:在测试失败时立即向开发人员提供反馈。将测试报告与 Slack 或电子邮件等通信工具集成。
部署决策:使用测试结果做出关于部署的明智决策。自动部署符合验收标准的代码。
通过将验收测试嵌入到 CD 流水线中,确保每次更改在达到最终用户之前都会根据预期的业务功能进行评估,保持高质量标准,降低生产问题的风险。
工具和技术
验收测试常用的工具有哪些?
这些是常用于验收测试的工具:
- Cucumber:支持以简单语言规范的方式进行行为驱动开发(BDD)。
- Selenium:自动化浏览器,用于进行 Web 应用程序测试。
- SpecFlow:通过将可读的业务行为规范与底层实现绑定,弥合领域专家和开发人员之间的沟通鸿沟。
- FitNesse:基于 Wiki 的框架,允许用户在表格和可执行规范中定义测试。
- Robot Framework:关键字驱动的验收测试方法,非程序员也易于使用。
- JBehave:支持 BDD 的框架,允许将故事写入文档的一部分。
- TestComplete:提供全面功能的 Web、移动和桌面测试工具。
- UFT(Unified Functional Testing):广泛用于功能和回归测试,支持关键字和脚本接口。
- Postman:简化 API 测试,允许用户创建和共享测试套件。
- SoapUI:用于测试 SOAP 和 REST Web 服务的工具。
这些工具通过自动化测试用例进行软件验证,这些测试用例模拟用户行为或API调用,以确保系统满足协商一致的标准。它们可以集成到 CI/CD 流水线中,用于持续验证,并支持各种编程语言和平台。每个工具都有其独特的功能,并且选择合适的工具取决于项目的具体需求,例如测试用例的复杂性、技术堆栈和团队的专业知识。
这些工具如何帮助验收测试?
测试自动化工具简化了验收测试过程,通过执行测试用例验证软件是否符合业务需求。这些工具不仅减少了进行繁琐的手动测试所需的时间和精力,还确保了验收标准的一致性。
通过自动化测试用例,团队能够快速发现回归和缺陷,实现及时反馈和纠正。这在敏捷和 DevOps 环境中尤为重要,因为这些环境通常需要频繁的迭代和部署。自动验收测试可以通过持续集成(CI)流水线触发,确保新的更改在部署之前经过用户验收标准的审查。
此外,自动化工具支持数据驱动测试,允许测试人员使用各种数据集验证应用程序在不同情景下的行为。这提高了测试覆盖率和验收测试的可靠性。
自动化测试还提供了关于已测试内容的清晰文档,充当验收标准的实时记录。这种透明性有助于保持利益相关方、开发人员和测试人员之间的一致性。
此外,这些工具通常配备报告功能,提供对测试结果的深入了解,更容易向所有相关方传达产品的状态。
总的来说,测试自动化工具通过确保测试用例的一致执行,提供软件质量的快速反馈,增强测试覆盖率,并提供清晰的文档和测试结果报告,为验收测试提供了有力支持。
不同验收测试工具有哪些优缺点?
验收测试工具在功能、易用性和集成能力上各有千秋。以下是它们的优缺点的简要比较:
Cucumber:
- 优势:推动行为驱动开发(BDD),采用简单语言(Gherkin),与多种框架良好整合。
- 劣势:需要对 BDD 有深入理解,对于复杂测试场景可能需要额外设置。
- 优势:支持多种浏览器和语言,拥有庞大用户社区,高度灵活。
- 劣势:设置较为繁琐,由于浏览器自动化导致执行速度较慢,可能需要额外工具进行 API 测试。
FitNesse:
- 优势:结合维基进行文档编制和测试执行,有利于利益相关方协作。
- 劣势:学习曲线较陡,用户界面相对陈旧,可能在大型项目中扩展性较差。
SpecFlow:
- 优势:与.NET 集成,支持 BDD,允许使用自然语言编写测试。
- 劣势:主要用于.NET 项目,需要理解 BDD 原则。
Robot Framework:
- 优势:基于关键词驱动,支持 BDD,拥有多个面向不同应用的库。
- 劣势:语法可能对开发人员不够直观,可能需要额外的 Python 知识。
TestCafe:
- 优势:无需 WebDriver,测试支持所有流行的浏览器,易于设置。
- 劣势:相较于 Selenium,成熟度较低,可能集成较少。
UFT (Unified Functional Testing):
- 优势:支持多种应用,内置强大的 IDE,具备广泛的对象识别功能。
- 劣势:昂贵,不太适用于敏捷和持续集成环境。
每个工具都有其长处和不足,最佳选择取决于项目需求、团队专业知识和具体使用的技术。
API 在验收测试中的作用是什么?
APIs在验收测试中扮演着至关重要的角色,充当着与应用逻辑进行交互的接口。它们使测试人员能够在无需用户界面的情况下验证系统在测试中的行为,特别是在后端服务中,用户界面可能不可用或尚未完全开发。
通过使用APIs,验收测试能够验证:
- 系统是否对给定输入正确响应。
- 是否遵循业务规则。
- 与其他服务的集成是否按预期运行。
- 系统的性能是否符合所需的基准。
APIs支持创建可靠、可重复且可以快速执行的自动验收测试。它们有助于在开发周期的早期进行测试,通常作为**持续集成/持续交付(CI/CD)**流程的一部分。
此外,APIs提供了一层抽象,允许在没有依赖 UI 的情况下测试系统,因为 UI 可能会频繁更改。这导致了更稳定和可维护的验收测试。
// 伪代码中基于 API 的验收测试示例
const response = await apiClient.createOrder(orderDetails);
assert(response.status, 201);
assert(response.data.orderId, expectedOrderId);
总的来说,APIs对于验收测试至关重要,通过高效、早期和有针对性的验证实现了系统功能和性能的检验。
如何在验收测试中利用云技术?
在验收测试中充分利用云技术带来了多个优势。云平台提供按需的可扩展资源,使团队能够通过动态提供必要的基础架构来模拟真实世界的流量和使用模式。这对于验收测试的**性能和负载测试**方面特别有用。
利用云服务,可以快速、一致地复制测试环境,确保验收测试在稳定和可控的环境中运行。这对于保持验收测试过程的完整性至关重要。基于云的工具通常具有内置的分析和监控功能,可用于在验收测试期间获取有关应用性能和用户体验的洞察。
持续集成/持续部署(CI/CD)流水线可以通过云服务实现增强,以自动部署和运行验收测试在各种环境中,包括类似生产的暂存区域。这种集成确保验收测试是交付过程中无缝的一部分。
此外,云平台通常提供全球数据中心,这意味着验收测试可以更接近最终用户的位置执行,从而在延迟和用户体验方面提供更准确的结果。
团队还可以从成本节约中受益,因为云服务通常采用按使用量计费的模式,这意味着在测试阶段仅需为所使用的资源付费。
总的来说,云技术有助于实现更高效、可扩展和真实的验收测试过程,从而可能实现更可靠和用户中心的最终产品。
最佳实践
验收测试有哪些最佳实践?
验收测试的最佳实践包括:
- 明确定义验收标准:与利益相关者合作,建立明确、可衡量的标准,以便特性能够被接受。
- 与跨职能团队合作:确保开发人员、测试人员和业务分析师共同努力,理解需求和期望结果。
- 优先考虑用户体验:关注真实的使用场景,验证端到端的工作流程和用户满意度。
- 保持测试可维护性:编写易于理解且在应用程序演变时容易更新的测试。
- 在适当的情况下自动化:使用自动化执行重复且耗时的测试,但请记住,一些探索性测试可能需要手动方法。
- 使用类似生产的数据进行测试:使用与生产环境紧密模拟的数据,以确保测试是现实的并涵盖边缘情况。
- 执行回归测试:通过在验收套件中包含回归测试,确保新变更不会破坏现有功能。
- 监控性能和安全性:将性能和安全性检查作为验收标准的一部分。
- 为测试工件使用版本控制:将测试用例、脚本和数据存储在版本控制系统中,以跟踪更改并有效地协作。
- 持续改进流程:定期审查和调整您的测试过程,以解决低效问题并纳入新的最佳实践。
通过遵循这些实践,可以确保验收测试是有效、高效的,并且与利益相关者和最终用户的期望保持一致。
如何维护和更新验收测试?
随着时间的推移,保持和更新验收测试需要采取一种有结构的方法,以确保它们保持相关性和有效性:
- 定期审查测试用例:定期审查验收测试,使其与新功能、需求和应用程序的变化保持一致。
- 重构测试:通过对测试进行重构,提高可读性、效率和可维护性,保持测试代码库的清晰性。去除冗余,确保测试是模块化的。
- 版本控制:使用版本控制系统跟踪测试脚本的变化,以便在必要时回滚到先前的版本。
- 测试数据管理:有效管理测试数据,确保其保持最新并代表生产数据。
- 在可能的情况下自动化:对于受到重复更改影响的测试,使用脚本或工具自动化更新过程,以修改测试用例或数据。
- 与利益相关者合作:与开发人员、业务分析师和产品所有者密切合作,了解变更及其对验收标准的影响。
- 持续集成:将验收测试集成到 CI/CD 流水线中,以确保它们在每次构建时都得到执行,及早捕获问题。
- 监控和警报:为测试套件实施监控,检测由于应用程序更改而导致的不稳定性或失败,并设置警报以进行即时处理。
- 文档撰写:保持测试用例文档的更新,以反映应用程序和测试的当前状态。
- 反馈循环:与团队建立反馈循环,讨论验收测试的有效性和潜在改进。
通过遵循这些实践,可以有效地保持和更新验收测试,确保它们继续提供价值并满足软件开发生命周期的不断发展需求。
文档在验收测试中的作用是什么?
文档在验收测试中扮演着至关重要的角色,作为理解、执行和评估测试标准的基础。这包括验收测试计划(ATP)、测试用例和测试场景,它们勾勒了系统被最终用户或客户视为可接受的条件。
测试用例源自需求文档,对确保应用程序的所有功能和非功能方面得到验证至关重要。它们提供了测试条件、期望结果和验收标准的逐步描述。
追踪矩阵将需求与相应的测试联系起来,确保覆盖并有助于识别测试过程中的任何差距。这对于维护验收测试阶段的完整性至关重要。
**测试报告**记录了验收测试的结果,包括发现的任何缺陷或问题。这些报告对于利益相关者做出关于软件是否准备好投入生产的明智决策至关重要。
总之,验收测试中的文档确保:
- 测试内容和成功标准的清晰性。
- 测试执行的一致性。
- 通过将测试与需求进行追踪来确保责任。
- 将测试结果和发现有效地传达给利益相关者。
适当的文档对于透明、高效和成功的验收测试过程至关重要。
如何提高验收测试的效率?
为了提高验收测试的效率:
- 根据风险和业务影响,优先考虑测试用例。集中精力测试直接影响用户体验的关键功能。
- 实施**测试数据管理**实践,确保测试场景可以使用相关且高质量的数据。
- 利用行为驱动开发 (BDD) 框架,如 Cucumber,创建可读的规范,同时作为自动化测试。
- 并行化测试以减少执行时间。像 Selenium Grid 这样的工具可以在不同环境中同时运行多个测试。
- 重复使用测试组件并遵循 DRY(不重复自己)原则以减少维护工作量并提高一致性。
- 模拟外部依赖以隔离被测试系统并减少外部系统的不可预测性。
- 使用像 Docker 这样的容器化工具,优化测试环境 设置,以快速启动一致的测试环境。
- 定期审查和重构测试,去除冗余并确保其与当前需求保持一致。
- 利用仪表板和报告工具监控和分析测试结果,以快速识别并解决失败。
- 与利益相关者密切合作,确保验收标准清晰,并收集有关测试覆盖率和结果的反馈。
通过实施这些实践,您可以简化验收测试流程,减少执行时间,并维护高质量的测试套件,为开发生命周期提供有价值的反馈。
如何有效传达验收测试的结果?
有效传达验收测试结果涉及清晰、简洁和可操作的报告。使用仪表板提供实时状态更新,突出显示通过/失败率,测试覆盖率和缺陷。利用视觉辅助工具,如图表和图形,以便快速理解。
整合自动生成的报告,确保其包含必要的细节,如**测试用例描述**,预期结果,**实际结果和测试执行**的证据(截图、日志)。根据不同的利益相关者定制报告——为管理层提供摘要报告,为开发人员提供详细日志。
利用通知系统在测试失败时立即通知团队。将这些通知整合到已在使用中的工具中,如 Slack 或电子邮件。
为了透明度和协作,使用像JIRA这样的问题跟踪系统记录缺陷,并将其直接链接到失败的验收测试。这有助于追溯和优先级排序。
确保测试结果对所有相关方可访问,可能通过共享存储库或基于网络的平台。在团队会议上定期审查测试结果,讨论失败、不稳定的测试和下一步计划。
最后,保持一个动态的文档或维基,随着项目的发展而不断更新,记录验收测试的见解和决策。这是一个历史记录和未来参考的知识库。
- 实时更新的仪表板
- 包含必要细节的自动化报告
- 像图表和图形这样的视觉辅助工具
- 用于即时提醒的通知系统
- 用于缺陷管理的问题跟踪系统
- 所有利益相关方都可以访问的可达的测试结果
- 团队会议中的定期审查
- 用于历史见解的实时文档
参考资料
- 软件测试术语 Github 仓库 https://github.com/naodeng/QA-Glossary-Wiki
- QA Glossary Wiki https://ray.run/wiki
欢迎关注软件测试同学的公众号“软件测试同学”,原创 QA 技术文章第一时间推送。