小明的軟體測試故事系列:第一篇之Json導致的事故總結
第一篇 Json導致的事故總結
人物簡介:
小明,男,25歲,一個普通的不能再普通的大學畢業生,剛剛參加工作兩年,在某網際網路公司擔任測試工程師一職。與其他剛畢業的同學一樣,愛好看電影、聽音樂、爬山……還有倒騰電子數碼產品。人生格言是:"我不敢肯定,但是我和勝利有個約定",目前最大的願望是:揮灑青春,紮根北京。 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~
大熊,男,32歲,資深測試工程師,在某網際網路公司從事測試工作長達8年之久,是小明的Leader。為人嚴肅認真,平時上班總是板著臉,同事從未見他笑過。愛好不詳、婚姻狀況不詳,因為體重180斤再加上臉比較黑,所以人送外號"大熊"。
今天的故事是這樣的….
大熊:小明,今天有個測試任務你測一下。
小明:什麼任務?
大熊:瀏覽器搜尋欄推薦列表的測試任務。
功能需求:當使用者滑鼠點選搜尋欄時,搜尋欄會向搜尋伺服器請求最熱門搜尋詞,伺服器返回內容後,瀏覽器將內容以下拉選單的方式展示出來。
小明:好的。
三天後,該功能測試完畢上線了……
大熊:小明,你給我過來!(四川話口音)
小明:老大,什麼事?
大熊:剛接到反饋,線上使用者只要開啟搜尋欄就會主程式崩潰,你是怎麼測的!
小明:我那天測的時候沒有這個問題啊。
大熊:你當時都測試了哪些用例?
小明:不就是點選搜尋欄能夠彈出下拉選單嘛,另外還測試了:
返回條目的個數;
點選下拉選單內容能夠跳轉到對應搜尋結果;
切換別的搜尋引擎不會有下拉選單;
伺服器返回的內容是中文、英文、數字的時候,下拉選單內容也是對應的內容。
伺服器返回的資料超長的情況。
大熊:伺服器返回的資料格式是什麼?有沒有測試格式異常?
小明:伺服器返回的資料格式是 json 格式,沒有測試格式異常。格式異常這種情況測它有意義嗎?怎麼可能會出現返回的資料異常啊,這個伺服器都是我們公司自己的伺服器。
大熊什麼話都沒說,讓小明先去查明崩潰原因。
不久之後,小明瞭解到了崩潰原因,原來是:
正常情況下:
出現問題時:因為搜尋伺服器出現了異常,返回給瀏覽器的資料格式不是json,而是一段html,而瀏覽器仍然當做json去解析,所以發生了異常崩潰了。
小明:老大,我知道錯了,Json格式異常也需要測。
大熊強忍胸中的怒火,在電腦上開啟了一份檔案,那是一份很長的事故列表,其中的內容是這樣寫的:
2013年10月,一款叫做桌面助手程式在獲取天氣預報資料時,由於伺服器返回的json格式資料異常,導致桌面助手頻繁崩潰。該問題造成了比較大的影響,Leader被罰1000元,測試團隊上下做了深刻的反省和總結。
2012年3月,瀏覽器升級程式在下載一個升級策略.dll檔案時 ,該檔案在傳輸過程中被江西運營商加入了一段html的廣告,導致升級程式載入.dll檔案時異常,造成江西一帶使用者無法升級。
2010年11月,公司大BOSS川總反饋,在搜狗瀏覽器搜尋欄輸入雙引號,瀏覽器崩潰。崩潰原因是返回的資料因為雙引號未轉義原因,將json資料格式配對破壞,導致解析失敗崩潰。事後測試組Leader和測試人員被當季度罰績效考核不合格。
……
看到這份列表,小明半天沒有說出話來。
大熊問到:你從這件事得到了什麼總結?
小明思考片刻,理了理頭緒,娓娓道來:
測試客戶端時,要考慮伺服器出現異常情況時,不會對客戶端造成影響,例如伺服器502掛掉了。
測試功能時要了解到網路傳輸過程中的資料格式,除了使用等價類、邊界值考慮常見的中英文數字等資料之外,還要對資料格式異常進行測試,例如:json資料缺少{;xml資料缺少<等情況
接第2點,還要考慮返回的資料為空。
測試功能時還要考慮到網路傳輸過程中的異常情況,如斷網、直接拔網線等。
大熊點點頭,繼續問道:如何構造這些異常情況呢?
小明:不知道….
大熊:用Fiddler攔截請求,具體用法去查知識庫!另外,本季度PM成績從B開始,以示懲罰。
後來,該事故的處罰結果為:大熊作為Leader連帶罰款1000元,小明季度獎金取消。
最後:
可以到我的個人V:atstudy-js,可以免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的影片學習教程免費分享!其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。
這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2911664/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 軟體測試:Java-String的常用方法總結Java
- 軟體測試基礎大總結
- 軟體測試之資料庫系列五資料庫
- 軟體測試之資料庫系列四資料庫
- 軟體測試之資料庫系列三資料庫
- 軟體測試之資料庫系列二資料庫
- 軟體測試之資料庫系列一資料庫
- 軟體測試之資料庫系列六資料庫
- 軟體測試之資料庫測試技術系列七資料庫
- 軟體測試要學什麼(4)軟體測試流程及常見測試點總結
- 軟體測試需要具備的知識體系(個人總結)
- 軟體工程單元測試作業總結軟體工程
- 一次JVM記憶體問題導致的線上事故JVM記憶體
- 記一次記憶體溢位導致的生產事故記憶體溢位
- 軟體為什麼要做異常測試?測試員必知的22個測試點總結!
- 軟體測試——三、軟體測試的分類
- 軟體驗收測試之α測試和β測試,如何選擇權威的軟體檢測機構
- 軟體測試方法彙總
- 博弈論之軟體測試的價值
- 軟體測試之測試分類_1.4
- 軟體測試之易用性測試
- 軟體測試技術學習技巧總結,助你事半功倍
- 總結49種軟體測試方法,你知道幾個?
- 軟體面試體總結待完善面試
- 什麼是軟體測試?入門測試需要具備的理論知識體系(個人總結)
- 一個平凡軟體測試人的故事——畢業季獻給青春
- 軟體測試真的很重要!——軟體測試的作用
- 軟體測試書籍-學軟體測試最好的書
- 介面測試之 json 中的 key 獲取JSON
- 介面測試之json中的key獲取JSON
- 軟體測試之Web測試知識分享,權威的軟體測評機構如何收費?Web
- 軟體測試的流程
- 軟體測試的策略
- 軟體測試的方法
- 軟體測試培訓教程:軟體測試面試之怎麼測試刷抖音?面試
- 軟體複用導致的軟體依賴問題 - research!rsc
- 軟體產品測試之效能效率測試
- 軟體測試之登入測試詳解