1. 程式人生 > >【軟件測試第一次作業】軟件測試的開始——從過去的錯誤中尋求反思

【軟件測試第一次作業】軟件測試的開始——從過去的錯誤中尋求反思

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。

【軟件測試第一次作業】軟件測試的開始——從過去的錯誤中尋求反思