天天看點

《Web測試囧事》——1.6 多次操作本該禁用的頁面元件造成伺服器出錯

本節書摘來自華章計算機《web測試囧事》一書中的第1章,第1.6節,作者 黃勇 雷輝 徐潇 楊雪敏,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

對頁面上的元件進行多次點選是測試人員經常使用的小技巧之一,通常小蔡在執行完基本測試用例之後,開始進行探索性測試時會使用這個技巧,并且利用這個測試技巧發現了不少問題。

這些問題主要集中在使用者送出伺服器請求後伺服器進行處理的相關功能上,例如讀取、儲存、送出、删除等功能(見圖1-12)。

小蔡發現如果網絡速度比較慢或者産品本身性能不夠好,在使用者點選了這些功能按鈕後,而頁面重新整理完成之前這段時間内,該功能按鈕仍然可能被使用者繼續點選。即使有些頁面上的按鈕處于灰色不可用狀态,但當你嘗試點選這些灰色的按鈕,會發現點選後仍然會給伺服器端發送請求(見圖1-13)。

《Web測試囧事》——1.6 多次操作本該禁用的頁面元件造成伺服器出錯

這樣帶來了一系列問題,舉例來說,對于儲存功能,使用者多次點選後會向背景發送多次請求,資料庫中也會産生多條重複的資料,這樣不僅會造成資料統計錯誤,更會給再次使用這些資料的人或程式造成很大的麻煩。一個更極端的例子是免密碼支付的場景,當使用者不小心多次點選支付按鈕後,會給使用者造成不小的損失;對于删除功能來說,多次點選“删除”按鈕後,實際上第一個請求已經讓資料庫将對應的資料删除了,接下來的删除請求可能會造成背景程式的大量異常。

小蔡發現解決此類問題也很簡單, 隻需要開發人員在編寫代碼時注意,隻允許對該類功能按鈕操作一次,在使用者操作之後,不僅需要把對應的功能按鈕置灰,同時需要取消這些功能按鈕上面綁定的事件響應處理機制。

通常小蔡除了會在小組的回顧會議上向開發人員分析這些問題産生的原因和避免方式,還在每張開發故事卡上明确地标注需要測試多次快速點選按鈕的場景,這樣可以讓開發人員從意識上提高對這類缺陷的警惕,進而在編寫代碼時注意預防此類問題的發生。

《Web測試囧事》——1.6 多次操作本該禁用的頁面元件造成伺服器出錯