測試比較容易遺漏問題

通常軟件測試會暴露軟件中的缺陷,經過修正後可以保證軟件系統的功能滿足需求並正確運行。但是,在系統測試和確認測試中,測試人員容易遺漏一些隱藏的缺陷。衆所周知,軟件測試不可能發現所有的缺陷,而軟件開發週期各個階段仍然存在注入缺陷的可能,但是,有一些缺陷是測試中容易忽略的,也就是說,通過測試方法和用例可以充分暴露這些缺陷,遺憾的是,它們往往被忽略或者某種原因忘記測試了,這就給軟件留下了隱患或者危機。這些容易被忽略的缺陷包括:
  1、安裝缺陷
  通常項目組完成代碼後,發佈時候安裝打包是最後一個環節,而軟件測試人員通常在測試的時候,沒有仔細的測試這一部分,而把用例集中在其他功能上。安裝時候的缺陷通常通過拷貝而不是運行安裝程序方式給測試人員安裝軟件,結果正式安裝時候出現問題,引起例如控件沒有註冊,註冊表沒有導入等。刪除時候沒有注意安裝文件夾是否存在用戶文件,造成數據丟失;使用絕對路徑;安裝順序沒有說明書。
  2、配置文件
  有些文件在ini等配置文件中寫出了管理員口令密碼等信息,而且是明文的!這是一個安全隱患。另外,有些安裝文件的 XML 文件,爲了方便在數據庫和中間層連接文件中寫入了Admin 口令和密碼。作爲一個合格的軟件測試人員,必須檢查這些可以用記事本打開的文件。因爲,一個稍有常識而且喜歡探索的用戶,可能從中獲取信息而成爲不自覺的黑客。所以,配置文件可能成爲軟件安全方面的一個缺陷。
  3、網頁安全缺陷
  現在網站開發已經注意到:登陸網站進入其內部網頁後,直接拷貝網址,然後粘貼到另一IE 窗口輸入,可以繞過登陸直接訪問。也許商業網站很關注這個問題,但是很多行業軟件卻很容易忽略。
  網頁安全缺陷還可能存在於 IE 彈出的子窗口。有些設計不嚴格的軟件,在主頁面關閉的時候子頁面還可以運行,這是一個明顯的漏洞,而且還大大增加了錯誤發生的機率。
  4、判斷順序/邏輯缺陷
  對界面進行多個輸入判斷的時候,非常容易出現這種問題。例如判斷年月順序,判斷長度,判斷非空等。假如操作員僅僅滿足單個條件,保存不能成功;而按界面從上之下順序一一滿足條件之後,保存是沒有問題的。但是,改變一下輸入的次序,校驗失效。例如,一一滿足條件之後,不保存,倒過來將上面的輸入改成非法輸入,然後保存,結果居然也能成功,這是因爲原先的判斷由於發生過,或者根據語句順序只檢查最後一個判斷,所以沒有報錯。這種錯誤尤其在 Java scrīpt 腳本的頁面中要注意。能夠保存不能保證數據正確,有可能引起系統崩潰或者後續數據錯誤。所以,在測試的時候,不要按照正常的順序輸入,而是要打亂步驟,看看代碼是否強健,是否在判斷邏輯上沒有錯誤。良好的代碼應該經得起折騰,至少保存時會再此全部進行判斷,而不只是簡簡單單走到判斷的最後一行。
  5、調試語句和冗餘信息
  維護項目和升級改造的推廣系統最容易潛伏這類缺陷。典型表現在沒有刪除或者屏蔽調試語句。彈出一個界面不友好的提示信息,會使不明真相的用戶產生誤以爲系統發生了嚴重故障,從而引起對軟件的不信任感。頁面中某個角落存在當前客戶不需要的冗餘按鈕和功能也是一種缺陷。多餘的功能會使用戶以爲是額外附加部分而去使用,其結果可想而知;而多餘的按鈕會誤導好奇心強的用戶操作,產生不必要的錯誤。
  同樣值得關注的還有參數設置,由於沒有實際數據,開發人員在調試或者單元測試的時候,習慣性的進行自我設定而忘了刪除,軟件測試人員可能會忽略掉了這部分測試,也可能導致在客戶現場發生錯誤而影響系統發佈和驗收。
  6、不可重現的故障
  新參加軟件測試的人員或者新來的開發人員總是要問,不可重現的缺陷是否需要記錄,有必要嗎?回答是肯定的。測試必須如實的記錄發生的問題,也許不能重現,或者使非軟件系統本身問題,但是,可能這些偶然性背後是有規律的,不記錄這些,就不可能發現這些規律。
  7、多節點的逆向流轉缺陷
  當前軟件不少喜歡使用工作流來驅動。工作流的問題,就是可能出現多個流向分支。測試容易忽略的部分,就是工作流多節點的逆向流轉。例如,通過不通過涉及兩個分支,但是流程逆轉的時候,有可能不是回到上一節點而是平級的另一個節點去了。軟件測試要格外注意這類用例的設計。另外,有些時候默認分支在向前的時候是有默認值的,例如默認通過,那麼保存的時候要提示用戶是否通過,否則可能由於操作疲勞而走錯了節點,引起回退。
  8、輸入框缺陷
  試過往輸入框粘貼數據而不是直接輸入嗎?可能這裏會出現問題。按 Ctrl+V 的時候,輸入框會根據長度大小自動截斷輸入長度。但是用鼠標,截斷可能會失效。有一次測試人員就是用這種方法把一篇 Word 文檔輸入進去了,保存的時候,數據庫崩潰。有些網站登陸的口令****可以拷貝下來的,只要放在剪貼板裏面馬上明文顯示。
  輸入框可以說是問題最多的部分,能夠引起的麻煩也很多。日期、數字、文本等等,都需要耐心的測試一下。
  9、界面佈局缺陷
  曾經有一次,項目經理回來向測試部反映一個問題,客戶對界面不滿意。原因很簡單,因爲界面上刪除按鈕和保存按鈕捱得很近。結果有些操作不熟練的業務人員,很容易誤按。這個問題是測試人員沒有意料到的,因此注意關閉、刪除、退出按鈕與保存、下一步等按鈕的距離。類似的按鈕應按此規則排列分佈。
  界面佈局還可能發生在窗口最大化和最小化上,有可能窗口縮小的時候沒有下拉框或不匹配分辨率,對用戶來講,這個錯誤實在很低級。有些用戶由於操作習慣,非常不喜歡騰出手使用鼠標,尤其是大量輸入的界面,因此,要注意設置鍵盤的快捷方式。還有,按 Tab定位到下一焦點時要注意順序,避免跳轉太靈活而讓操作人員感到無從適應,在界面進行維護或者修改的時候,不要忘了軟件測試開發人員是否無意改變了這些快捷方式和跳轉順序。
  10、版本和補丁包的環境問題
  理論上講,這屬於兼容性測試應該覆蓋的問題。有些客戶很喜歡更新最新的軟件版本或者微軟時不時打些補丁包,問題就出現了。有時候升級不一定是好事。這些問題最好在測試的時候增加幾個用例,多用不同軟件版本的機器跑一跑。軟件測試有個定律是:你沒跑過的地方,就一定會出事。經常聽到開發人員抱怨,怎麼我的機器沒問題,你的機器就有事了呢?這不能完全靠配置管理員解決問題,環境配置項是大家最容易忽略的。
  11、用戶管理缺陷
  用戶管理的角色和授權需要好好研究一下,作過測試的人員都知道,有時候爲了測試的方便,測試用戶都是具有超級權限的用戶。而且,比較容易忽略用戶管理這一部分的測試。往往發往客戶的時候,很多測試用戶都沒有刪除。
  另外,有些接口的用戶和口令,到軟件使用壽命結束都沒有更改過。在一次測試中,軟件測試人員發現,給一個用戶授超級用戶權限,之後更改這個用戶爲受限權限。使用中發現,用戶居然沒有真正回收權限,用戶管理界面上沒有任何不對。及早準備用戶管理用例,不要等到測試快結束時候纔想起。
  12、常識缺陷
  從邏輯或者統計學上講,計算機是允許如此處理的,但是從常識上來講,這些情況不可能發生。例如電話號碼不可能出現小數點,終止時間不能大於開始時間等等。除此之外,常識還要結合業務特點來進行判斷,因此,開發和測試人員要格外注意對自己知識的培養以及增加對需求細節的瞭解。不能因爲一味追求進度而採用最簡單的代碼來實現,對用戶來說,這些錯誤可能是很荒謬的。

  儘管我們不可能完美的測試一個軟件,但是我們仍然可以改進我們的軟件測試。每次測試結束,及時總結測試中的不足,進一步完善用例。思考一下那些容易忽略的軟件缺陷,能提高對軟件測試的認識,提高所在組織軟件的質量。

      13、易用性缺陷

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章