1、開場問題:(自由發揮)java
一、請自我介紹一下;
二、爲何離開上一個公司呢?
三、作測試多久了?之前作過哪些項目?大家之前測試的流程是怎樣的?用過哪些測試工具?
四、你以爲爲何要在一個團隊中開展軟件測試工做,測試的價值提如今哪裏?python
2、技術方面:mysql
一、代碼能力:linux
1.一、請用本身最擅長的編程語言,將一個字符串反轉並輸出?android
參考答案:
(1)、python實現:
方法一、使用[::-1]:web
s = 'python' print s[::-1]
方法二、使用reverse()方法:面試
l = list(s)
l.reverse()
print ''.join(l)
(2)、java實現:
方法一、使用StringBuffer,一點技巧也沒有:sql
public String reverse(String s){ return new StringBuffer(s).reverse().toString(); }
方法二、靈活運用了字符串功能:shell
public String reverse(String s){ char[] letters=s.toCharArray(); char temp; int len=letters.length; for(int i=len/2-1;i>=0;i--){ temp=letters[i]; letters[i]=letters[len-1-i]; letters[len-1-i]=temp; } return new String(letters); }
1.二、針對數十個安卓應用市場渠道包,請問如何進行大致的功能驗證,簡單敘述一下思路?數據庫
參考答案:能夠自動化遍歷某個目錄下面的全部渠道包apk,而後循環:安裝——》登陸——》**操做——》退出——卸載
二、測試思路:
2.一、給你一個模塊,好比註冊模塊,你會怎麼樣設計與執行測試?
參考答案:數據——》從哪裏來(入口)——》到哪裏去(出口)——》數據庫(檢驗數據的正確性)
2.二、請說一下你之前公司功能測試經過的標準?(自由發揮)
2.三、你認爲app測試過程當中,相對於web,要更多注意哪些測試點?或者說app測試和web測試有哪些不一樣之處?
參考答案:
一、「點擊加載更多」的分頁處理技術,是否有重複的數據,數據顯示是否完整,到達最後一頁後是否還有數據進行顯示;
二、數據的排序方式;
二、界面跳轉是否正確;
三、出現異常狀況是否有提示,是否跳轉到已經設定好的默認頁面,如斷網狀況下,顯示網絡未鏈接,數據加載失敗,或者若是此頁面沒有數據顯示,顯示友好提示信息;
四、圖片處理的地方,是否容易出現程序崩潰現象,主要是圖片壓縮機制;
五、前臺展現的數據,後臺進行變更(增、刪、改),是不是實時更新仍是app一開始運行再進行加載;
六、前臺主動發出請求,後臺數據庫中是否存在相應的數據同時包括數據的關聯性(商家的會員進行下訂單,數據庫中生成一條訂單的記錄的同時,生成一條積分記錄,該會員的積分進行相應的變化);
七、手機app網絡環境測試重點:主要是針對2G、3G、4G、wifi三種網絡環境進行測試 ;
八、手機app兼容性測試:主要是針對android各個系統版本進行測試,及測試屏幕分辨率進行測試;
三、測試技術:
3.一、說說會用哪些抓包工具?怎麼用的?
參考答案:好比fiddler,主要用來作app抓包使用,先在fiddler客戶端作好各項配置,端口設置爲8888,而後在手機上設置代理,就能夠抓包了,主要看的是服務器返回的值、還可以修改傳入參數、傳出的參數、模擬網絡延時,去構造不一樣場景。
3.二、什麼是alpha測試和beta測試?
alpha測試:在公司場地,由員工主導的測試行爲;beta測試:在客戶場地,由客戶主導進行的測試。
3.三、請寫出一個SQL來查詢分數前五5的全部人?
mysql:select * from 分數表 order by 分數 desc limit 5;
oracle:select top 5 * from 分數表 order by 分數 desc;
3.四、linux經常使用命令有哪些?
cd命令:切換到某個目錄
ls命令:列出當前目錄的全部文件、文件夾
pwd命令:列出當前目錄的路徑
cp命令:複製
mv命令:剪切
grep命令:管道
find命令:查找
rm命令:刪除
ps命令:查看進程
kill命令:殺掉某個進程
cat命令:查看某文件
tar命令:打包
chmod命令:賦權限
chown命令:改變文件的全部者
vim命令:文本編輯
3.五、請說明Android手機和IOS手機,系統有什麼區別?
一、二者運行機制不一樣:IOS採用的是沙盒運行機制,安卓採用的是虛擬機運行機制。
二、二者後臺制度不一樣:IOS中任何第三方程序都不能在後臺運行;安卓中任何程序都能在後臺運行,直到沒有內存纔會關閉。
三、IOS中用於UI指令權限最高,安卓中數據處理指令權限最高。
3.六、請簡要介紹一下安卓系統四層架構?
從上到下,依次是:應用程序層——》應用程序框架層——》系統運行庫層——》Linux核心層
3.七、簡單介紹一下Android SDK中自帶的幾個工具/命令的功能?
參考答案:
ddms:Dalvik Debug Monitor Service,是 Android 開發環境中的Dalvik[虛擬機]調試監控服務。
monkey:Android中的一個命令行工具,能夠運行在模擬器裏或實際設備中。它向系統發送僞隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。
uiautomator:UIAutomator是Eclipse自帶的用於UI自動化測試工具,可仿真APP上的單擊、滑動、輸入文本等操做。
monitor:同uiautomator
adb:ADB的全稱爲Android Debug Bridge,就是起到調試橋的做用。經過ADB咱們能夠在Eclipse中方面經過DDMS來調試Android程序,就是debug工具。
3.八、經常使用的adb命令有哪些?請隨便寫一個monkey腳本,並解釋其中參數的含義?
參考答案:
(1)、adb devices、adb install、adb uninstall、adb shell pm 、adb shell am ,
更多adb命令可參考:http://www.jianshu.com/p/a010d34c8fb8
(2)、adb shell monkey -p com.xiaoniu.finance -s 123 –throttle 500 –ignore-crashes –ignore-timeouts –ignore-security-exceptions -v -v -v 2000 > d:\xnonline-monkey-test1.txt
-p:app包名、
–throttle:每一個操做的間隔時間,單位ms
–ignore-crashes:忽略崩潰
–ignore-timeouts:忽略超時
–ignore-security-exceptions:忽略安全異常
-v -v -v:日誌詳細等級,3個v表明最詳細等級的日誌
d:\xnonline-monkey-test1.txt:表明將產生的日誌,放到本地PC的D盤,並命名爲:xnonline-monkey-test1.txt
3.九、測試過程當中遇到app出現crash或者ANR,你會怎麼處理?
參考答案:能夠先把日誌過濾出來: adb logcat | findstr xxxxx(過濾日誌信息) ,而後再搜索其中的關鍵字,好比:exception、crash,看看是那些方法或者異常致使了問題的發送,初步定位問題緣由後,能夠交給開發人員去具體查找深層緣由並修復。
3.十、請說一下以往工做中都曾具體作過哪些工做?其中最擅長哪部分工做(功能,自動化(UI和接口),性能)?這部分你是怎麼作的?(自由發揮)
3.十一、請簡單介紹一下實用過的安卓UI自動化測試工具?
參考答案:
appium:是一個移動端的自動化框架,可用於測試原生應用,移動網頁應用和混合型應用,且是跨平臺的。
robotium:是一款國外的Android自動化測試框架,主要針對Android平臺的應用進行黑盒自動化測試,它提供了模擬各類手勢操做(點擊、長按、滑動等)、查找和斷言機制的API,可以對各類控件進行操做。
3.十二、你以爲app的性能測試,即專項測試,須要重點關注那些方面?
參考答案:內存、cpu佔用、耗電量、流量、流暢度等
四、技術熱情:(考察我的潛力,自由發揮)
4.一、你爲何來選擇作測試?
4.二、你認爲理想的測試流程是什麼樣子?
4.三、你認爲如何提升我的的軟件測試技術?
4.四、談談軟件測試職業發展,以及我的將來的打算?
3、技術以外:(考察軟實力,自由發揮)
一、溝通能力; 二、團隊合做; 三、執行力; 四、容易相處;