【軟件測試第一次作業】軟件測試的開始——從過去的錯誤中尋求反思
阿新 • • 發佈:2018-03-11
pan 圖片 系統 tel var element type mail image
這些日子剛開始學習軟件測試,借作業為由,從我過去的debug生涯中找找過去的錯誤,增強一下新的理解。
之前沒學過軟件測試的理論,debug也沒什麽必要的邏輯,既便稱之為碰運氣也“不遑多讓”。如下的一個bug就是一個例子。
這是之前在學習前端開發時寫的一個簡單的驗證系統,目的是為了幫助電影院檢票,驗證購買者的姓名、郵件和電話。這個功能看起來似乎很簡單,卻在運行過程中發現了一個問題。
就是即使姓名,email,和phone number都已經提醒不符合規範,但是點擊check的時候,該表單依然被提交上去了。
但是我的button在onclick的函數的邏輯是絕對沒有問題的
function checkAll(){ if (checkName()==true&&checkEmail()==true&&checkPhoneNum()==true) { var form = document.getElementById(‘wrapper-form‘); form.submit(); return true; }else{ alert("Dear Custome, please fix your mistakes."); return false; } }
上述js的代碼沒有邏輯問題,但是除非三個文本框內的內容都不符合規範才不能提交,其余方式都可以提交。
我再明確了沒有邏輯錯誤後,就開始看問題之所在。最後發現問題並不在邏輯上,而在HTML上。
<div class="loginBoxButtons"> <button class="loginBtn" onClick="checkAll();">Check</button> </div>
然後我最後發現了問題,button在form中默認情況下的type是submit。在這種情況下會在無視button原有的限制函數的情況下直接自動提交表格。
這個錯誤的影響就是button會一直允許各種莫名其妙的電話號碼和郵箱提交消息,如果真的上線,會造成惡劣的影響。
我就在該button相關的html,js和php代碼中尋找問題,在js中各處alert信息來看哪幾部分運行成功,最後發現無論在何種情況下表單都會自動提交,最終我改寫了js的相關寫法,解決了bug。
【軟件測試第一次作業】軟件測試的開始——從過去的錯誤中尋求反思