对产品进行质量检查。 为什么很酷

许多人认为在生产环境上进行测试是有害的做法:它无助于防止问题传给最终用户,而是指出存在问题。 此外,测试人员脱离了测试环境中使用的标准工作流程和技术。 我叫Olya Mikhalchuk,我是金融科技公司ID Finance的质量检查工程师。 在这篇文章中,我将解释为什么对产品进行测试可以极大地帮助您的项目。

图片

如果存在预生产环境,为什么需要对产品进行质量检查


在软件开发过程中,总是有多个环境可在其中部署应用程序。 众所周知,最终用户使用的环境称为生产环境。 通常,假定应该在单独的环境中进行测试,通常是在QA环境或暂存(预生产)中进行,以防止错误传给用户。 但是在产品上有QA这样的技术,它可以完美地解决在测试环境中物理上无法解决的问题。

图片

产品质量检查有助于执行哪些任务


1.登台环境和生产环境之间的差异问题。

登台通常被认为是生产环境的副本,最终用户无法访问它,但与战斗环境最相似。 当应用程序非常复杂时,同步和维护这种小型副本将成为一项耗时且不总是合理的任务。

例如,在我们的项目中,pre-prod在手工制作的测试场景中更多地用于功能测试。 它没有可与生产环境相比的技术资源。 另外,我们通常不会将配置和数据库与生产环境完全同步,这不会影响功能测试。 我们为什么不复制产品环境? 想象一下,用与生产时相同的超强大服务器,服务,数据库和配置来创建Facebook副本需要多少资源。 实际上,这就是部署相同类型的另一个应用程序的方法。

此外,与第三方服务集成时,您始终会为测试和战斗环境使用不同的设置(相同的API)。 我并不是说测试和暂存环境毫无意义。 不可能100%保证在一个环境中成功完成某些测试后,服务不会落在另一个环境上。 额外的生产测试可以帮助解决此问题。

图片

2.真正的多任务处理和负载水平。

某些错误只能在长期的实际多任务处理和工作负载水平下才能检测到。 这适用于内存泄漏,系统稳定性,速度和稳定性。 例如,由于在相同的时间间隔内执行两个资源密集型任务,因此出现了系统性能问题。 开发人员优化了任务的工作,团队在预生产环境上进行了测试,交付了更改,然后进行了生产检查。

3.部署错误

根据定义,部署是由工作组在生产基础架构中安装新版本的服务程序代码。 因此,查看部署错误的最佳方法是通过在部署过程本身中进行测试。

4.缺乏对生产前产品的监控

像我们期望的那样,控制应用程序正常运行的最佳且必不可少的方法之一就是监视某些指标。 例如,从最简单,最关键的例子来看:每小时监视新用户注册的数量,从一种目标操作转换为另一种目标操作,以及发放的贷款数量。 当然,这种监视仅在战斗环境中才有意义。

5.分析使用系统的最终用户方案能力

生产-测试人员测试用例的仓库。 如果可能的话,测试人员可以查看和处理最终用户使用的脚本,测试人员可以识别最关键的情况,或者找出缺陷的原因,或者在预生产产品上进行测试时注意不重要的情况。

6.维护更可靠的软件质量统计数据和度量标准的能力。

例如,与来自测试环境的相同报告相比,应用程序或组件的日志,错误报告和其他测试人员可以执行的报告中的错误数量更加真实地证明了软件的质量。

7.如果“您的”测试人员发现产品上的错误比最终用户注意到总是更好。

通常,任务交付后,测试人员会对产品上的新功能或更改的功能进行基本检查。 此外,我们公司中还有一个独立的人-产品测试人员。 我要再次指出,我不对产品进行质量检查来代替生产前测试,当然,有必要防止错误并采取预防措施。 但是,在确保项目质量的过程中,这种测试可能是一项很棒的附加技术。

图片

有效的生产质量检查实践,可有效地在我们的项目中发挥作用

1.检查已交付的任务,以确保它们已正确建立并在新环境中正常工作。

例如,当我们引入与新合作伙伴的集成时,除了对前产品的测试外,我们肯定会在交付后检查集成,因为根据环境(API,URL,组件)有很多设置。 还有第三方的问题-错误不在我们这边,而是在集成服务方面。

2.记录和审核。

良好的日志记录可以帮助开发人员和测试人员甚至在最终用户猜测问题之前就注意到问题,并注意到需要优化的地方。 通过对操作和更改的审核,我们可以始终找出特定行为的原因,而不会出现任何问题。 例如,如果信贷政策的某个组成部分无法对贷款做出决定,为了分析这种情况发生的原因,我们首先转向日志。 此项目适用于生产和预生产环境。

3.监测预警系统

正如我上面提到的,通过某些指标进行监视是控制应用程序一切正常的最佳方法之一。 此外,如果有任何问题,您必须向相关方发送警报(例如,贷款申请的数量比预期少20%-我们将向IT和业务部门发送警报,CPU负载超出正常水平-通知管理员和处女)。 必须确保有关问题的警报是及时且相关的,并能真正指示问题。

4.回归和稳定性检查

一个不错的做法是定期进行回归测试,以确保在任何地方都不会出错。 当监控没有发现问题时,它可以在某些狭窄和特定的情况下提供帮助。

5.报告与统计

像在任何测试中一样,对产品测试结果的报告和统计信息使过程更加透明,软件质量和缺陷原因更加明显。

所有错误都无法在预生产产品上检测到,因此它们将落入战斗环境。 如果用户找到它们,将影响公司的声誉,并最终影响金钱损失。 对产品进行测试将有助于防止这种情况。

Source: https://habr.com/ru/post/zh-CN446940/


All Articles