阿里 P8 测试被裁后,面试了 3 家软件测开工作。面试官:非功能测试包含啥?怎么保证稳定性吗?我:合着在面试 SRE!

哎,实话说,今年的互联网及软件行业真的挺难得,但是对于那种会开发,懂底层的开发人员真的还是不愁找工作,但是对于只会点点点的测试人员真的没法活了,现在你去面试根本没人问你一些测试方法论,直接就是开发相关的工作,甚至远远高于开发,比如会问非功能软件测试,性能测试,怎么保证稳定性?线上监控告警指标怎么做?碰到线上问题应该如何处理?刚开始有点一脸懵逼,这不是开发和运维相关的工作吗?没办法,就是卷,分享一点最近的心得。

在当今快节奏的软件开发领域,测试人员不仅注重确保应用程序执行预期的功能,还努力保证其在各种条件下的可靠性。这就是非 功能测试的作用 所在。非功能测试侧重于评估与特定功能无关但对于为用户提供无缝体验同样重要的软件方面。这些方面包括性能、安全性、可用性和可扩展性。

在众多类型的非功能测试中, 性能测试、 负载测试和 压力测试 是其中最重要的一些。它们有助于确保软件能够处理真实世界的流量、提供最佳响应时间并在意外情况下保持弹性。

1.1

   

什么是非功能测试?

非功能测试评估软件在以下属性方面的行为:

  • 性能:系统在特定负载下的表现如何?

  • 可扩展性:系统能多好地增长并处理不断增长的需求?

  • 安全性:该应用程序抵御各种类型的攻击的安全性如何?

  • 可用性:系统是否用户友好且直观?

功能测试验证系统的正确性,而非功能测试确保软件满足实际使用期望,为用户提供最佳体验。

1.2

   

性能、负载和压力测试的重要性

让我们深入了解三种主要的非功能测试类型: 性能测试、 负载测试和 压力测试。

1.性能测试

性能测试旨在评估应用程序在正常条件下的表现。它测量应用程序在典型用户负载下的响应时间、稳定性和整体行为。

真实示例: 想象一下季节性促销期间的电子商务网站。如果网站的性能不佳,用户可能会遇到加载时间缓慢、交易失败甚至网站崩溃的情况。为了避免这种情况,需要对网站进行性能测试,以模拟正常流量并确保其符合所需的性能标准。

好处:识别系统中可能导致延迟的瓶颈。确保系统提供最佳响应时间,从而提高用户满意度。有助于提高资源利用率并优化系统效率。

2.负载测试

负载测试模拟预期的用户数量,以确定应用程序在特定负载下的性能。它有助于了解系统在变得不稳定或性能开始下降之前可以处理多少流量。

真实示例: 考虑在直播活动期间使用流行的社交媒体平台。负载测试可以模拟数千或数百万并发用户访问平台观看直播。这可确保系统能够处理高流量,而不会影响性能或崩溃。

好处:评估系统处理预期用户流量的能力。防止停机并确保系统可以适应流量高峰。提供对系统可扩展性的洞察并帮助做出容量规划决策。

3.压力测试

压力测试超越了典型的负载场景,涉及将系统推向极限。这有助于确定系统在极端条件下的行为方式。目标是确定临界点并确保应用程序能够从崩溃或故障中正常恢复。

真实示例: 在线银行应用程序可能会接受压力测试,以模拟数百万用户试图同时访问其帐户的情况,例如在发薪日。压力测试揭示了当流量超过其最大容量时系统如何表现,以及负载减少后系统是否可以恢复。

好处:

帮助识别系统的断点和恢复机制。防止现实极端情况下的系统故障。提供有关提高弹性、容错能力和系统稳定性的见解。

1.3

   

性能、负载和压力测试如何有益于软件开发

将性能、负载和压力测试集成到软件开发生命周期 (SDLC) 中具有多种优势,可确保应用程序已准备好投入实际使用。

1.改善用户体验没有人喜欢等待页面加载或在交易过程中遇到延迟。非功能测试可确保软件应用程序为用户提供流畅、快速且响应迅速的体验。通过进行负载和性能测试,团队可以优化系统的响应时间并避免令人沮丧的减速。

2.节省成本在开发过程中尽早发现性能瓶颈,可以提前修复,避免日后出现代价高昂的问题。这有助于组织避免因性能不佳而导致代价高昂的停机、收入损失和客户流失。

3.增强的可扩展性通过负载测试,开发人员可以深入了解系统的可扩展性。这有助于确保应用程序能够处理未来的增长,无论是更多用户、更大的数据集还是更复杂的事务。规划可扩展性可确保您的应用程序可以继续增长而不会遇到性能问题。

4.提高可靠性和稳定性压力测试可确保应用程序能够处理意外的高流量而不会崩溃。通过测试系统在极端条件下的稳定性,团队可以发现压力下可能出现的隐藏问题并努力消除它们。

1.4

   

便于理解的图表

1.负载测试:

想象一下下图所示,它代表了 销售期间对电子商务网站的负载测试。X 轴表示并发用户数,Y 轴表示响应时间(以秒为单位)。随着更多用户的加入,响应时间逐渐增加,但系统保持稳定,直到达到临界阈值。

2.压力测试:

在 压力测试中,图表可能看起来像这样。随着用户数量超出系统容量,响应时间急剧增加,达到故障点后,系统崩溃。

1.5

   

结论

非功能测试,尤其是性能、负载和压力测试,对于确保软件应用程序提供高性能和可靠性至关重要。通过模拟真实条件和压力场景,这些测试方法有助于识别瓶颈、优化系统效率并提高可扩展性。最终,它们可以增强用户体验、降低运营风险并有助于软件产品的长期成功。

通过在开发生命周期的早期阶段整合这些测试,公司可以确保他们构建的软件不仅满足功能要求,而且在各种条件下都能高效运行。非功能测试不仅仅是一种奢侈——在竞争激烈的数字世界中,它是一种必需品。

随手关注或者”在看“,诚挚感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spring_java_gg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值