前言
測試過程中伴隨很多問題的產(chǎn)出,比如程序缺陷、環(huán)境問題等,作為一個專業(yè)的測試人員婴噩,我們的任務(wù)應(yīng)該不是僅僅做到把問題丟出去給開發(fā)骆撇,而是自己也要養(yǎng)成對問題的分析能力瞒御,進(jìn)一步提升自己對問題處理和系統(tǒng)的理解。下面會簡單介紹日常測試問題(程序缺陷神郊、環(huán)境問題)的分類和分析步驟肴裙。
寫在前面的話:不管遇到什么問題,首先進(jìn)行測試重現(xiàn)涌乳,確認(rèn)非偶發(fā)后蜻懦,按照以下步驟進(jìn)行分析;若為偶發(fā)夕晓,則先記錄下來宛乃,測試時(shí)注意問題是否會規(guī)律發(fā)生。
一蒸辆、程序缺陷分析
一般情況下征炼,常見的程序缺陷可以分為這幾類:程序處理報(bào)錯(拋異常),頁面JS報(bào)錯躬贡,業(yè)務(wù)邏輯錯誤等谆奥。
1、程序處理報(bào)錯(拋異常)
這類問題一般有這幾種表現(xiàn)形式:頁面直接輸出異常拂玻、頁面彈框提示酸些、服務(wù)器打印異常日志。
1)頁面直接輸出異常是比較低級的處理方式檐蚜,這種情況下我們是可以直接確認(rèn)為程序問題魄懂,即使是臟數(shù)據(jù)引起的異常,這種異常表現(xiàn)方式是需要進(jìn)行修復(fù)的闯第。
2)頁面彈框提示市栗,比較友好的情況下我們可以看出是什么操作或者控制出了問題,這時(shí)根據(jù)提示文字可以確定問題咳短;如果僅僅彈出諸如“操作錯誤”等指向不明的信息肃廓,需要保留現(xiàn)場,將使用的數(shù)據(jù)和頁面狀態(tài)截圖留下诲泌。然后通過服務(wù)器上的日志來定位問題盲赊。
3)服務(wù)器打印異常日志,一般的系統(tǒng)都會記錄兩種日志敷扫,跟蹤日志和錯誤日志哀蘑。跟蹤日志可以記錄下在系統(tǒng)操作時(shí)的業(yè)務(wù)軌跡诚卸,錯誤日志則記錄下系統(tǒng)出錯時(shí)詳細(xì)的日志信息,登錄到服務(wù)器之后绘迁,用簡單的指令可以得到對應(yīng)的日志合溺,如tail -f xxxx.log(實(shí)時(shí)刷新日志),grep ‘xxxxxx’ xxx.log(在日志中抓取包含XXXXXX的日志上下文)缀台。一般通過錯誤日志可以直接定位到錯誤發(fā)生的代碼行棠赛,可以更快速直接地解決問題。
2膛腐、頁面JS報(bào)錯
這類問題一般多見于操作時(shí)未出現(xiàn)任何提示睛约,但是沒有預(yù)期的響應(yīng)結(jié)果。通過F12按鍵打開控制臺哲身,切換到console模塊辩涝,如果有js報(bào)錯,這里可以直接看到勘天,一般通過這些信息可以直接定位到出問題的代碼行怔揩。
還有一種是由于瀏覽器兼容性引起的問題,常見于IE瀏覽器edge以下的版本脯丝,但不局限于這種瀏覽器版本商膊。在其他瀏覽器如chrome等表現(xiàn)正常,但在某一瀏覽器上頁面加載出現(xiàn)異常且無法正常操作宠进,如果是IE晕拆,則通過F12按鍵打開控制臺,在控制臺右上角查看是否瀏覽器版本過低砰苍,切換到edge潦匈,如果顯示正常阱高,則是版本問題導(dǎo)致赚导。
二、環(huán)境問題分析
環(huán)境問題會阻礙測試執(zhí)行赤惊,也會影響我們判斷一個問題是否是程序缺陷吼旧,所以對環(huán)境問題有基本的判斷和分析能力是必要的,有一定的了解之后我們也是可以著手去解決環(huán)境問題未舟,避免等待耗費(fèi)寶貴的測試時(shí)間圈暗。
1、服務(wù)器異常(內(nèi)存溢出等)
當(dāng)出現(xiàn)服務(wù)器異常時(shí)裕膀,頁面上會有比較固定的表現(xiàn)员串,比如頁面404頁面500或者提示無響應(yīng)等,引起此類問題原因有很多種昼扛,常見的有系統(tǒng)部署寸齐、服務(wù)器內(nèi)存溢出等等。在前面我們已經(jīng)知道了怎么在服務(wù)器查看日志,這里是類似的渺鹦,先在服務(wù)啟動日志里查看是否正在執(zhí)行重啟扰法,如果沒有部署,則查看錯誤日志或跟蹤日志毅厚,人為刷新一下系統(tǒng)塞颁,查看實(shí)時(shí)產(chǎn)生的日志,是否有異常信息諸如out of memory吸耿、target not exist祠锣、fail to response等,則可能是服務(wù)器出了異常珍语,需要進(jìn)行重啟或者進(jìn)一步問題定位锤岸。
2、數(shù)據(jù)庫異常
如果服務(wù)器并無異常板乙,則需查看數(shù)據(jù)庫連接是否正常是偷,一般直接本地連接一下數(shù)據(jù)庫即可知曉∧汲眩或者通過上述服務(wù)器日志查詢過程蛋铆,一般可以看到數(shù)據(jù)庫連接異常,也可定位到問題放接。重啟數(shù)據(jù)庫或者重啟數(shù)據(jù)庫所在的服務(wù)器可以解決問題刺啦,但是需先確認(rèn)數(shù)據(jù)庫及服務(wù)器是否有其他用途,溝通后再執(zhí)行重啟纠脾。
3玛瘸、部署包、配置文件問題
如果上述現(xiàn)象都沒有出現(xiàn)苟蹈,那還有可能是部署包或者配置文件出現(xiàn)問題糊渊。重啟系統(tǒng),然后在啟動日志中慧脱,可以看到相關(guān)的異常日志渺绒,如部署包不存在、配置文件找不到某個配置菱鸥、配置項(xiàng)出現(xiàn)語法錯誤等宗兼,因?yàn)榇虬l(fā)布一般是通過指令拷貝到服務(wù)器上,在這中間可能出現(xiàn)問題導(dǎo)致包沒有同步過去氮采,此時(shí)需要重新部署包殷绍。配置文件中的很多配置項(xiàng)目跟系統(tǒng)啟動息息相關(guān),如果缺失或者格式錯誤鹊漠,會引起系統(tǒng)運(yùn)行異常主到。
三殖侵、數(shù)據(jù)問題分析
數(shù)據(jù)是測試的重要組成部分,但是大部分測試環(huán)境由于長期的大量測試執(zhí)行镰烧,會積累不少錯誤數(shù)據(jù)拢军,也是引發(fā)問題的一個重要方面。當(dāng)執(zhí)行用例后沒有達(dá)到預(yù)期結(jié)果怔鳖,我們還需要確認(rèn)下自己使用的數(shù)據(jù)是干凈完整的茉唉。
1、如果是自己新做的數(shù)據(jù)结执,先檢查下數(shù)據(jù)庫中相關(guān)字段是否已有值并且寫入的值正確度陆,確認(rèn)是否做數(shù)據(jù)過程中系統(tǒng)存在BUG導(dǎo)致數(shù)據(jù)錯誤;如果數(shù)據(jù)在庫里是正確的献幔,那么根據(jù)上述第一懂傀、第二大點(diǎn)進(jìn)行繼續(xù)排查,過程中記得保存數(shù)據(jù)及操作截圖蜡感。
2蹬蚁、如果是從系統(tǒng)或數(shù)據(jù)庫直接找的歷史數(shù)據(jù),先確認(rèn)該數(shù)據(jù)是否符合當(dāng)前系統(tǒng)的邏輯郑兴,因?yàn)樵摂?shù)據(jù)可能不包含現(xiàn)有功能需要的字段犀斋,或者數(shù)值不符合當(dāng)前的要求,從而導(dǎo)致變成了臟數(shù)據(jù)影響測試結(jié)果情连;再則是確認(rèn)數(shù)據(jù)庫中相關(guān)字段是否已有值并且寫入的值正確叽粹。
3、還有一種情況是系統(tǒng)權(quán)限問題却舀,配置不正確也會導(dǎo)致問題虫几。如果系統(tǒng)有明確的權(quán)限劃分,角色挽拔、菜單辆脸、數(shù)據(jù)讀取限制等,出現(xiàn)操作錯誤時(shí)篱昔,檢查當(dāng)前用戶是否具備對應(yīng)的權(quán)限每强。