以我的有限经验,配置更改(对项目配置文件的1-3行小的更改)会完全破坏程序,或者似乎不会给用户体验带来明显的变化。


作为质量检查人员,我应该担心开发人员告诉质量检查人员说,小型配置部署仅需要进行粗略的冒烟测试吗?
是否可以通过配置更改引入任何隐式,更讨厌和间歇性的错误类型?

我想成为一名全面的质量检查贡献者,但也希望我的团队的开发人员能够快速完成部署和CI流程。

这是引起我问题的特殊变化:

来自

<add key="LightningQueueSettings.OldestMessageInProcessedHistory" 
value="10m" />




<add key="LightningQueueSettings.MapSize" value="1073741824" />


这发生在JasperService.exe.config文件。此更改使来自数据库的大量消息传播到此队列(该队列已溢出)。

评论

我们可以提供更多细节吗?它有多“小”?您为什么认为它是“小”?

我认为它“很小”,因为它似乎没有触及其他代码。我需要对此JasperService进行更多的研究,但是由于我是团队的新手,由于我的无知,我不想停止部署。

由于这是一个完全不同的键,因此看起来它可能会碰到稍微不同的代码路径来确定要处理哪些记录的队列。如果您尚未测试MapSize设置的功能,则可能至少需要进行一些测试,以验证此设置是否符合所有人的预期。 。 。

#1 楼

这完全取决于您要配置的内容以及配置机制本身是否已经过测试。

如果它很小,例如超时间隔,重试次数等,那么我同意在更改prod中的配置之前可能不需要全面测试。

另一方面,如果它更大/更危险(例如,将数据库连接字符串更改为新实例),则可以使用新配置对其进行练习。即使在这种情况下,如果之前进行了测试,则如果您已验证数据库副本正确(即所有数据均已存在,存储的proc,ACL等),则烟雾测试就足够了。

所有有关风险的衡量。我的直觉是,随着人们转向更多的跨职能团队,嵌入式测试人员等,对于低风险或高风险以及可能需要哪种测试,应该达成共识。听起来您似乎仍会扮演网守的角色,这很好。如果您不同意团队,如果您认为存在重大风险,只需确保升起国旗。

#2 楼

我认为您的问题是:
在未经测试的情况下推送小型配置部署时,应为软件中的QA担心什么?
已经包含答案:
在推送小型配置部署时未经测试,就应该担心软件的质量检查。实际上,“小改变,不应该影响任何事情”现在是我要测试的触发词。当然,在大多数情况下,您可能不需要测试就可以了,但是一次破了……对您的业务而言可能是灾难性的……正如许多公司发现的那样,并且几乎每天都有新闻发布,通常使用“由于测试不足,发生了x,y,z”。
在发布未经测试的部署更改的软件时,可能会破坏的一些区域:

脚本
会话
资产显示
身份验证
依赖项
代码编译
资产编译
性能问题


#3 楼

我见过很多次微小的,看似微不足道的更改导致应用程序损坏。

无论更改的大小如何,您都有一个新版本的应用程序-应该是经过与其他任何更改一样的全面测试。


解决注释

根据应用程序的大小和重要性,已建立的持续构建和测试实践以及可用资源,测试每个发行版本可能会或可能不会切合实际。但是,如果它不会减慢开发周期,那么就不要以潜在的影响来区分变化。

评论


彻底测试每个更改将使开发停顿。在关键的应用程序中有意义,但在免费服务中却没有意义。如果有任何问题暗示着开发文化存在问题-变更未得到审查,则没有健全性检查等。

–Rsf
17年7月8日在5:15

@Rsf不一定要停下来,这取决于应用程序的大小,构建和测试过程,更改发生的频率等。我只是想强调“微小的更改可能会产生重大影响”的重要性,没有别的。

– alecxe♦
17年7月8日在5:20

重点应该放在测试每个发行版上。如果一个版本包含25个变更,但并不意味着每次都要进行测试,则可以运行一组用户接受测试以一次涵盖所有这些测试。话虽如此,这25项更改中的每项更改都应伴随单元测试。

–迈克尔·杜兰特(Michael Durrant)
17年7月8日在11:02

同样,大多数测试应该自动化,以帮助解决速度和周转问题。

–迈克尔·杜兰特(Michael Durrant)
17年7月8日在11:10

#4 楼

OP:您似乎将自己在质量检查中的角色视为质量保证。那是错的。您从事质量协助业务。

您的作用是保持所有利益相关方之间的沟通,以便倾听各方的关注并管理风险。您不必决定配置是否太琐碎而无法测试:有些人具有更多相关的信息和技能:您的开发人员,您的系统和数据库管理员等。您的角色是确保所有利益相关者都同意风险级别和业务正在接受他们的决定,同时遵循开发,测试和部署错误修复过程的所有步骤(或者出于有效的业务原因而授予例外)。利益相关者一致认为,无需进行测试,通常在进行质量检查时,您可能需要进行一些测试。以我的经验,这样的测试不只一次发现了一个真正的错误。 :-)这与使您的应用程序具有“感觉”更为相关,因为它知道可能存在漏洞的暗角。或者您知道有些开发人员可以进行更好的自己的测试,而另一些开发人员则更多地依靠质量检查来测试应用程序的性能。