問題1: 復(fù)現(xiàn)不了的問題
a. 昨天必現(xiàn)的問題赌躺、今天復(fù)現(xiàn)不了狼牺;
b. 生產(chǎn)環(huán)境必現(xiàn)的問題、測試環(huán)境復(fù)現(xiàn)不了礼患;
c. 測試人員必現(xiàn)的問題是钥、開發(fā)人員復(fù)現(xiàn)不了;
d. 一套環(huán)境必現(xiàn)的問題缅叠、另一套環(huán)境復(fù)現(xiàn)不了悄泥;
問題2: 自己的問題復(fù)現(xiàn)不了
A:發(fā)現(xiàn)的問題很多,也很嚴(yán)重痪署,最終復(fù)現(xiàn)不了需要攻關(guān)解決码泞、降級處理的也不少
B : 提交問題比A可能稍少也可能多,大部分問題在提交之前就分析的很透徹狼犯,甚至點(diǎn)出了問題的原因余寥、出現(xiàn)的條件和場景,最終問題全部高效悯森、及時(shí)的得到了解決宋舷。
出現(xiàn)以上問題的原因是什么?如何解決瓢姻?下面一步一步說祝蝠。
一、出現(xiàn)上述問題的原因
經(jīng)過這些年工作的積累幻碱,以及與各領(lǐng)域測試同行的交流绎狭,問題復(fù)現(xiàn)不了的原因不外乎下面幾個(gè):
- 績效導(dǎo)向,提單量影響績效考核
- 問題是伴隨出現(xiàn)的褥傍,不知道何時(shí)出現(xiàn)儡嘶、如何出現(xiàn)的
- 你覺得你知道了根本原因,實(shí)際上你不知道
- 系統(tǒng)日志記錄不完善恍风、或者根本沒有打開
- 測試過程全程無記錄
- 問題單缺乏關(guān)鍵信息
- 高并發(fā)蹦狂、多線程、異步調(diào)用復(fù)現(xiàn)概率低的問題
- 黑天鵝問題
二朋贬、解決問題的思路
1. 績效導(dǎo)向問題
很多公司凯楔,問題單提單量是績效考核的很大一部分,甚至占到了90%或更高锦募,這就導(dǎo)致了比較奇葩的現(xiàn)象:問題單提單量高摆屯,解決率卻很低。這么說有點(diǎn)誅心的味道御滩,實(shí)際工作中懷揣這種想法的人其實(shí)非常少鸥拧,這種結(jié)果是特定的考核機(jī)制下自然形成的党远,很多身處其中的人可能并沒有意識(shí)到。
跟我們平常說的上有政策富弦、下有對策是一致的沟娱,比如二套房,大家排隊(duì)離婚腕柜。
姿勢: 高大上的價(jià)值觀引導(dǎo)济似,績效考核方式是落實(shí)測試價(jià)值觀的手段
a. 提交問題的目的,是為了解決問題盏缤,提升用戶的使用體驗(yàn)砰蠢。這樣測試人員不僅會(huì)從技術(shù)角度分析產(chǎn)品的實(shí)現(xiàn),還會(huì)從易用性等各個(gè)角度去衡量產(chǎn)品唉铜。
b. 測試的樂趣在于發(fā)現(xiàn)問題台舱、定位問題的過程。一般喜歡打探小道消息潭流、對問題刨根究底的人竞惋,測試都做的特別好。
現(xiàn)在很多公司已經(jīng)調(diào)整了績效考核的指標(biāo)灰嫉,比如阿里同學(xué)拆宛,重點(diǎn)考核的是上線發(fā)布后產(chǎn)品的質(zhì)量、測試的效率讼撒、個(gè)人的成長浑厚。雖然最后一點(diǎn)有點(diǎn)虛,但是從現(xiàn)在阿里系出版的技術(shù)作品看根盒,價(jià)值觀引導(dǎo)確實(shí)做得好钳幅。
問題數(shù)量可以作為產(chǎn)品質(zhì)量評價(jià)的一個(gè)數(shù)據(jù),去衡量產(chǎn)品的質(zhì)量炎滞,但前提是有代碼缺陷密度等基線數(shù)據(jù)作為支撐贡这,而不能拍腦袋。
2. 伴隨出現(xiàn)的問題
執(zhí)行測試時(shí)都有明確的目的性厂榛,這個(gè)用例測試的目的是什么,懷疑會(huì)出現(xiàn)什么樣的現(xiàn)象丽惭。出現(xiàn)計(jì)劃內(nèi)的問題击奶,是很容易復(fù)現(xiàn)和定位的。但伴隨出現(xiàn)的問題责掏,你一般不能第一時(shí)間抓住它柜砾,直到它產(chǎn)生了破壞作用,才能感知到問題的存在换衬。它是在何時(shí)因?yàn)槭裁床僮鞒霈F(xiàn)痰驱、什么事件觸發(fā)的证芭,不知道。這類問題就比較容易演化為難復(fù)現(xiàn)問題担映。
姿勢:
- 保持冷靜废士,不要激動(dòng),保持現(xiàn)狀
- 思考一下:你對它做了什么蝇完?為什么這樣官硝? 他們兩個(gè)什么關(guān)系(可能沒關(guān)系)? 可能在什么地方短蜕、什么操作氢架、什么事件觸發(fā)的?
- 想明白了嗎朋魔?想不明白叫別人一起想岖研。
- 不管是否想明白,把操作記錄警检、組網(wǎng)孙援、數(shù)據(jù)、配置解滓、狀態(tài)全部記錄下來
- 在不破壞環(huán)境的情況下赃磨,嘗試驗(yàn)證想法;如果問題比較嚴(yán)重洼裤,考慮另搭環(huán)境驗(yàn)證邻辉;
- 想法得到驗(yàn)證后,簡化環(huán)境驗(yàn)證問題腮鞍,找到問題觸發(fā)條件
3. 幾個(gè)自作孽的問題
下面這幾個(gè)問題值骇,只要做事嚴(yán)謹(jǐn)是可以避免的:
- 你覺得你知道了問題原因,實(shí)際上你不知道
- 系統(tǒng)日志沒開
- 系統(tǒng)日志記錄不完善
- 測試環(huán)境移国、配置文件吱瘩、環(huán)境數(shù)據(jù)無保留
- 操作過程無記錄
- 問題單缺乏關(guān)鍵信息
以上這些原因都可能導(dǎo)致問題無法復(fù)現(xiàn)。發(fā)現(xiàn)問題后迹缀,分析問題的正確姿勢:
- 先別著急提問題
- 回想可能是什么事件使碾、什么操作、還是環(huán)境變化觸發(fā)了這個(gè)問題祝懂。 如果你有記憶宮殿就好了票摇。
- 查閱相關(guān)日志、操作記錄進(jìn)行驗(yàn)證
- 依據(jù)問題重要性砚蓬,保存關(guān)鍵的信息
- 在現(xiàn)有環(huán)境中驗(yàn)證
- 找到穩(wěn)定復(fù)現(xiàn)的條件
- 持續(xù)簡化環(huán)境和復(fù)現(xiàn)條件
- 找到問題的確切觸發(fā)條件和最簡環(huán)境
- 提交問題矢门,要附帶所有必要信息
對于熱愛測試的工程師來講,這個(gè)過程是充滿樂趣的,但是要有嚴(yán)密的邏輯思維能力和對被測試系統(tǒng)運(yùn)行機(jī)制的深刻理解祟剔。找到原因后隔躲,你可能會(huì)得出這樣的結(jié)論:開發(fā)為什么會(huì)犯如此低級的錯(cuò)誤;開發(fā)對協(xié)議的理解有誤物延;開發(fā)對此類數(shù)據(jù)的處理有問題等等宣旱。然后你可以跟開發(fā)說,你哪里的代碼處理這個(gè)數(shù)據(jù)有問題教届、你哪里哪里理解錯(cuò)誤响鹃,虛榮心會(huì)得到小小的滿足。
大家有沒有感覺到案训,在定位復(fù)雜問題時(shí)买置,日志系統(tǒng)里缺少的總是關(guān)鍵信息,而有的信息總是不太重要的强霎, 軟件可維護(hù)性任重道遠(yuǎn)忿项。
另外,有些公司的crash問題是不用復(fù)現(xiàn)的呦城舞,信息已經(jīng)足夠了轩触。 你的公司能做到嗎?
4. 高并發(fā)家夺、多線程脱柱、異步調(diào)用復(fù)現(xiàn)概率低的問題
此類問題即使有日志信息,因?yàn)榇笕萘坷觥⒏卟l(fā)榨为,再加上異步處理打亂了原有的慣性邏輯思維,是很難用通用的方法定位出來的煌茴。
比如系統(tǒng)記錄明確指針異常的問題随闺,也有堆棧的信息,并且知道哪個(gè)指針為空蔓腐,但是不知道如何導(dǎo)致的矩乐,經(jīng)排查初始化完全沒有問題。這種情況下就不能簡單的通過返回NULL來解決回论,這樣有可能用戶得到的數(shù)據(jù)就是空的散罕,雖然概率很低,但是會(huì)影響用戶的體驗(yàn)傀蓉。 特別是在初創(chuàng)公司芭届,在激烈的市場競爭中施无,差的用戶體驗(yàn)眠饮,無異于自掘墳?zāi)埂?/p>
姿勢:此類問題測試同事是不太可能單獨(dú)搞定的暑劝,一定要伙同資深開發(fā)同事一起分析(一般你不叫他他也會(huì)過來,這類問題是很有吸引力的)萨蚕。主體思想是先提高復(fù)現(xiàn)概率靶草、一步步縮小問題范圍,最終定位出問題岳遥。具體思路怎么變態(tài)怎么來奕翔,客戶端加大訪問量、服務(wù)端減少資源浩蓉、懷疑是網(wǎng)絡(luò)的問題可以使用traffic control模擬報(bào)文錯(cuò)誤或異常派继。說隨如此說,碰到具體問題還是要具體分析捻艳,根據(jù)問題現(xiàn)象驾窟,進(jìn)行有針對性的驗(yàn)證。
性能測試工程師在互聯(lián)網(wǎng)/移動(dòng)互聯(lián)網(wǎng)行業(yè)是至關(guān)重要的
5. 黑天鵝問題
為了避免碰到此類問題你可以多拜拜觀音菩薩认轨, 如果真碰到了就去買彩票
測試人要有正確的價(jià)值觀引導(dǎo)绅络,做事嚴(yán)謹(jǐn),并且要有一定的技術(shù)實(shí)力做支撐嘁字。