百度校招二面掛础倍,突然又收到通知讓面開發(fā)測試崗烛占,只有一晚上準備測試內容。臨時抱佛腳沟启,不少問題果然問到忆家。記錄如下。
相關概念
測試過程
測試過程包括五大部分德迹,分別為:單元測試芽卿、集成測試、確認測試胳搞、系統(tǒng)測試卸例、驗收測試。
黑盒
在完成完成后關注程序功能是否符合需求肌毅,是否能適當地接收輸入數據筷转、產生正確的輸出信息。
白盒
在開發(fā)中關注代碼運行的效率和結果悬而。
在設計測試用例時旦装,有用到過哪些方法?
黑盒測試:等價類摊滔,邊界值阴绢,因果圖,功能劃分艰躺,錯誤猜想呻袭。。腺兴。
白盒測試:語句覆蓋左电,分支覆蓋,邏輯覆蓋页响。篓足。。
單元測試
對軟件中最小可測單元進行檢查和驗證闰蚕。
C語言單元指一個函數栈拖、JAVA單元指一個類。
集成測試
在單元測試的基礎上没陡,將所有模塊安裝設計需求組裝成子系統(tǒng)或者系統(tǒng)涩哟,進行集成測試索赏。
實踐表明,一些模塊雖然能夠單獨工作贴彼,但并不能保證連接起來也能正常工作潜腻。一些局部上反映不出來的問題,在全局上可能暴露出來器仗。
系統(tǒng)測試
將已確認的軟件與計算機硬件融涣、外設、網絡等所有元素結合在一起精钮,進行系統(tǒng)的各種組裝測試和確認測試暴心。驗證系統(tǒng)是否滿足需求規(guī)格,找出與需求規(guī)格不符或與之矛盾的地方杂拨,從而提出更加完善的方案专普。
數據庫
鎖
類型、粒度弹沽、應用場景
類型
共享(S)鎖:多個事務可封鎖一個共享頁檀夹;任何事務都不能修改該頁; 通常是該頁被讀取完畢策橘,S鎖立即被釋放炸渡。
排它(X)鎖:僅允許一個事務封鎖此頁;其他任何事務必須等到X鎖被釋放才能對該頁進行訪問丽已;X鎖一直到事務結束才能被釋放蚌堵。
更新(U)鎖:更新鎖在修改操作的初始化階段用來鎖定可能要被修改的資源,這樣可以避免使用共享鎖造成的死鎖現(xiàn)象沛婴。
使用共享鎖時吼畏,修改數據的操作分為兩步:
首先獲得一個共享鎖,讀取數據嘁灯;
然后將共享鎖升級為排它鎖泻蚊,然后再執(zhí)行修改操作。
這樣如果同時有兩個或多個事務同時對一個事務申請了共享鎖丑婿,在修改數據的時候性雄,這些事務都要將共享鎖升級為排它鎖。這時羹奉,這些事務都不會釋放共享鎖而是一直等待對方釋放秒旋,這樣就造成了死鎖。
如果一個數據在修改前直接申請更新鎖诀拭,在數據修改的時候再升級為排它鎖迁筛,就可以避免死鎖。
粒度
鎖是具有粒度的炫加,即可以對不同的資源加鎖瑰煎。
鎖定的粒度包括 行铺然、頁俗孝、擴展盤區(qū)酒甸、表、庫等赋铝。
鎖定在較小的粒度的資源(例如行)上可以增加系統(tǒng)的并發(fā)量但需要較大的系統(tǒng)開銷插勤,從而也會影響系統(tǒng)的性能,因為鎖定的粒度較小則操作可能產生的鎖的數量會增加革骨;
鎖定在較大的粒度(例如表)就并發(fā)而言是相當昂貴的农尖,因為鎖定整個表限制了其它事務對表中任意部分進行訪問,但要求的開銷較低良哲,因為需要維護的鎖較少盛卡。
什么時候用行鎖什么時候用表鎖
對于InnoDB表,在絕大部分情況下都應該使用行級鎖筑凫,因為事務和行鎖往往是我們之所以選擇InnoDB表的理由滑沧。但在個別特殊事務中,也可以考慮使用表級鎖巍实。
第一種情況是:事務需要更新大部分或全部數據滓技,表又比較大,如果使用默認的行鎖棚潦,不僅這個事務執(zhí)行效率低令漂,而且可能造成其他事務長時間鎖等待和鎖沖突,這種情況下可以考慮使用表鎖來提高該事務的執(zhí)行速度丸边。
第二種情況是:事務涉及多個表叠必,比較復雜,很可能引起死鎖妹窖,造成大量事務回滾挠唆。這種情況也可以考慮一次性鎖定事務涉及的表,從而避免死鎖嘱吗、減少數據庫因事務回滾帶來的開銷玄组。
測試要點
正確性、可用性谒麦、邊界條件俄讹、性能、壓力測試绕德、錯誤恢復患膛、兼容性、安全性耻蛇。
測試用例
微信朋友圈
1.是否可以正常點贊和取消踪蹬;
2.點贊的人是否在可見分組里胞此;
3.點贊狀態(tài)是否能即時更新顯示;
4.點贊狀態(tài)跃捣,共同好友是否可見漱牵;
5.不同手機,系統(tǒng)顯示界面如何疚漆;
6.性能檢測酣胀,網速快慢對其影響;
7.點贊顯示的是否正確娶聘,一行幾個闻镶;
8.點贊是否按時間進行排序,頭像對應的是否正確丸升;
9.是否能在消息列表中顯示點贊人的昵稱铆农、備注;
10.可擴展性測試狡耻,點贊后是否能發(fā)表評論墩剖;
11.是否在未登錄時可查看被點贊的信息。
自動販賣機
金額剛夠酝豪,順利出貨
金額超出涛碑,找零出貨
金額超出, 沒錢找零,出貨
金額不足,進行提示孵淘,把貨幣退出
金額足夠蒲障,取消交易
假幣,不出貨
掃碼支付
1,通過網銀充值10元(標題) 然后請自己描述詳細操作步驟
預期結果 支付寶帳戶中增加10元(前提是不考慮網絡延時瘫证,或各網銀的出帳延時)
2,通過網銀充值時 網銀余額不足
預期結果 充值失敗 不影響支付寶中帳戶金額
3,通過網銀充值時揉阎,在任意操作步驟中(建議是最后一步)取消該服務
預期結果 充值失敗 不影響支付寶中帳戶金額
4,充入0元 (基本上不會同意充0的操作的吧)
預期結果 充值失敗 提示輸入大于0的金額
5,充入n元(N= 支付寶每次限制的最大充值金額)
預期結果 支付寶帳戶中增加n元
6 充入N+1元 (與第5條一樣,都是邊界值法背捌。但是要分開寫成兩條)
預期結果 充值失敗/提示金額大出限制
百度首頁測試
界面測試
文字毙籽、按鈕、圖標等大小顯示正常毡庆,風格一致坑赡,整體美觀自然。
功能測試
百度首頁呈現(xiàn)的功能:新聞么抗,網頁毅否,貼吧,知道,音樂,圖片,視頻,地圖,這8個是最主要的蝇刀;
緊接著次要的百科螟加,文庫,hao123,更多;
除此之外就是把百度設為主頁捆探,安裝百度瀏覽器然爆,加入百度推廣,關于百度等等黍图;
和用戶相關的還有登錄曾雕,注冊。
邊界條件測試
- 用例說明: 最小輸入值為0個字時雌隅。
輸入: 不輸入文字翻默,直接按搜索缸沃。
預期結果: 頁面刷新恰起,無變化。 - 用例說明: 百度搜索文本框內可輸入的最大字數是100個漢字趾牧。
輸入: 鍵盤輸入或復制粘貼一段很長的中文進入文本框检盼。
預期結果: 100字時不能輸入或被百度自動截取其中前100個字。 - 用例說明: 百度搜索文本框的輸入值在點擊搜索按鈕后翘单,會被截取前38個漢字吨枉,其后面的字詞均被忽略。
輸入: 鍵盤輸入或復制粘貼大于38個漢字進入搜索框哄芜。
預期結果: 按下搜索按鈕貌亭,百度跳轉到搜索結果頁面,并提示“"××" 及其后面的字詞均被忽略认臊,因為百度的查詢限制在38個漢字以內”圃庭,將被自動截取的內容復制粘貼到word,統(tǒng)計字數為38失晴。 - 用例說明:任意一個中文剧腻、英文、符號涂屁、空格在輸入進文本框內第一次計數時均視同一個漢字书在。
輸入:輸入或者復制粘貼任意一個中文、英文拆又、符號儒旬、空格后輸入大于38漢字。
預期結果: 第一個字符被當做漢字計算帖族。 - 用例說明: 連續(xù)的空格在點擊搜索按鈕后進行搜索時會自動合并栈源,并轉化一個單獨的空格。
輸入: 復制粘貼38個漢字進入搜索文本框盟萨,并中間加入62個連續(xù)空格后按下搜索凉翻。
預期結果: 搜索結果里最后一個漢字被忽略,因為前面有37個漢字加1個合并后的空格長度已達38.并且在文本框里原來62個空格的位置現(xiàn)在顯示一個空格捻激。
兼容性測試
WINDOWS/LINUX/UNIX等各類操作系統(tǒng)下及各版本條件下的應用制轰;
IE/FIREFOX/GOOGLE/360/QQ等各類瀏覽器下及各版本條件下的應用前计;
SQL/ORACLE/DB2/MYSQL等各類數據庫存儲情況下的兼容性測試;
簡體中文垃杖、繁體中文男杈、英文等各類語種軟件平臺下的兼容性測試;
IPHONE/IPAD、安卓等各類移動應用平臺下的兼容性測試闲坎。