服务器端 QA 的挑战在于其
Posted: Wed Dec 18, 2024 6:28 am
复杂性和所需的技术知识。由于需要考虑功能标记、竞争条件和自定义代码,服务器端 QA 需要 QA 团队、开发人员和产品经理之间的密切协作。
服务器端实验的质量保证清单
在这里,我们将进行测试以确保每个后端流程(从 API 调用到数据存储)都按设计运行。这就是您保证服务器端实验在实际条件下准确、可靠且有弹性的方法。
1. 定义测试用例并指定事件顺序
在开始 QA 之前,请清楚地概述测试将 美国手机号 遵循的事件顺序,从第一个 API 调用到最终的数据存储。
为每个测试定义测试用例并指定事件序列、API 调用和可在视口中查看的元素,将为您的 QA 团队提供尽早发现错误所需的一切。
— 卡尔基·吉莱斯皮
这意味着考虑用户将看到哪些元素、服务器将如何处理请求,以及确保每个步骤按照正确的顺序进行。
例如,如果您正在测试新的推荐引擎,您将需要定义获取数据的精确 API 调用、触发这些调用的用户操作以及预期的服务器响应。
如果没有这种详细的蓝图,您的 QA 团队就只能猜测,而错误就可能被忽略。将所有内容都放在流程图中可以加快 QA 流程,并确保每个操作和步骤都得到考虑。
2. 确保精确测量和准确的数据跟踪
K2 Cyber 的 Ken Hanson 说得最好:在批准服务器端测试之前,最重要的是测量的精度。
这通常是拆分测试时大多数令人头痛的罪魁祸首,并且可能导致整个实验需要重新启动,浪费宝贵的时间,并且(如果不被发现)可能会导致做出错误的决定。
一旦进入服务器端,这种风险就会比正常情况下高一些,因为跟踪流程开始遇到自定义代码。
为了完全自信,我喜欢从简单到复杂,并通过手动验证来完成。这可能很辛苦,但如果你曾经不得不放弃一个实验,这是值得的。
我发现通过设置“洁净室”环境来进行手动验证要容易得多,在该环境中,我将测试隔离到只有我能到达的路径,或者与开发人员合作为我提供强制执行操作的钩子。
只有当我对自己的手动验证有信心时,我才会添加团队成员参与 QA 工作。
在此手动验证过程中,重要的事情是手动记录您的数字,以便您可以独立验证仪表板上看到的内容。
— 肯·汉森
Convincify 的 Corey Trent 指出了测试人员的另一个重要考虑因素:如果您对网站进行大规模流量更改,请确保这些修改不会破坏付费营销团队跟踪网站目标的方式,也不会破坏分析报告。
如果您要运行重定向测试,请收集测试体验中最复杂的几个 URL。例如,包含许多付费搜索跟踪查询参数的页面 URL,并确保您的重定向逻辑保持链接完整。例如
www.yoursite.com/test-page?fbclid=24929 ... liwf
我们发现有人在进行重定向测试时遇到了麻烦,他们的设置/代码会破坏指向页面的流量,因为 URL 上可能带有额外的查询参数。
3. 确保正确的前后端集成
对于全栈 QA,测试前端和后端如何交互是一个基础过程。
EchoLogyx首席运营官Tasin Reza表示,一个常见的陷阱是前端操作(例如将产品添加到购物车或提交帐户详细信息)不能正确反映后端更新。
例如,在测试“添加到购物车”功能时,前端必须显示正确的产品详细信息(例如名称、价格和数量),而后端必须准确更新库存水平并确保数据库的一致性。
当这些操作不同步时,我们会遇到产品在前端显示有货但在后端实际上缺货的情况。这种数据不一致可能会扰乱用户的旅程并损害转化率。
Tasin 分享的另一个重要场景是用户账户创建。正确的集成可确保当用户在前端注册并收到成功消息时,他们的帐户也在后端得到正确存储和验证。
缺少这些重要的后端更新通常会导致一些问题,例如在没有实际创建帐户的情况下收到注册成功通知。您可以想象登录或结账时会出现什么混乱。
这就是为什么确保前端和后端层之间的一致通信、验证数据库更改以及在前端进行正确的错误处理对于服务器端 QA 至关重要。
4. 使用功能开关来控制发布
功能标记可让您准确决定实验中谁可以在何时看到哪些内容。如果使用得当,它们的作用远不止切换功能:
确保您已建立系统,让您能够完全控制谁在何时看到什么,并将该系统与您的持续实时交付流程集成,让您可以在实时中使用完全相同的系统进行 QA 测试,然后再将任何内容展示给您的最终用户。
我只是基本描述了成熟的功能标记系统的关键功能,但还附加了作为 CD 系统一部分的功能(没有功能标记,任何功能都无法上线,包括修补程序)。
当它们提供的不仅仅是简单的“开/关切换”和键值存储时,我更喜欢称它们为远程功能管理系统。因为通过控制谁可以看到你的新开发,你可以非常轻松地锁定正在做 QA 的人,无论当时是在客户端还是服务器端。
额外提示:将您的 A/B 测试系统与其集成,您将拥有超能力 — 现在您可以逐步测试团队部署的所有内容,始终处于控制之下并以数据为驱动。世界上最好的 QA 系统。
我非常相信这一理念,我们在内部构建系统时就考虑到了这些功能,它使我们的交付速度从 8 提高到 80,减少了错误数量,而且团队的信心也增强了,因为从检测到的任何问题中回滚的时间从几小时到几天,由几秒缩短到几分钟。
我们近 50 个工程团队只用了不到 6 个月的时间就开始专门使用我们的系统,包括新代码和旧代码。
— Luis Trindade , Farfetch首席产品经理
如果您的 A/B 测试工具具有功能测试功能,那么这将是一个很大的优势,它允许您使用功能标志进行精细控制。样本 A:转换。
正如 Trindade 所指出的,这种方法显著提高了速度,减少了错误,并改变了处理部署的方式。
在几秒钟内(而不是几小时或几天)撤销更改的能力可以建立工程团队之间的信任,并有助于防止重大中断。
如果没有足够的数据,即使是最好的实验也会失败,从而导致误导性的见解或不确定的发现。
质量保证时应避免的错误
即使是最彻底的 QA 流程也可能出现常见错误,导致实验失败并产生不准确的结果。
以下是经验丰富的实验者向我们谈到的最常见的问题:
过度依赖自动化 QA 测试
尽快实现自动化是关键。它既节省时间,又减少人为错误,因此一旦您的流程建立起来,就尽可能地实现自动化。
— 汉娜·帕瓦兹
这是个不错的建议。尽可能自动化 QA,但不要忘记手动 QA 测试。
您可以自动执行重复检查(例如跨浏览器功能),但请务必手动测试自动化工具可能遗漏的极端情况和场景。特别注意用户交互,例如错误的表单提交或不稳定的点击。
重要提示:不要完全依赖 A/B 测试工具的 QA 或调试功能。它应该只是您工具箱中的一个工具。
永远不要相信 A/B 测试工具的 QA 模式;它永远不是 100% 可靠的。相反,将测试实时设置为特定的 cookie、URL 查询参数或其他任何内容。URL 查询参数效果很好,因为链接可以轻松共享。
— Amrdeep Athwal
Corey Trent 也对过度依赖自动化测试发出了警告:
虽然自动化 QA 工具可以节省查找高层次、明显问题的时间,但它们可能会让人产生错误的信心。这些工具通常会错过偶尔发生的问题或用户执行意外操作时出现的问题。
在错误的环境中进行 QA 测试
Corey 说你应该像真实用户一样尽可能多地进行测试:
不要登录任何 CMS、内部 IP(如果可能)或营销平台。登录后,许多 QA 环境或内容管理系统会将您的网站呈现为与生产环境不同的效果。我们多次看到,在这些环境中审核时,内容会通过 QA 检查,但在这些非生产环境中启动时,会发现先前 QA 中没有的多个问题。
内部沟通不畅
优化人员未能与 QA 和工程师建立合作关系,以为他们自然而然地了解要寻找什么,导致测试启动后才发现实施存在问题。这会导致失望和延误。
— 卡尔基·吉莱斯皮
Corey Trent 建议建立清晰的沟通渠道:
我们许多客户的网站代码都有多种更改方式,开发人员会更改网站、标签管理平台,甚至营销团队也会使用工具插入电子邮件模式或销售横幅。这些项目可能会以原始 QA 期间未曾见过的方式破坏您的测试代码。
当网站发生变化时,您的组织保持良好的沟通至关重要,如果需要,请快速进行简短的重新质量保证,以确保您的实时测试没有问题。
通常,我们建议始终维护一个人们可以查看的活动测试仪表板(例如,Trello 中的看板),并在内部任何人和地点实时推送更改时,通过聊天频道或电子邮件列表收到通知。
质量保证期间的范围蔓延
质量保证 (QA) 并不是临时抱佛脚的时候。
在 QA 阶段引入新需求可能会导致延迟和测试循环,这应该在初始规范中解决。
— 劳拉·福斯特
应该在初始规范中考虑到这些变化以避免出现瓶颈。
在质量保证期间坚持定义的范围以保持流程精简并避免不必要的复杂性。
降低 QA 优先级
Corey Trent 根据多年的优化经验,描绘了一幅当 QA 被搁置一旁时会发生什么的令人警醒的画面:
健全的 QA 协议是保证实验项目顺利进行的最重要的方面之一。我们曾多次看到,仅仅几个重大的 QA 失误就会导致组织对测试感到紧张,并成为任何性能问题的第一责任。
在极端情况下,我们甚至看到实验项目因风险而面临被关闭的危险。您无论如何都要避免这种情况,虽然这不是最有趣的工作,但 QA 对您的优化工作极为重要。
QA 测试技巧(客户端和服务器端)
在开始 QA 流程之前,让我们探讨三个基本注意事项:
1.不要忘记测试不同的用户状态
如果您的网站或移动应用程序有不同的用户状态(例如,会员等级、登录与注销),Corey 建议使用您的更改测试所有用例。
毋庸置疑,这些不同用户状态下的体验可能会有所不同,而这些不同可能不是立刻就能想到的。这可能会给您的实验增加一个混淆变量。
2. 不要将 QA 限制在已测试的元素上
彻底的 QA 不仅限于您立即做出的更改。Corey 强调测试整个用户旅程:
除了您所做的直接功能或网站更改之外,还要测试用户旅程中的其他关键事项。我们的许多客户都使用服务器端测试对网站或移动应用进行大规模结构更改(例如,新的搜索提供商、新的 CRM、推荐引擎、结帐流程等)。可能不太明显的是,这些更改与旅程的其他领域相互影响,而不仅仅是我们正在测试的直接页面。例如,如果我们正在测试一个新产品搜索引擎,当您将产品添加到购物车时,产品详细信息是否正确?是否使用了正确的产品图片?您是否可以购买您添加到购物车的产品,或者结帐是否出错?
3. 使用较慢的连接测试你的页面
当用户的网速较慢时,浏览器将项目加载到页面并完成它们的顺序可能会发生很大变化,这可能会导致测试代码出现问题。
根据经验,我们将使用 4G 互联网连接速度来测试体验,以确保不会出现任何问题。许多大型浏览器上的开发人员工具都提供此选项。在移动设备上,许多远程测试平台(如 BrowserStack 和DevTools)也允许您限制连接。
— 科里·特伦特
4. 确保网站流量充足,以获得可靠的结果
实验中最常见的A/B 测试陷阱之一是在没有足够的流量来生成具有统计意义的结果的情况下启动测试。
无论您的测试设计多么出色,如果没有足够多的用户接触它,它都无法给您有效的结论。
为了避免这种情况,请确保有足够的流量流经您的实验,以便进行有意义的分析。与您的变体互动的用户越多,您的结果就越清晰。
如果您的网站流量不足,还有其他方法可以优化您的网站。
了解更多:如何在低流量网站上进行 A/B 测试
Convert 的 QA 工具可实现无错误实验
了解更多:Convert 如何克服典型的 QA 挑战
在 Convert,我们提供一系列工具,帮助您轻松地将 QA 集成到您的工作流程中。
从调试脚本到测试真实条件下的变化,这些工具消除了猜测并使您更接近完美的实验执行。
质量检查覆盖
转换 QA 覆盖小部件
QA Overlay 集成到您的 Convert 实验摘要中,允许您直接在实时环境中验证实验。
该功能目前仅适用于 Chrome 浏览器(未来计划支持其他浏览器),需要以下内容:
已安装Convert Chrome 扩展程序
您网站上实施的最新转换跟踪脚本
转换 QA Overlay 先决条件
此小部件是变体预览选项的一部分,可让您通过链接访问不同的变体(同时带有二维码),以便您能够在各种设备上快速预览变体。然后,您可以在变体和原始版本之间切换(注意:在任何变体或原始版本之间切换时,需要重新加载页面)。
QA 覆盖预览链接和二维码
此链接还会将您带到一个浏览器窗口,您可以在其中查看当前正在运行的实验、受众、页面、目标、实时日志、项目 ID、有关变化的详细信息等——您在实时环境中进行 QA 实验所需的工具和数据。
例如,实时日志功能可以实时跟踪活跃的实验和目标,让您可以快速获得每个变化的状态报告。
状态概览会告知您集成的健康状况。您的跟踪代码是否安装正确?您的实验是否正在运行?代码片段是否同步?
但这还不是全部。您可以同时对不同的项目进行这些检查。这个可调整的 QA 覆盖面板将显示您当前正在运行的所有项目以及每次检查在会话到期前持续多长时间。
转换 QA Overlay 小部件以进行多个项目检查
QA Overlay 是可靠的 QA 盟友,它为您的工作提供有关实验的详细信息,以便您在实验实时运行时快速验证实验是否正常运行。
Chrome 调试器扩展
转换 chrome 调试器扩展以进行 QA 截图
Convert 的Chrome 调试器扩展程序会将详细日志输出到 Chrome 开发者工具控制台。它可以让您实时了解实验的运行情况。
您将看到触发了哪些实验和变化,以便您可以跟踪事件序列,从而实现更顺畅的调试过程。
在整个 QA 过程中使用此工具来验证您是否被归入正确的实验和变体。人们在这里常犯的一个错误是被归入原始变体并认为实验不起作用。但如果您在隐身模式下启用扩展程序,这将解决问题。
预览变体 URL
在 Convert QA 测试中预览变体 URL
在 Convert 的可视化编辑器中工作时,预览变体 URL 可让您在变体之间切换以查看其外观。它们不能替代实际的 QA。
由于它们不考虑站点区域或受众条件,预览 URL 只是一种验证设计更改的快速方法。
您会在可视化编辑器和报告仪表板中找到为每个变体生成的预览 URL,并标有眼睛图标以方便访问。
强制变体 URL
在 Convert QA 测试中强制使用变体 URL
这些 URL 可让您在与真实访客体验非常相似的环境中测试实验。强制变化 URL 会评估实验的条件(例如站点区域和受众),确保一切正常运行。
强制变体 URL 由用于实时访问者的同一 CDN 服务器提供,可提供真实的测试环境。这是确认您的实验已准备好启动且不会影响实际流量的最佳方法。
注意:使用最新的转换跟踪脚本时,您可以通过 QA Overlay 访问这些功能。使用旧版跟踪脚本时,可以使用强制变体 URL。
为 QA 受众使用查询参数
使用查询参数进行 QA 受众转换
Convert 可让您使用查询参数轻松将测试限制到特定受众。当您将 QA 受众添加到实验中时,您可以在内部运行测试,而无需将其暴露给外部用户。这样可以控制您的测试,确保没有访问者意外触发未完成的实验。
只需将查询参数(例如?utm_medium=qa)附加到您的实验网址,即可开始测试。打开一个新的隐身窗口可确保您每次会话都有干净的记录。
实时日志
转换实时日志
Convert 的实时日志可实时跟踪和显示用户与实验的互动。实时日志可从您的项目仪表板访问,让您深入了解目标何时触发、显示了哪些变体以及用户如何与实验互动。
您甚至可以深入了解用户的设备、浏览器和国家/地区等详细信息。
实时日志不仅可以帮助您监控转换,还可以验证您的设置并在问题升级之前调试任何问题。
简而言之
对实验进行质量保证对于提供可靠、可操作的见解至关重要。
无论您处理的是客户端变化还是复杂的服务器端逻辑,目标始终是相同的:确保您的实验按预期工作,捕获准确的数据并为用户提供无缝体验。
保存此清单,以便在未来的客户端和服务器端实验中进行质量保证:
您是否已记录理想的用户流程(快乐路径)和所有可能的边缘情况?团队中的每个人是否都对实验的运作方式达成了共识?
您是否已在所有相关设备、浏览器和网络条件下(包括较慢的连接)测试过实验?
您的测试受众定位是否正确?细分和排除规则是否正常运行?所有实验条件(网站区域、目标、定位)是否按预期配置?
您是否检查过动态内容或个性化元素是否根据用户类型、流量来源或其他变量按预期运行?
测试代码是否与页面上的其他元素顺畅交互?您是否检查过 JavaScript 和 CSS 更改不会破坏不相关的功能或跟踪像素?
在版本之间切换时是否有闪烁效果?字体、颜色和布局在各个版本之间是否一致?您是否检查过加载时间是否存在明显差异?
是否有其他测试同时运行,可能会干扰您的结果?您是否考虑过销售高峰或节假日等可能影响数据的外部因素?
测试上线后,您是否重复了 QA 步骤?您是否在监控实时环境以发现生产中出现的任何问题?
对于服务器端 QA,您是否已明确定义实验顺利运行所需的事件顺序、API 调用和条件?
您是否已多次测试实验以确保不存在以错误顺序发生事件的竞争条件?
您的数据跟踪是否准确?您是否手动验证了收集的数据是否正确并反映在仪表板上?
前端是否与后端正确通信?表单提交和购物车添加等用户操作是否准确反映在后端数据中?
您是否使用功能标记逐步推出实验并控制哪些用户可以接触到该实验?如果需要,
服务器端实验的质量保证清单
在这里,我们将进行测试以确保每个后端流程(从 API 调用到数据存储)都按设计运行。这就是您保证服务器端实验在实际条件下准确、可靠且有弹性的方法。
1. 定义测试用例并指定事件顺序
在开始 QA 之前,请清楚地概述测试将 美国手机号 遵循的事件顺序,从第一个 API 调用到最终的数据存储。
为每个测试定义测试用例并指定事件序列、API 调用和可在视口中查看的元素,将为您的 QA 团队提供尽早发现错误所需的一切。
— 卡尔基·吉莱斯皮
这意味着考虑用户将看到哪些元素、服务器将如何处理请求,以及确保每个步骤按照正确的顺序进行。
例如,如果您正在测试新的推荐引擎,您将需要定义获取数据的精确 API 调用、触发这些调用的用户操作以及预期的服务器响应。
如果没有这种详细的蓝图,您的 QA 团队就只能猜测,而错误就可能被忽略。将所有内容都放在流程图中可以加快 QA 流程,并确保每个操作和步骤都得到考虑。
2. 确保精确测量和准确的数据跟踪
K2 Cyber 的 Ken Hanson 说得最好:在批准服务器端测试之前,最重要的是测量的精度。
这通常是拆分测试时大多数令人头痛的罪魁祸首,并且可能导致整个实验需要重新启动,浪费宝贵的时间,并且(如果不被发现)可能会导致做出错误的决定。
一旦进入服务器端,这种风险就会比正常情况下高一些,因为跟踪流程开始遇到自定义代码。
为了完全自信,我喜欢从简单到复杂,并通过手动验证来完成。这可能很辛苦,但如果你曾经不得不放弃一个实验,这是值得的。
我发现通过设置“洁净室”环境来进行手动验证要容易得多,在该环境中,我将测试隔离到只有我能到达的路径,或者与开发人员合作为我提供强制执行操作的钩子。
只有当我对自己的手动验证有信心时,我才会添加团队成员参与 QA 工作。
在此手动验证过程中,重要的事情是手动记录您的数字,以便您可以独立验证仪表板上看到的内容。
— 肯·汉森
Convincify 的 Corey Trent 指出了测试人员的另一个重要考虑因素:如果您对网站进行大规模流量更改,请确保这些修改不会破坏付费营销团队跟踪网站目标的方式,也不会破坏分析报告。
如果您要运行重定向测试,请收集测试体验中最复杂的几个 URL。例如,包含许多付费搜索跟踪查询参数的页面 URL,并确保您的重定向逻辑保持链接完整。例如
www.yoursite.com/test-page?fbclid=24929 ... liwf
我们发现有人在进行重定向测试时遇到了麻烦,他们的设置/代码会破坏指向页面的流量,因为 URL 上可能带有额外的查询参数。
3. 确保正确的前后端集成
对于全栈 QA,测试前端和后端如何交互是一个基础过程。
EchoLogyx首席运营官Tasin Reza表示,一个常见的陷阱是前端操作(例如将产品添加到购物车或提交帐户详细信息)不能正确反映后端更新。
例如,在测试“添加到购物车”功能时,前端必须显示正确的产品详细信息(例如名称、价格和数量),而后端必须准确更新库存水平并确保数据库的一致性。
当这些操作不同步时,我们会遇到产品在前端显示有货但在后端实际上缺货的情况。这种数据不一致可能会扰乱用户的旅程并损害转化率。
Tasin 分享的另一个重要场景是用户账户创建。正确的集成可确保当用户在前端注册并收到成功消息时,他们的帐户也在后端得到正确存储和验证。
缺少这些重要的后端更新通常会导致一些问题,例如在没有实际创建帐户的情况下收到注册成功通知。您可以想象登录或结账时会出现什么混乱。
这就是为什么确保前端和后端层之间的一致通信、验证数据库更改以及在前端进行正确的错误处理对于服务器端 QA 至关重要。
4. 使用功能开关来控制发布
功能标记可让您准确决定实验中谁可以在何时看到哪些内容。如果使用得当,它们的作用远不止切换功能:
确保您已建立系统,让您能够完全控制谁在何时看到什么,并将该系统与您的持续实时交付流程集成,让您可以在实时中使用完全相同的系统进行 QA 测试,然后再将任何内容展示给您的最终用户。
我只是基本描述了成熟的功能标记系统的关键功能,但还附加了作为 CD 系统一部分的功能(没有功能标记,任何功能都无法上线,包括修补程序)。
当它们提供的不仅仅是简单的“开/关切换”和键值存储时,我更喜欢称它们为远程功能管理系统。因为通过控制谁可以看到你的新开发,你可以非常轻松地锁定正在做 QA 的人,无论当时是在客户端还是服务器端。
额外提示:将您的 A/B 测试系统与其集成,您将拥有超能力 — 现在您可以逐步测试团队部署的所有内容,始终处于控制之下并以数据为驱动。世界上最好的 QA 系统。
我非常相信这一理念,我们在内部构建系统时就考虑到了这些功能,它使我们的交付速度从 8 提高到 80,减少了错误数量,而且团队的信心也增强了,因为从检测到的任何问题中回滚的时间从几小时到几天,由几秒缩短到几分钟。
我们近 50 个工程团队只用了不到 6 个月的时间就开始专门使用我们的系统,包括新代码和旧代码。
— Luis Trindade , Farfetch首席产品经理
如果您的 A/B 测试工具具有功能测试功能,那么这将是一个很大的优势,它允许您使用功能标志进行精细控制。样本 A:转换。
正如 Trindade 所指出的,这种方法显著提高了速度,减少了错误,并改变了处理部署的方式。
在几秒钟内(而不是几小时或几天)撤销更改的能力可以建立工程团队之间的信任,并有助于防止重大中断。
如果没有足够的数据,即使是最好的实验也会失败,从而导致误导性的见解或不确定的发现。
质量保证时应避免的错误
即使是最彻底的 QA 流程也可能出现常见错误,导致实验失败并产生不准确的结果。
以下是经验丰富的实验者向我们谈到的最常见的问题:
过度依赖自动化 QA 测试
尽快实现自动化是关键。它既节省时间,又减少人为错误,因此一旦您的流程建立起来,就尽可能地实现自动化。
— 汉娜·帕瓦兹
这是个不错的建议。尽可能自动化 QA,但不要忘记手动 QA 测试。
您可以自动执行重复检查(例如跨浏览器功能),但请务必手动测试自动化工具可能遗漏的极端情况和场景。特别注意用户交互,例如错误的表单提交或不稳定的点击。
重要提示:不要完全依赖 A/B 测试工具的 QA 或调试功能。它应该只是您工具箱中的一个工具。
永远不要相信 A/B 测试工具的 QA 模式;它永远不是 100% 可靠的。相反,将测试实时设置为特定的 cookie、URL 查询参数或其他任何内容。URL 查询参数效果很好,因为链接可以轻松共享。
— Amrdeep Athwal
Corey Trent 也对过度依赖自动化测试发出了警告:
虽然自动化 QA 工具可以节省查找高层次、明显问题的时间,但它们可能会让人产生错误的信心。这些工具通常会错过偶尔发生的问题或用户执行意外操作时出现的问题。
在错误的环境中进行 QA 测试
Corey 说你应该像真实用户一样尽可能多地进行测试:
不要登录任何 CMS、内部 IP(如果可能)或营销平台。登录后,许多 QA 环境或内容管理系统会将您的网站呈现为与生产环境不同的效果。我们多次看到,在这些环境中审核时,内容会通过 QA 检查,但在这些非生产环境中启动时,会发现先前 QA 中没有的多个问题。
内部沟通不畅
优化人员未能与 QA 和工程师建立合作关系,以为他们自然而然地了解要寻找什么,导致测试启动后才发现实施存在问题。这会导致失望和延误。
— 卡尔基·吉莱斯皮
Corey Trent 建议建立清晰的沟通渠道:
我们许多客户的网站代码都有多种更改方式,开发人员会更改网站、标签管理平台,甚至营销团队也会使用工具插入电子邮件模式或销售横幅。这些项目可能会以原始 QA 期间未曾见过的方式破坏您的测试代码。
当网站发生变化时,您的组织保持良好的沟通至关重要,如果需要,请快速进行简短的重新质量保证,以确保您的实时测试没有问题。
通常,我们建议始终维护一个人们可以查看的活动测试仪表板(例如,Trello 中的看板),并在内部任何人和地点实时推送更改时,通过聊天频道或电子邮件列表收到通知。
质量保证期间的范围蔓延
质量保证 (QA) 并不是临时抱佛脚的时候。
在 QA 阶段引入新需求可能会导致延迟和测试循环,这应该在初始规范中解决。
— 劳拉·福斯特
应该在初始规范中考虑到这些变化以避免出现瓶颈。
在质量保证期间坚持定义的范围以保持流程精简并避免不必要的复杂性。
降低 QA 优先级
Corey Trent 根据多年的优化经验,描绘了一幅当 QA 被搁置一旁时会发生什么的令人警醒的画面:
健全的 QA 协议是保证实验项目顺利进行的最重要的方面之一。我们曾多次看到,仅仅几个重大的 QA 失误就会导致组织对测试感到紧张,并成为任何性能问题的第一责任。
在极端情况下,我们甚至看到实验项目因风险而面临被关闭的危险。您无论如何都要避免这种情况,虽然这不是最有趣的工作,但 QA 对您的优化工作极为重要。
QA 测试技巧(客户端和服务器端)
在开始 QA 流程之前,让我们探讨三个基本注意事项:
1.不要忘记测试不同的用户状态
如果您的网站或移动应用程序有不同的用户状态(例如,会员等级、登录与注销),Corey 建议使用您的更改测试所有用例。
毋庸置疑,这些不同用户状态下的体验可能会有所不同,而这些不同可能不是立刻就能想到的。这可能会给您的实验增加一个混淆变量。
2. 不要将 QA 限制在已测试的元素上
彻底的 QA 不仅限于您立即做出的更改。Corey 强调测试整个用户旅程:
除了您所做的直接功能或网站更改之外,还要测试用户旅程中的其他关键事项。我们的许多客户都使用服务器端测试对网站或移动应用进行大规模结构更改(例如,新的搜索提供商、新的 CRM、推荐引擎、结帐流程等)。可能不太明显的是,这些更改与旅程的其他领域相互影响,而不仅仅是我们正在测试的直接页面。例如,如果我们正在测试一个新产品搜索引擎,当您将产品添加到购物车时,产品详细信息是否正确?是否使用了正确的产品图片?您是否可以购买您添加到购物车的产品,或者结帐是否出错?
3. 使用较慢的连接测试你的页面
当用户的网速较慢时,浏览器将项目加载到页面并完成它们的顺序可能会发生很大变化,这可能会导致测试代码出现问题。
根据经验,我们将使用 4G 互联网连接速度来测试体验,以确保不会出现任何问题。许多大型浏览器上的开发人员工具都提供此选项。在移动设备上,许多远程测试平台(如 BrowserStack 和DevTools)也允许您限制连接。
— 科里·特伦特
4. 确保网站流量充足,以获得可靠的结果
实验中最常见的A/B 测试陷阱之一是在没有足够的流量来生成具有统计意义的结果的情况下启动测试。
无论您的测试设计多么出色,如果没有足够多的用户接触它,它都无法给您有效的结论。
为了避免这种情况,请确保有足够的流量流经您的实验,以便进行有意义的分析。与您的变体互动的用户越多,您的结果就越清晰。
如果您的网站流量不足,还有其他方法可以优化您的网站。
了解更多:如何在低流量网站上进行 A/B 测试
Convert 的 QA 工具可实现无错误实验
了解更多:Convert 如何克服典型的 QA 挑战
在 Convert,我们提供一系列工具,帮助您轻松地将 QA 集成到您的工作流程中。
从调试脚本到测试真实条件下的变化,这些工具消除了猜测并使您更接近完美的实验执行。
质量检查覆盖
转换 QA 覆盖小部件
QA Overlay 集成到您的 Convert 实验摘要中,允许您直接在实时环境中验证实验。
该功能目前仅适用于 Chrome 浏览器(未来计划支持其他浏览器),需要以下内容:
已安装Convert Chrome 扩展程序
您网站上实施的最新转换跟踪脚本
转换 QA Overlay 先决条件
此小部件是变体预览选项的一部分,可让您通过链接访问不同的变体(同时带有二维码),以便您能够在各种设备上快速预览变体。然后,您可以在变体和原始版本之间切换(注意:在任何变体或原始版本之间切换时,需要重新加载页面)。
QA 覆盖预览链接和二维码
此链接还会将您带到一个浏览器窗口,您可以在其中查看当前正在运行的实验、受众、页面、目标、实时日志、项目 ID、有关变化的详细信息等——您在实时环境中进行 QA 实验所需的工具和数据。
例如,实时日志功能可以实时跟踪活跃的实验和目标,让您可以快速获得每个变化的状态报告。
状态概览会告知您集成的健康状况。您的跟踪代码是否安装正确?您的实验是否正在运行?代码片段是否同步?
但这还不是全部。您可以同时对不同的项目进行这些检查。这个可调整的 QA 覆盖面板将显示您当前正在运行的所有项目以及每次检查在会话到期前持续多长时间。
转换 QA Overlay 小部件以进行多个项目检查
QA Overlay 是可靠的 QA 盟友,它为您的工作提供有关实验的详细信息,以便您在实验实时运行时快速验证实验是否正常运行。
Chrome 调试器扩展
转换 chrome 调试器扩展以进行 QA 截图
Convert 的Chrome 调试器扩展程序会将详细日志输出到 Chrome 开发者工具控制台。它可以让您实时了解实验的运行情况。
您将看到触发了哪些实验和变化,以便您可以跟踪事件序列,从而实现更顺畅的调试过程。
在整个 QA 过程中使用此工具来验证您是否被归入正确的实验和变体。人们在这里常犯的一个错误是被归入原始变体并认为实验不起作用。但如果您在隐身模式下启用扩展程序,这将解决问题。
预览变体 URL
在 Convert QA 测试中预览变体 URL
在 Convert 的可视化编辑器中工作时,预览变体 URL 可让您在变体之间切换以查看其外观。它们不能替代实际的 QA。
由于它们不考虑站点区域或受众条件,预览 URL 只是一种验证设计更改的快速方法。
您会在可视化编辑器和报告仪表板中找到为每个变体生成的预览 URL,并标有眼睛图标以方便访问。
强制变体 URL
在 Convert QA 测试中强制使用变体 URL
这些 URL 可让您在与真实访客体验非常相似的环境中测试实验。强制变化 URL 会评估实验的条件(例如站点区域和受众),确保一切正常运行。
强制变体 URL 由用于实时访问者的同一 CDN 服务器提供,可提供真实的测试环境。这是确认您的实验已准备好启动且不会影响实际流量的最佳方法。
注意:使用最新的转换跟踪脚本时,您可以通过 QA Overlay 访问这些功能。使用旧版跟踪脚本时,可以使用强制变体 URL。
为 QA 受众使用查询参数
使用查询参数进行 QA 受众转换
Convert 可让您使用查询参数轻松将测试限制到特定受众。当您将 QA 受众添加到实验中时,您可以在内部运行测试,而无需将其暴露给外部用户。这样可以控制您的测试,确保没有访问者意外触发未完成的实验。
只需将查询参数(例如?utm_medium=qa)附加到您的实验网址,即可开始测试。打开一个新的隐身窗口可确保您每次会话都有干净的记录。
实时日志
转换实时日志
Convert 的实时日志可实时跟踪和显示用户与实验的互动。实时日志可从您的项目仪表板访问,让您深入了解目标何时触发、显示了哪些变体以及用户如何与实验互动。
您甚至可以深入了解用户的设备、浏览器和国家/地区等详细信息。
实时日志不仅可以帮助您监控转换,还可以验证您的设置并在问题升级之前调试任何问题。
简而言之
对实验进行质量保证对于提供可靠、可操作的见解至关重要。
无论您处理的是客户端变化还是复杂的服务器端逻辑,目标始终是相同的:确保您的实验按预期工作,捕获准确的数据并为用户提供无缝体验。
保存此清单,以便在未来的客户端和服务器端实验中进行质量保证:
您是否已记录理想的用户流程(快乐路径)和所有可能的边缘情况?团队中的每个人是否都对实验的运作方式达成了共识?
您是否已在所有相关设备、浏览器和网络条件下(包括较慢的连接)测试过实验?
您的测试受众定位是否正确?细分和排除规则是否正常运行?所有实验条件(网站区域、目标、定位)是否按预期配置?
您是否检查过动态内容或个性化元素是否根据用户类型、流量来源或其他变量按预期运行?
测试代码是否与页面上的其他元素顺畅交互?您是否检查过 JavaScript 和 CSS 更改不会破坏不相关的功能或跟踪像素?
在版本之间切换时是否有闪烁效果?字体、颜色和布局在各个版本之间是否一致?您是否检查过加载时间是否存在明显差异?
是否有其他测试同时运行,可能会干扰您的结果?您是否考虑过销售高峰或节假日等可能影响数据的外部因素?
测试上线后,您是否重复了 QA 步骤?您是否在监控实时环境以发现生产中出现的任何问题?
对于服务器端 QA,您是否已明确定义实验顺利运行所需的事件顺序、API 调用和条件?
您是否已多次测试实验以确保不存在以错误顺序发生事件的竞争条件?
您的数据跟踪是否准确?您是否手动验证了收集的数据是否正确并反映在仪表板上?
前端是否与后端正确通信?表单提交和购物车添加等用户操作是否准确反映在后端数据中?
您是否使用功能标记逐步推出实验并控制哪些用户可以接触到该实验?如果需要,