什么是回归测试及其重要性?

回归测试是一种系统范围的测试,旨在确保系统某个部分的微小变化不会破坏系统中其他地方的现有功能。这很重要,因为没有回归测试,很有可能将预期的修复程序引入到一个系统中,这个系统会产生比他们解决的问题更多的问题。

让我们看一个虚构的例子,说明在不使用回归测试时会发生什么。

什么可能出错?

有一天,Acme Widgets应收账款部门的经理发现了公司财务系统中的一个错误。事实证明,负责报告逾期发票的模块未列出所有逾期发票。编写了一张Jira票据,描述了该错误以及有关如何复制问题的说明。该错误已分配给进行修复的开发人员。

开发人员遵循公司政策和单位测试新代码。单元测试证明该修复工作符合预期的效果。

一旦开发人员在Jira中报告错误被修复,QA就会查看通过单元测试,以确保开发人员遵循公司的代码覆盖策略。此外,QA测试人员还运行了安装新代码的测试系统,以确保修复按预期工作。测试代码按预期在测试系统上运行。

修复程序已发布到生产中。到现在为止还挺好。

一周过去了。然后,当会计部门试图运行公司的月末损益表时,会发生奇怪的行为。每当系统尝试发出老化报告时,系统就会超时。(年龄报告根据年龄 - 当前,逾期30天,逾期60天,逾期90天,超过90天)对发票金额进行分类和汇总。)

混乱在Acme Widgets爆发。如果没有月末的损益表,该公司不知道它是赚钱还是赔钱。会计部门很不高兴。该系统在上个月运作良好。现在它已经坏了。会计经理与软件开发经理联系以报告问题并尽快寻求补救措施。

软件开发经理通过Jira查找在运行月末损益表之前指示任何代码更改的票证。解决过期发票问题的Jira机票瞪着他。软件开发经理致电Tech Lead,他们一起讨论代码和单元测试。一切看起来都很好,似乎。然后他们打电话给质量保证经理,让他们对这个问题有另一种看法。从表面上看,QA经理似乎也很好。

然后QA经理有预感。她看了一下单元测试,并注意到测试是针对一个小型测试数据库运行的,该测试数据库包含了今年第一季度发票的数据。该数据足以复制错误,因此可以修复错误并成功进行单元测试。但是,代码从未使用生产数据进行过测试。

技术负责人联系了进行修复的开发人员。他们一起审视修复,发现当应用于小数据集时,更改看起来是良性的。技术主管针对生产数据集的副本运行代码。事实证明,封装在函数getPastDueInvoices(dueDate)中的新代码需要5秒钟才能对生产数据执行。

在进行单元测试时,代码修复需要1.5秒才能运行。因此,它似乎很好,但在生产中,它不是。会计系统配置为对发票模块的调用超时时间为2秒。回归测试确保系统的一部分中的新代码不会在整个系统中引起不必要的副作用。


事实证明,开发人员确实通过单元测试重新测试了代码修复。QA进行了高级别检查,但未进行回归测试。修复工作在单元测试下达到预期,但在生产中运行时它破坏了系统。如果将修复程序合并到使用生产中运行的数据副本的系统范围的回归测试中,则在发布到生产之前发现该问题的可能性非常大。因此,回归测试的价值和重要性。

回归测试不仅仅是重新测试

回归测试很有价值。可悲的是,有时一家公司会认为它正在进行回归测试,而实际上它正在进行重新测试。重新测试是为了确保特定的代码更改按预期工作。回归测试旨在确保一旦引入变更,整个系统就能达到预期效果。因此,设计和实施回归测试比重新测试具有更广泛的活动范围。

如果对软件测试、接口测试、自动化测试、性能测试、LR脚本开发、面试经验交流。感兴趣可以175317069,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

通常,重新测试快速发生,在创建时间代码或非常接近代码。当有更多时间可用于满足执行测试所需的更长时间跨度时,回归测试在SDLC中进一步发生。是的,一些重新测试可能非常复杂且耗时,但远不及执行全面回归测试所需的时间长度。请记住,充分的回归测试意味着必须对系统的所有方面进行测试,同样重要的是,进行监控。在没有适当的系统范围监控的情况下执行回归测试会将测试工作转变为猜谜游戏。正如我们在开放场景中所展示的那样,系统的某个部分可能会发生错误,但这可能是由另一部分的行为引起的。

将回归测试纳入迭代模型

回归测试的情况很好。但是,在敏捷下实施一个可能很难。Agile和DevOps的目标是在短暂,快速的发布周期内尽快将工作软件交到用户手中。然而,回归测试需要时间,可能比单次迭代所允许的时间更长。那要做什么?

一种解决方案是在迭代之间错开回归测试。每次迭代都会发布代码版本。但是,在迭代过程中创建的代码的回归测试在迭代开始的一半开始,并继续进行下一次迭代。在迭代中途开始回归测试允许测试从业者在迭代期间新代码“稳定”时发现问题。然后,可以在以下迭代中实现和吸收修复。

将回归测试仅限于迭代中正在开发的当前版本的代码会产生创建瀑布动态的风险。在执行修复之前,开发团队可能会陷入停滞状态,等待回归测试完成。然后,一旦问题被开发人员发现并解决,回归测试人员需要等到新代码可用后才能采取进一步行动。显然,这种“切换和等待”模式与敏捷的软件开发方法是对立的。对迭代进行错综复杂的回归测试可以为测试人员提供执行所需测试范围所需的时间,同时允许开发人员在此期间创建新代码。

把它放在一起

代码在初始发布时很难完美。现代软件开发已经开始接受发布软件更多的是让它随着时间的推移而变得更好,而不是从一开始就让它变得更好。

这并不是说公司只是将代码推出门,并将发布的质量留给机会。恰恰相反。具有前瞻性思维的公司竭力做到这一点,以便在软件开发生命周期的所有阶段进行测试。此外,具有前瞻性思维的公司也明白,随着系统变得越来越大,软件创建的速度越来越快,副作用的出现机会也越来越多。因此,在整个软件开发生命周期中采用全面测试的公司特别强调回归测试。回归测试是风险缓解的第一道也是最好的防线,并确保组成软件部分的代码确实能够使整个系统更好。

这就是为什么mabl可以帮助团队为他们的应用程序创建自动化测试,并自动化回归测试。使用机器智能,mabl分析测试输出以监控整体健康状况下降,视觉变化和性能下降。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 1.问:你在测试中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决。 首先,将问题提...
    qianyewhy阅读 9,230评论 4 123
  • 一、 软件测试基本概念 1 bug的概念 bug类型:defect、fault、problem、error… pr...
    三口一个瓜阅读 3,632评论 0 12
  • 1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程...
    欧尔麦特fffff阅读 4,612评论 1 41
  • -----转载----- 1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? ...
    花开沉浮阅读 7,340评论 4 88
  • 作为一个教书匠,别的本事没有,只是在看人时习惯于看他的优点,奉行“见贤思齐焉,见不贤而内自省也”,自觉进步不少而沾...
    非常道_faae阅读 273评论 5 5