談談最近的一個讓我印象深刻的錯誤


  最近一次讓我印象深刻的error發生在Web大作業上。我的作業是寫一個網上通緝系統,其中一個功能是管理員能夠進入后台管理界面對其他用戶的權限進行查看和更改。我完成這個功能后只使用了一個管理員賬號對系統中的一個普通用戶進行了權限更改測試,測試通過后我就認為這個功能被我順利地實現了。

  在整個系統完成,其它功能也進行了測試以后,我刪除了數據庫中所有的測試信息,認為項目展示不會有什么問題了。

  項目展示那天,我在等待展示時創建了新的管理員賬號和普通賬號測試功能,然后我發現使用管理員賬號在后台更改普通用戶權限時,雖然提交后網頁提示更改成功,但是頁面刷新后普通用戶的權限並沒有改變,嘗試更改別的用戶的權限結果依然如此。我趕緊查看了更改數據庫相關的代碼,沒有發現邏輯上有什么問題,但是更改提交后數據庫中並沒有發生任何改變。此時快輪到我展示了。

  最后在查看在網頁上提交更改的代碼時,我發現我寫的代碼存在一些問題,會導致無論我請求更改的是哪個用戶,最后提交的get請求都是將id2的用戶的權限更改為某某。而先前進行測試時,我測試更改的普通用戶的id正好是2。這次測試,更改的普通用戶的id不再是2了,所以錯誤才體現了出來。

  這個bug雖然不算復雜,但是由於我測試使用的用例不足,導致它通過了測試,差點產生了非常嚴重的后果。這給了我很大的教訓。像通過get請求傳送id這么簡單的過程也是可能出現錯誤的,所以在設計測試用例時應該充分的測試到所有的代碼邏輯。軟件測試就是這樣,你永遠也不會得出軟件已經沒有錯誤的結果,所以不經過充分測試而對自己的軟件具有自信是不可取的。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com