軟件測試-如何快速發現Bug

  1. 儘快熟悉公司的產品業務,
    根據產品的業務屬性來熟悉產品的業務流程,這樣才能迅速找出軟件中存在的一些重要的缺陷,這樣發現的軟件的價值纔是有價值的,否則即使你能找到一些軟件缺陷,那也是純軟件的缺陷,價值不大。
  2. 把自己當成是用戶
    把自己當成用戶去使用該軟件,比如在試用軟件的過程中,思考用戶是這樣操作的麼;
    2.1 比如大量要求用戶輸入的軟件界面中,有一些用戶喜歡使用Tab鍵採用全鍵盤的輸入,此時正確的接口應該是從左到右,從上到下的順序。
    2.2 比如有的用戶喜歡使用快捷鍵進行操作(Ctrl+C),但是實際情況下一些開發出來的軟件的快捷鍵根本不起作用。
    2.3 比如軟件在需要用戶輸入信息的時候(特別是在填寫個人資料的時候),必填選項後面一律要用*等醒目的表示要讓知道這個地方必須要填寫。
    2.4 下拉框不選的時候,應該有個默認值,並且要多檢查程序中的多處下拉框,因爲很多情況下下拉框取不到值。
  3. 善於懷疑
    世界上沒有絕對正確的,總有錯誤的地方,具有叛逆心理,別人認爲不可能發生的事,我卻認爲可能發生;別人認爲是對的,我卻認爲是錯的。假如一個水平很高的程序員編寫的程序,不要有“他寫的這個程序應該沒有問題吧”這種想法,這樣很容以遺漏軟件中的Bug。
  4. 不用讓程序開發員“用戶不會這樣操作”的觀點說服自己
    遇到這樣的情況,你要堅持自己的正確的觀點,把這種現象作爲一個Bug。
  5. 在測試的過程中要跟蹤一條數據的完整流程。
    比如“點擊商品—收藏商品—加入購物車—訂單結算—付款—消費二維碼—消費—二維碼失效”,如果在測試軟件過程中業務流程邏輯都走不通的話,還麼這個軟件測試與不測試就沒有什麼區別的。
  6. 迴歸測試要注意的事項
    程序員提交新的版本後,作爲測試人員應該立即與程序員溝通這個修改的功能,並瞭解這個新修改的功能影響那些功能。而被影響的功能,是在迴歸測試中優先重點測試的地方,而且也是最容易產生Bug的地方。
  7. 與使用者互動的缺陷
    7.1 如填寫資料錯誤的時候,應該能夠提示錯誤的位置,讓用戶知道這個地方輸入的數據不對;
    7.2 刪除數據前一定要給定出是否刪除的確認提示;
    7.3 不要在軟件中使用中英文混合的提示:比如對於用戶在進行某個操作的錯誤提示,不要一會用“Error”,一會又用“錯誤”,一定要統一;
    7.4 要對程序員的錯別字進行檢查,比如吧“登錄”寫成“登陸”;
    7.5 在軟件中不要對用戶使用很專業的術語;
    7.6 新增/修改信息白村提交後系統給出“保存/提交/修改成功”的提示信息,並自動更新顯示;
    7.7 在用戶進行大量的輸入後,點擊保存按鈕,僅僅是因爲某個地方輸入選擇不正確,點擊確定後所有的輸入信息都被清空了,這樣的Bug會大大降低軟件的易用性;
    7.8 對於軟件的查詢功能,測試的時候設置開始時間>結束時間,看看能否查詢出記錄;
  8. 軟件的邊界值
    衆所周知軟件最容易在邊界值上出現問題,所以作爲測試人員一定要在邊界值上多測試,比如測試用戶輸入框中的數值的最大數和最小數,以及爲空的情況;
  9. 非法容錯性
    比如在需要輸入數字的地方輸入字母,在需要輸入字母的地方輸入數字,在需要用戶輸入的文本框中拷貝字數很多的整編文章到這裏測試看看軟件是如何做處理的;
  10. 軟件接口測試
    如果軟件不同部部分是由不同程序員共同完成的,那麼要在他們程序接口相關聯的地方多檢查,避免雙方程序員互相認爲做了接口處理,最後誰也沒有做接口的處理,導致軟件在運行中產生缺陷;
  11. 兼容性測試
    軟件測試要在不同的硬件、軟件下(包括操作系統、瀏覽器)下的測試;
    11.1 硬件 有時候軟件在配置很高的機器上,有時會隱瞞一些錯誤,由於CPU運行過快的時候,很多現象一閃而過,發現不了缺陷;
    11.2 軟件 有時軟件在不同版本的瀏覽器中的界面與權限是不一樣的,這樣的例子就是軟件中的一個Bug了;
  12. 軟件在壓力之下容易出錯
    軟件在壓力之下容易產生的錯誤,是作爲一名測試人員必須要知道的事情。所以在測試過程中,將軟件在壓力之下長時間運行,然後看看軟件是否能在壓力之下正常工作;
  13. 隨機測試:
    即使經過大量的充分測試,也不能發現軟件中的所有缺陷,所以在測試的時候可以做一些隨機測試,比如胡亂在界面上亂點,有時也會發現一些意想不到的軟件缺陷;
  14. 學習他人經驗:
    14.1 從事軟件測試需要的知識:首先要具備軟件工程的基本知識,理解軟件生命週期過程中各階段需要做的工作,及需要達到的目標。然後,需要具備一定的編程經驗或者是參與開發的項目經驗。其次,需要掌握軟件測試方面的知識,包括測試的定義、對象、目的、測試方法、測試過程等;
    14.2 測試需要解決的問題是什麼:一般來說,大家一般都會認爲程序員按照軟件的需求說明書編寫好了,,可以實現需求中定義功能的程序,那麼這個軟件就可以投入使用了,但是,在用戶的應用過程中,會發現一系列的錯誤,給用戶帶來很多麻煩,爲了給用戶最大程度的減少軟件給用戶帶來的麻煩,這是軟件測試就發揮了很大作用,因此,軟件測試要解決的問題就是尋找軟件中未發現的隱藏的缺陷;
    14.3 何時開始測試:測試是一個獨立的過程,它貫穿於軟件生命週期的整個過程,於軟件生命週期中的個流程併發進行,因此可以說軟件的整個生命週期中,越早開始測試越好。
    14.4 如何開展測試:軟件的測試基本可以分爲測試需求分析、測試計劃制定、測試用例設計、測試執行、測試結果報告這五個步驟,根據測試類型的不同,選擇個步驟的開始的時間。
    Ø 測試需求分析:瞭解測試的規模、測試的內容、複雜程度以及存在的風險,通過測試需求分析,可以得出測試要點,而且測試要點可以包括系統功能方面的測試要點,也可以包括非功能方面的;
    Ø 測試計劃制定:測試計劃的制定可以分爲如下幾步。
    ①  首先,按照測試類型依據的標準確定需要測試的特性,如登記測試需要考慮用戶文檔、常規要求、功能性、可靠性、易用性這個五個特徵;
    ②  其次,確定需要測試的子特性,如功能性要求考慮安裝性、適合性、正確性、一致性這四項;
    ③  然後,選擇相應的測試策略,即對需要測試的幾大特性該如何測試,如需要檢查用戶文檔是否完整,需要驗證功能是否正確等;
    ④  再次,需要配置測試的環境,確定測試需要的硬件和軟件設備是否準備齊全;
    ⑤  最後,需要確定測試的人員及日程安排,爲及時高質量的完成測試工作做準備,這一過程需要形成測試計劃文檔;
    Ø 測試用例的設計:測試用例是測試工作的核心,如何設計出用最小的測試用例集找出軟件中儘可能多的缺陷的測試用例,是一個很值得積累的經驗;
    ①  在任何情況下,都應該使用邊界值分析法,經驗表明,這種方法發現錯誤的能力最強;
    ② 必要時使用等價類劃分法補充測試用例;
    ③ 必要時採用錯誤推測法補充測試用例;
    ④ 如有輸入條件的組合,就從輸入條件極其組合開始測試;
    Ø 測試執行:手工執行功能化測試用例,並檢查UI設計的Bug,在功能手工測試之後進行功能、性能、接口等自動化測試。
    Ø 測試結果報告:根據不同的測試類型出具不同的測試報告,主要分析在測試中出現的問題,並對軟件提出評估報告和結果建議;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章