材料收集
你服務(wù)于一個(gè)數(shù)據(jù)庫(kù)查詢業(yè)務(wù),某次客戶現(xiàn)場(chǎng)反饋查詢某個(gè)語(yǔ)句長(zhǎng)時(shí)間未返回結(jié)果,耗時(shí)已經(jīng)遠(yuǎn)遠(yuǎn)超過項(xiàng)目對(duì)外提供的性能報(bào)告承諾給用戶最長(zhǎng)查詢時(shí)間。
問題和相關(guān)日志已經(jīng)傳遞回來(lái),開發(fā)人員進(jìn)行原因分析和故障修復(fù),測(cè)試人員進(jìn)行故障復(fù)盤和測(cè)試改進(jìn)。
這一切看起來(lái)都在正常的進(jìn)行下去,但是作為測(cè)試人員的你是不是會(huì)不自主地冒出這么一句:為什么我沒有測(cè)試出來(lái)呢?
那么,為什么會(huì)沒有測(cè)試出來(lái)呢?
故障復(fù)盤
“沒有測(cè)試出來(lái)”剖析最根本的原因無(wú)非可能有兩點(diǎn):
1、缺少對(duì)應(yīng)的測(cè)試用例;
2、具有相應(yīng)的測(cè)試用例,但測(cè)試環(huán)境與客戶現(xiàn)場(chǎng)相差太大。
那么,你可能還會(huì)繼續(xù)問自己:為什么會(huì)缺少對(duì)應(yīng)的測(cè)試用例呢?
缺少對(duì)應(yīng)的測(cè)試用例
至于測(cè)試用例的缺失,從客戶需求——>需求方案設(shè)計(jì)——>開發(fā)方案設(shè)計(jì)——>開發(fā)實(shí)現(xiàn)——>需求測(cè)試——>需求交付。
整個(gè)流程來(lái)看:缺失相應(yīng)使用場(chǎng)景的客戶需求,或者需求方案設(shè)計(jì)有誤,或者開發(fā)方案設(shè)計(jì)有誤,或者開發(fā)實(shí)現(xiàn)偏差等等都可能導(dǎo)致測(cè)試人員在設(shè)計(jì)測(cè)試用例時(shí),缺少相應(yīng)用例的設(shè)計(jì)和測(cè)試執(zhí)行,從而未能發(fā)現(xiàn)類似故障。
除此之外呢,有相應(yīng)測(cè)試測(cè)試用例,還是因?yàn)闇y(cè)試環(huán)境與客戶現(xiàn)場(chǎng)環(huán)境相差太大而未能發(fā)現(xiàn)類似故障。
測(cè)試環(huán)境與客戶現(xiàn)場(chǎng)相差太大
為什么會(huì)存在測(cè)試環(huán)境與客戶現(xiàn)場(chǎng)環(huán)境相差太大?
就數(shù)據(jù)庫(kù)查詢業(yè)務(wù)而言。測(cè)試環(huán)境的數(shù)據(jù)存儲(chǔ)量有可能遙遙不及真實(shí)用戶環(huán)境,也可能測(cè)試環(huán)境的測(cè)試數(shù)據(jù)與真實(shí)數(shù)據(jù)不一樣(比如某個(gè)存儲(chǔ)字段的長(zhǎng)度設(shè)置;比如存儲(chǔ)的字段內(nèi)容解析后包含特殊字符、亂碼等等)……這些都是測(cè)試環(huán)境與客戶現(xiàn)場(chǎng)不一致的可能情況。
梳理完測(cè)試缺漏后,下一步理所當(dāng)然的是進(jìn)入用例補(bǔ)充和模擬客戶環(huán)境穩(wěn)定性測(cè)試。
可是,除了補(bǔ)充當(dāng)前故障對(duì)應(yīng)的測(cè)試用例之外,我們還能延展些什么呢?!
放大或復(fù)制用戶行為
不管是開發(fā)人員或測(cè)試人員,我們都應(yīng)該珍惜接觸現(xiàn)場(chǎng)日志的機(jī)會(huì)(當(dāng)然首要的是需要保密不外傳),因?yàn)槲覀兛梢詮娜罩局懈Q探到用戶使用習(xí)慣或產(chǎn)品使用方式,從而將這些行為或習(xí)慣復(fù)制到我們的測(cè)試用例中,亦或者在測(cè)試中放大用戶行為或習(xí)慣。
復(fù)制用戶行為
什么是復(fù)制用戶行為?如何復(fù)制用戶行為?
復(fù)制用戶行為在這里指的是,直接將獲取到的用戶使用產(chǎn)品方式在內(nèi)部測(cè)試環(huán)境重現(xiàn)。比如:復(fù)現(xiàn)用戶的某個(gè)數(shù)據(jù)庫(kù)查詢行為,select * from xx where ……
但是值得注意的是:
1)測(cè)試環(huán)境數(shù)據(jù)和真實(shí)用戶環(huán)境可能存在較大的差異(比如:測(cè)試環(huán)境的數(shù)據(jù)庫(kù)不存在某個(gè)字段abc,而真實(shí)用戶行為查詢卻使用到了該字段abc),我們需要根據(jù)自己的測(cè)試環(huán)境進(jìn)行適當(dāng)?shù)恼{(diào)整。
就數(shù)據(jù)庫(kù)查詢業(yè)務(wù)為例,這類調(diào)整包括但不限于:刪除不存在的字段查詢,修改對(duì)應(yīng)的字段值為測(cè)試環(huán)境的值查詢……
2)獲取到的用戶行為有限,無(wú)法支撐大量的查詢比對(duì)(比如性能查詢,統(tǒng)計(jì)數(shù)據(jù)庫(kù)某類查詢行為的耗時(shí)均值)。
這個(gè)問題應(yīng)該是可以預(yù)見的,畢竟我們能夠接觸到的用戶日志或采集到的用戶行為是有限的。
尤其是針對(duì)第2)個(gè)問題,放大用戶行為就成了我們的可選項(xiàng)。
放大用戶行為
放大用戶行為在這里指的是,將獲取到的用戶行為作為樣本,復(fù)制多份或在用戶行為中增刪其他行為。
比如:將select * from index where id=’123’的用戶行為復(fù)制100份,替換其中的id值為測(cè)試環(huán)境中不同的值;或以select * from index where id=’123’為基礎(chǔ)樣本,增加行為數(shù)據(jù)如select * from index where id=’123’ or id=’456’等。
復(fù)制或放大用戶行為,對(duì)我們的測(cè)試有什么意義呢?!——可以讓我們更接近用戶的使用方式,產(chǎn)生更多的測(cè)試用例,擴(kuò)大測(cè)試覆蓋率。
再來(lái)一點(diǎn)思考
以上所說(shuō)想必大多測(cè)試人員在工作中也是這樣做的,但是可能缺少部分的思考和總結(jié)。現(xiàn)場(chǎng)反饋的問題和收集的資料對(duì)補(bǔ)充我們的測(cè)試用例、完善我們的測(cè)試工作具有很大的幫助,希望每一位測(cè)試人員都能好好利用能夠接近“真實(shí)”的機(jī)會(huì)。
最后:在我的V:atstudy-js,可以免費(fèi)領(lǐng)取一份10G軟件測(cè)試工程師面試寶典文檔資料。以及相對(duì)應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!其中包括了有基礎(chǔ)知識(shí)、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫(kù)、抓包工具專題、接口測(cè)試工具、測(cè)試進(jìn)階-Python編程、Web自動(dòng)化測(cè)試、APP自動(dòng)化測(cè)試、接口自動(dòng)化測(cè)試、測(cè)試高級(jí)持續(xù)集成、測(cè)試架構(gòu)開發(fā)測(cè)試框架、性能測(cè)試、安全測(cè)試等。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.