談關于最近軟件測試的面試(很好的一篇文章)
前段時間有新的產品需要招人,安排和參加了好幾次面試,下面就談談具體的面試問題,在面試他人的同時也面試自己。
面試問題是參與面試同事各自設計的,我也不清楚其他同事的題目,就談談自己設計的其中2道題。
過去面試總是會有如何測試Google首頁,測試杯子,測試電話之類的,有偷懶的嫌疑,這次來個具體的,第一個題目如何測試下面這個表:
一、第一個問題設計測試用例
面試里得到的很多回答就是一條條羅列,例如:
1、界面顯示是否正常,各種瀏覽器、分辨率,文字是否顯示正常
2、這個數據是否和數據庫一致
3、promote按鈕是否正常使用
4、上一頁下一頁按鈕是否正常
5、列表標題是否支持排序,排序功能是否正常(很奇怪,這個提到的人不多,類似的下拉列表的Autocomplete也很少人提到)
6、......
比較少的聽到按照測試類型來設計的,例如界面測試用例、功能測試用例、大數據測試用例等等,
也沒有聽到按照正常用例和異常用例來羅列。
二、如果你來設計這個表,還會做哪些完善
1、可能有些人注意到,這個結果總共有99523個,提供的翻頁只有前進后退,是否加個go to page的功能
2、貌似我們以前見過列表翻頁還有提供第一頁和最后一頁,那是否也加上
3、結果很多,是不是加個搜索(其實這個數據是搜索得到的)
4、這個列表一頁只顯示10個結果,是否可以多顯示些,是否加個每頁顯示數目
...
問到第二個問題,有些面試人員就迷惑了,經常聽到的是“我們都是根據需求測試的”,那我問,你們對用戶體驗關注么,
得到很多回答是“設計好的,我們只是測試下”,被動式的測試居多。
三、如果你來實現這個表會怎么做
1、最簡單的,拉個控件,之后連接到數據庫,搞個dataset/datatable數據綁定讀取數據顯示
2、直接連接到數據庫如果數據量大時,前臺等待過久怎么辦,哦,有AJAX,異步獲取數據
3、還有沒有更好的,預加載,生成10頁的結果放在服務端,這個技術在網購網站首頁的促銷商品大量使用
這是一個優化的問題,可惜很多測試對于開發的設計實現沒有任何的興趣或是根本不去了解。
了解了下,有很多公司是不能看代碼的,能看代碼的也沒有編輯的權限,把測試定位成開發的服務,但并沒有充分利用測試可以幫助開發定位錯誤,
讓開發更快的修復缺陷,更多的是選擇讓測試熟悉業務。
四、某位測試工程師自己寫了個自動化腳本進行翻頁,可是翻頁到1萬多結果的時候,瀏覽器崩潰了,你來研究下是什么原因
這個問題很多人思索后放棄了,那么我提示說崩潰的時候,瀏覽器占用了2G的內存,極少有人提到查看日志。
1、使用自動化的時候,是否可以再寫個腳本監控瀏覽器操作的資源使用情況
2、內部測試系統是否可以打開debug模式用來記錄日志
3、是否可以查看開發代碼,看看開發實現翻頁部分的代碼
4、和開發溝通,一起來排查錯誤
...
很失望,到這個問題很少得到滿意的答復,測試的同學們在廣度上有所突破外是否也注重下深度,我自己也逐漸意識到這些問題,剛好作為面試題目。
相似的問題,如何測試下拉列表,有興趣的同學可以練練手。
另一題目是關于文件讀寫
有一個文件,存放著地理信息,類似下面,想從里面取出IP地址用在其他地方,即如何從一個文件中取出IP地址存入另一個文件。
1.0.0.0|apnic debogon project|null|7|0r||12|0|22581|4|0||
1.0.1.0|chinanet fujian province network|null|591|41||43|0|35075|4|0||
1.0.2.0|chinanet fujian province network|null|591|41||43|0|35075|4|0||
1.0.3.0|chinanet fujian province network|null|591|41||43|0|35075|4|0||
1.0.4.0|level collins street|null|7|0r||12|0|3719|4|0||
1.0.5.0|level collins street|null|7|0r||12|0|3719|4|0||
1.0.6.0|level collins street|null|7|0r||12|0|3719|4|0||
1.0.7.0|level collins street|null|7|0r||12|0|3719|4|0||
1.0.8.0|chinanet guangdong province network|null|20|47||43|0|7392|4|0||
1.0.9.0|chinanet guangdong province network|null|20|47||43|0|7392|4|0||
...
這個第一步就很多人放棄了,理由基本上是“以前學校學過某某語言,后面工作就沒寫過代碼”, 稍微好點的呢,“可以說下思路么”,也行,那說下思路吧。
少數人會想到使用awk命令直接在teminal運行,也有想到寫個小腳本來讀取寫入。
應該說不管開發測試,很多都是計算機相關專業畢業的,我想在現行教育體制下,大學里至少都學過C語言吧,可是有些測試人選擇測試職業后,
直接把Coding的技能拋棄了,注意,是自己拋棄了,雖然在公司工作上不用編碼,但是工作后呢,有沒有自己寫些東西。
好了,假設寫了個小腳本,例如理想情況下第一豎線前都是IP地址,寫個python腳本如下:
#!/usr/bin/python2.4 # import re geofile=open('geo.csv','r') lines=geofile.readlines() for line in lines: a=line.split('|') ipfile=open('ip.txt','a') print >> ipfile,a[0] geofile.close() ipfile.close() |
接下來請對寫的這個命令也好,腳本也好測試。
1、正常用例
2、異常用例
這個問題可以從2種角度入手,一種直接把它當作黑盒來測試,不知道里面的實現,提供不同的輸入文件查看輸出結果;另一種可以采用單元測試。
可惜很多面試人糾結在文件的第一列是不是IP地址,需要判斷。
腳本寫好了,也測試了,如果這個地理信息文件很大呢,具體點,這個是全球地理信息文件,超過2G,你寫的這個腳本執行要很久哦。
這又是個優化問題,整個面試只有一位同學說可以采用分割文件的做法,先分割再合并,他也是提到使用awk命令的同學。
可惜沒有聽到使用多線程多進程的方式。
這次面試感慨頗多,面試的對象基本是工作2、3年的測試工程師,但對測試的認識普遍還是幾年前的樣子,面試要求也是一再降低,統計下來,9個候選人能選中一個。
雖然外面宣傳的測試職業前途非常光明,不過在實際工作中,中小型企業測試人的地位普遍低于開發,除了幾個大公司。
測試如果想要提高自己的地位,首先要提高自己的技能,不僅僅是在測試技術上,開發技術和對開發設計的理解也是需要提高的,這樣才能獲得和開發同等的交談資格。
posted on 2012-08-27 09:50 順其自然EVO 閱讀(490) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄