作者丨Lena Yakimova
策划丨孙淑娟
为了满足业务需求,思想前(qian)卫的公司会(hui)将 QA 嵌入(ru)到 SDLC 中(zhong)。这篇文章将带(dai)您(nin)了解应在每个开发阶段(duan)引入(ru)哪些(xie) QA 活动。
几乎无(wu)可争辩的(de),速度和创(chuang)新(xin)(xin)是产品高效(xiao)交付的(de)支柱,这有(you)助于在(zai)当(dang)今市场上取(qu)得成功。凭借(jie)顺利(li)引入新(xin)(xin)技(ji)术并(bing)更快地发布实用软(ruan)件的(de)能力,公司走上了从 COVID-19 大流(liu)行(xing)及其(qi)后果中恢复并(bing)调整到(dao)"下(xia)一个常态"的(de)道路上。
为了自信地做到这一点并保(bao)证软件满足计(ji)划的业务需求,思(si)想前卫的公司将 QA 引(yin)入到了软件开(kai)发(fa)生命周期(SDLC)中。
QA 是所有流程阶段不可(ke)或缺的一部(bu)分,它有助于(yu)避免在关键(jian)缺陷(xian)修(xiu)复(fu)、提高软件可(ke)信(xin)度和安(an)全(quan)性以(yi)及(ji)降(jiang)低系统突然(ran)停机(ji)的风险方面产生不可(ke)预见(jian)的费用。除(chu)了(le)改(gai)进功(gong)能外,QA 还会衡量(liang)在当(dang)前(qian)状态(tai)下(xia)将功(gong)能发布到生产环境中(zhong)对业(ye)务的影响(xiang),从而(er)提高客户忠诚(cheng)度并(bing)促进整体销售。
那么,在每个开发阶(jie)段应该引入哪些(xie) QA 活动呢?让我们仔细(xi)阅读本文中的答案。
SDLC 的(de) 4 个阶段(duan)中必(bi)备的(de)最佳(jia)实践
瀑(pu)布式、敏捷式、快速应用(yong)开发 (RAD)、螺旋(xuan)模型... 根据(ju)方(fang)法和产(chan)品的特性,开发过程中不同(tong)阶段略有不同(tong)。但是,无论你的公司坚(jian)持哪(na)种方(fang)法,在(zai)每个 SDLC 阶段进行(xing)测试都变得至关重要。
这是(shi)一个(ge)真实(shi)案例:几(ji)年前,三星召回了 250 万部 Note7 智能(neng)手机(ji),导致损失数十亿美元(yuan)。这都是(shi)因为软(ruan)件缺陷——电(dian)(dian)池(chi)管(guan)理系统的瓶颈——负责监控和停止(zhi)充电(dian)(dian)过程,导致过度(du)充电(dian)(dian)和爆炸。
不幸(xing)的是(shi),这(zhei)种情况屡见不鲜。因(yin)此,为了(le)最大限度地(di)提高开发效率并(bing)减少因(yin)修(xiu)复后期发现的缺陷而(er)造成的财(cai)务和声誉损失(shi),我建议在(zai)每个基本开发阶(jie)段(duan)考虑必要(yao)的 QA 活动。
图片
一、需求收集
如果不了解目(mu)标(biao)受众(zhong)、应用解决的问题(ti)、性(xing)能、安全性(xing)、合规(gui)性(xing)和(he)许多其他标(biao)准,就不可(ke)能规(gui)划开发(fa)和(he)测试工作(zuo)。
考虑到修复缺陷(xian)的(de)成(cheng)本在(zai)每个阶(jie)段都呈指数级增长(zhang),QA 工程(cheng)师需(xu)执行需(xu)求测(ce)试,以减(jian)少(shao)从(cong)一开始的(de)返工,并发现 IT 解决(jue)方案业务逻辑中的(de)错误、歧义或不(bu)一致。
在(zai)测(ce)试需求时(shi),专家确认产品(pin)的(de)功能、UI、必要的(de)硬件(jian)(jian)和软件(jian)(jian)标(biao)准一(yi)致(zhi)、清晰且无错误。这允许进一(yi)步创建(jian)无故(gu)障的(de)测(ce)试计划、测(ce)试用例(li)、用例(li)、可追(zhui)溯性矩阵和其他(ta)工(gong)件(jian)(jian)。
然而,测试只是(shi)成功的(de)一(yi)半。测试文(wen)档的(de)标志是(shi)其动态性质。在没(mei)有任何更新(xin)的(de)情(qing)况(kuang)下,它逐(zhu)渐变得毫无价值(zhi),这些更新(xin)是(shi)由不(bu)(bu)断(duan)变化的(de)需求、转移优先级或不(bu)(bu)断(duan)将新(xin)代(dai)码传送(song)到生产环(huan)境造成的(de)。因此,除了测试之外,QA 团队还(hai)必须及时更新(xin)测试文(wen)档,以消除任何流程(cheng)故障。
二、分析与设计
基于上一阶段的结果,开发(fa)团队设(she)计即(ji)将推(tui)出的应用程序的架构并创建其原型。
为确保产品取得商业上(shang)的成功,QA 团(tuan)队首先进行原型测(ce)试,以根据客(ke)户反馈及(ji)早(zao)发(fa)现 SDLC 中的问题,并(bing)在(zai)开发(fa)开始之前引入必要(yao)的更改。通过专注(zhu)于(yu)识别可能在(zai)以后(hou)导(dao)致系(xi)统故障(zhang)的逻辑缺陷,工程师显著减少了额(e)外软件创(chuang)建过程所需的时间和财务工作。
特别关注原型的(de)可(ke)用性测(ce)试(shi)。这只是提供引人入胜的(de)设计(ji)的(de)第一(yi)步,必须考(kao)虑一(yi)些限制,因为它们(men)可(ke)能会影响现(xian)阶段的(de)测(ce)试(shi)结果(guo)。例如(ru),构思(si)不佳的(de)颜色阵(zhen)列可(ke)能会在屏幕上缺乏直观(guan)的(de)元素,从(cong)而使产品使用变(bian)得复杂。牢记它们(men)有助于确(que)定所(suo)需的(de)测(ce)试(shi)并更好地掌握(wo)结果(guo)。
三、软件开发
让我们来看看软(ruan)件(jian)测试(shi)活动是如何有助于(yu)交(jiao)付无(wu)瑕疵的产品。例如,单元(yuan)测试(shi)单独验证可以在系统中逻辑隔离的每个(ge)应用程序组件(jian),以确(que)保其行(xing)为符合设计方式。
通过适当(dang)的单元测试,开(kai)发(fa)人(ren)员可以自(zi)信的实(shi)现代码重构(gou),使(shi)工作流程(cheng)更加敏捷,并(bing)及早发(fa)现软件的问题,确保(bao)简化集成和调试过程(cheng),并(bing)大大降低修(xiu)复(fu)缺陷的成本。
经过测(ce)试(shi)的(de)单(dan)元现在(zai)(zai)形(xing)成了模(mo)块,这(zhei)些模(mo)块反过来又创建了一个完整的(de)系统。在(zai)(zai)单(dan)元测(ce)试(shi)之后,集成验证可(ke)帮(bang)助(zhu)软件(jian)工程师确保由不同(tong)团队编写的(de)这(zhei)些系统组件(jian)之间彼此和(he)谐地(di)融合在(zai)(zai)一起。
敏捷和 DevOps 生态(tai)系统(tong)中(zhong)的(de)单(dan)元和集(ji)成(cheng)测(ce)试(shi)(shi)通常可以自(zi)动化(hua),以显(xian)著缩短测(ce)试(shi)(shi)时间、最(zui)大化(hua)测(ce)试(shi)(shi)覆盖(gai)率、多次重(zhong)用(yong)相(xiang)同的(de)测(ce)试(shi)(shi)用(yong)例并避免人为因素。
图片
当(dang)开发人员专(zhuan)注于执行(xing)单(dan)元和(he)集成测(ce)(ce)试时(shi),QA 团队(dui)会创建测(ce)(ce)试工具以确(que)保高的软件质量(liang)并为发布准备功能(neng)。为了取(qu)得成功,这里有 10 种测(ce)(ce)试类(lei)型,根据(ju)产品细节和(he)业务需(xu)求,这些(xie)类(lei)型可能(neng)会派上(shang)用场:
1、功能测试
从一(yi)开始,功能测(ce)试(shi)就确(que)保不存在可(ke)能阻碍进一(yi)步测(ce)试(shi)的(de)关键(jian)问题,并保证最近(jin)添(tian)加(jia)的(de)功能已经完全实现,而(er)不会影响产品的(de)逻辑。
2、性能测试
通过服务器端性能(neng)测试(shi),QA 工程师评估系统是否能(neng)够承受负(fu)载,发(fa)现其弱点,并(bing)提供(gong)详细的(de)(de)改进建议。这有(you)助于降低软件(jian) TCO 并(bing)建立有(you)效(xiao)的(de)(de)性能(neng)监控(kong)。
客户端性能 QA 会(hui)衡量 HTML 页面的(de)加载和呈(cheng)现(xian)时间,并(bing)找(zhao)出影响(xiang)客户体(ti)验(繁重的(de)界面、长(zhang)的(de)响(xiang)应时间、较(jiao)差的(de)整体(ti)性能)并(bing)阻碍与和品牌进行(xing)愉快互动的(de)问题。
3、网络安全测试
基于(yu) OWASP 方法的(de)手动(dong)和自动(dong)漏洞(dong)评估(gu)可发现安(an)全漏洞(dong),并确(que)保对用户敏(min)感数据的(de)高度保护。通过将最佳安(an)全措施尽早(zao)注入(ru) SDLC,公(gong)司可以最大(da)限度地降(jiang)低(di)恶意入(ru)侵(qin)者执行攻击的(de)风(feng)险并挽救其声誉。
4、自动化测试
由(you)于快速质(zhi)量是(shi)(shi)敏捷方法和高效产品(pin)交付(fu)的(de)基石(shi),因此(ci)采用自动化测试是(shi)(shi)更(geng)快地(di)构建、测试和交付(fu)高质(zhi)量软件的(de)方法。
为了(le)实现这些目(mu)标,QA 工(gong)程师定义了(le)自动(dong)化(hua)和工(gong)具包的范围、实施所(suo)需的框架、配(pei)置(zhi)环境、准备测试数据(ju)并(bing)开发(fa)脚本,分析测试结果(guo),同时提(ti)供对自动(dong)化(hua)测试的全(quan)面支持和监控。
5、跨浏览器测试
确定应用(yong)程序(xu)是否(fou)可(ke)以在不(bu)同(tong)的浏览器中(zhong)无缝(feng)运行,这有助于提(ti)供(gong)引人(ren)入(ru)胜的用(yong)户(hu)体验(yan)并(bing)扩大目标受众。为此,QA 工程师分析不(bu)同(tong)地域(yu)的浏览器使(shi)用(yong)情况(kuang)统计信息,选择(ze)最受欢(huan)迎的变体,并(bing)执(zhi)行测试以确保软件操作的一致性。
6、跨平台测试
兼容软件的(de)(de)操作(zuo)系(xi)统(tong)越多,公司可以吸(xi)引(yin)的(de)(de)客户就(jiu)越多。因此(ci) QA 供(gong)应商会执行(xing)(xing)测试(shi)以发现(xian)操作(zuo)系(xi)统(tong)级性能(neng)、UI 不一致和特定于平台(tai)的(de)(de)故障,并确保(bao)软件在最(zui)低系(xi)统(tong)要求下按设计运行(xing)(xing)。
7、移动应用测试
根据 Statista 的(de)数据,到 2023 年移动应(ying)用程序(xu)带来(lai)的(de)全球利润将(jiang)超过 9350 亿美元(yuan)。随(sui)着全球下(xia)载量的(de)增加,市场上的(de)激烈竞(jing)争迫使公司更多地考(kao)虑(lv)其质(zhi)量并引入 QA。为(wei)了提高结果(guo)的(de)效率和准确性(xing),提供商会在(zai)真(zhen)实(shi)设备上进(jin)行测试。
8、无障碍测试
正如世(shi)卫组织所述,有超(chao)过 10 亿(yi)人(占世(shi)界人口的(de) 15%)患有特定的(de)身体或认知障碍,因此设计适(shi)合(he)所有社(she)会群(qun)体的(de)软件成为(wei)首(shou)要目标。通过验证其是(shi)否(fou)符合(he) WCAG 2.1 或 AODA 等(deng)国际标准,公司可(ke)以(yi)照顾目标受众并扩大其客户群(qun)。
9、本地化测试
在满足特定(ding)(ding)国家 / 地(di)区的语言(yan)、文化和区域要求(qiu)方(fang)面(mian),针对国际市场(chang)的软件首当其(qi)冲。为了定(ding)(ding)制(zhi)产(chan)品,使(shi)其(qi)被目标受(shou)众视为符合他们(men)需求(qiu)的独特解决方(fang)案(an),QA 工程师专注于:
当地法(fa)规(例如(ru),遵守数据隐私法(fa))
文(wen)化方(fang)面(mian)(例如,避免冒犯性符号或不适当的颜色)
用户(hu)体验(例如,日期、地址和货币的布(bu)局)
视觉材(cai)料(例如,必须符合文(wen)化期(qi)望)
脚本(例如(ru),从内容到(dao) UI 的所(suo)有(you)方面都(dou)按(an)照既定的语(yu)言(yan)规则(ze)显示)
10、可用性测试
通过(guo)评估(gu)用户适应应用程(cheng)(cheng)序设计(ji)和(he)执行不同任(ren)务的(de)难易程(cheng)(cheng)度,QA 工程(cheng)(cheng)师可(ke)以发现他们在原(yuan)型设计(ji)过(guo)程(cheng)(cheng)中可(ke)能忽(hu)略的(de)缺陷,以确保(bao)用户使用过(guo)程(cheng)(cheng)尽可(ke)能透明、直观和(he)简单。
四、部署和维护
在期待已久(jiu)的发布(bu)之前(qian),必须进行用户验收测试,以(yi)确(que)保(bao)软件(jian)可以(yi)投入生产,满(man)足所有用户需求(qiu)(qiu)和业务需求(qiu)(qiu),并且保(bao)证遗(yi)漏(lou)任何缺陷(xian)的可能性是最(zui)低的。
一旦达(da)到 UAT 推出标准,团(tuan)队就会发布功(gong)能。通常每(mei)家(jia)公(gong)司(si)都会设定自己(ji)的(de)(de)指标,例如成功(gong)完成测试的(de)(de)数量或已识别的(de)(de)不同严重性问题的(de)(de)百分比(bi)。
一(yi)旦(dan)发布结(jie)束,新功能(neng)即将推(tui)出,这(zhei)意味着(zhe)每次(ci)将代码更改交(jiao)付到生产(chan)环境时,QA 团队都必须执行回归测试(shi),以确保修改后的软件(jian)部(bu)分不会影响现有(you)功能(neng)。
通过分析潜在的风(feng)险区域并(bing)执行(xing)多轮(最多三轮)回归(gui)测试以(yi)及(ji)中间缺陷验证,QA 工程师可以(yi)提(ti)高软(ruan)件质(zhi)量并(bing)稳定(ding)改进软(ruan)件应(ying)用程序(xu)。
使用 QA 构建可靠的 IT 产(chan)品
为(wei)了提供吸(xi)引目标(biao)受众(zhong)的引人入胜的软(ruan)件解决方(fang)案,公司可(ke)以将 QA 注入到(dao)整个软(ruan)件开(kai)发生(sheng)命周期(qi),而不是(shi)在(zai)开(kai)发完成(cheng)后完成(cheng)任务,使 QA 工程师超负荷工作(zuo)。
因(yin)此,公司在整个核心 SDLC 阶(jie)段(duan)坚持的(de)基本质量保证实践应包括:
规划期间的需求测试
设计过(guo)程中的(de)原型(xing)以及(ji)可用性验(yan)证(zheng)
测(ce)试(shi)文档的创(chuang)建和全(quan)面(mian)性测(ce)试(shi),以(yi)在开发(fa)阶段提(ti)高产(chan)品质量
在(zai)部署和发(fa)布后(hou)的支持阶段进行 UAT 和回(hui)归测(ce)试(shi)
当(dang) QA 应用于复杂环(huan)境时,这些工作可(ke)以帮助组织降低运营费用,因为它们能(neng)够及早(zao)发现软件问(wen)题,从(cong)而将(jiang)修(xiu)复成本降至最低并提高开(kai)发速度,并且(qie)从(cong)一开(kai)始就进行彻底的测(ce)试,因此(ci)返工的可(ke)能(neng)性(xing)很小。