1.自我介紹
2.算法測試和軟件測試,那它們倆有什麼區別?
軟件測試:驗證軟件功能是否滿足用戶的需求
是偏向於產品上線前,做的功能測試,用戶使用,偏UI
軟件測試是在軟件投入使用之前通過手動或自動的方法對軟件進行測試,以找出與預期結果不相符的地方,以檢驗軟件功能是否符合用戶的需求
算法測試:
是偏向於算法上線後,對效果做的測試,用戶感知,偏後端,針對數據集
算法測試的類型主要包括–算法模型,需求規則,算法數據,功能測試,推薦效果測試,降級方案及性能優化,接口聯調和測試工具開發
3. 你做了那麼多機器學習算法的研究,爲什麼想來做測試?
由於研究生期間實驗室項目需要,做的一直是機器學習算法相關的東西,但是我本人對測試開發比較感興趣,實習想找這方面 的,以後畢業了就業方向也想往這邊走,我自己也自學了一些測試開發相關的知識啥的(誇了誇測試開發的前景)
4. 你能詳細描述一下你項目中的算法的流程和你是針對哪個點進行的改進嗎?
(針對項目具體說)
5.你在中興公司做的IP網絡的測試,具體是做哪一部分的測試?只通過ping這一條命令嗎?
配置參數:
IP地址/子網掩碼/網關/DNS
在命令行ipconfig/all可以看目前IP地址的詳細配置
網絡的連通性測試 通過主機配置的IP地址和子網掩碼
用Ping命令測試網絡連通性,定位故障範圍,檢查網卡和TCP/IP協議
你有想過網絡的丟包率這些參數嗎?(buhui)
6.你掌握的軟件測試的流程和方法?
1、需求分析
根據版本系統說明書以及需求分析說明書,對本次需求進行分析。
2、需求評審
SE、PM、開發、測試、QA人員對本次需求的實現方案以及可行性進行評審,對需求中有任何疑問也可在此環節中提出。
3、PM制定開發計劃,包括開發人員安排,編碼時間,轉測時間等。
4、開發與測試並行執行
開發人員對story進行分析設計,編碼及自測。
測試根據開發計劃輸出測試計劃,對各story進行測試點分析,並輸出測試用例。
5、測試用例評審
開發、測試等對本次需求測試用例進行評審,多方達成一致。
6、測試提供5%-10%的用例作爲冒煙用例,冒煙通過,進入ST功能測試階段;冒煙不通過版本打回,開發進行編碼修改,直到冒煙通過爲止
7、測試對測試環境進行部署OR升級,執行測試用例,測試用例包括接口測試用例以及web測試用例,ST週期一般爲4-8個工作日。
8、測試發現缺陷提單給開發,開發人員進行BUG修復,當本次需求全部測試完成,開發對問題全部修復完成,即可進入SDV1系統測試階段
9、測試對上一輪的問題進行迴歸,對系統所有功能進行全量測試,並進行性能測試。
10、SDV1階段測試發現缺陷提單給開發,開發人員進行BUG修復,當本次需求全部測試完成,開發對問題全部修復完成,即可進入SDV2系統測試階段,一個迭代一般2-3個SDV階段
11、測試對上一輪問題進行迴歸,並對系統進行進行全量以及發散測試,週期一般2-3個工作日
12、直到測試無問題,OR問題比較難以解決,且影響很小,一致確認問題遺留。測試輸出測試報告,項目經理髮布版本
7.你知道的自動化測試的軟件有哪些?
主流的自動化測試方案,無一例外,都由人機溝通的編程語言,加上機器操作的工具來組成。
功能自動化測試
VBScript + QTP(HP UFT),商用功能自動化測試方案
Python/PHP/Java/C#/JavaScprit/Ruby + Selenium/Appium + 單元測試框架,開源功能自動化測試方案
這裏我們多介紹一點,Selenium/Appium 本身不能算是測試工具,而只是機器用來操作瀏覽器的工具,並且這個工具能聽懂多種語言:
Java,C# 這兩個重 (zhòng) 語言
Python,Ruby 這兩個腳本輕語言
PHP,JavaScript 這兩個專門處理 Web 的語言
工具外加指定的語言,可以讓機器來操作瀏覽器,但是到此時還無法做到測試,於是才需要每個語言自己的單元測試框架,來一起完成這個功能自動化測試方案的構建。
此外,業界還一種暫時臨時的方案,就是 Python 2 + Robot Framework + Selenium Library 插件 + 單元測試框架 構成的一種測試方案,這個方案筆者不是非常推薦,主要基於兩點:
理念:這是一種基於關鍵字的方案,那麼關鍵字是 QTP(HP UFT)的特長,並不是Selenium的本意
技術:Python 2 終究是要退出歷史舞臺的,如果從零開始做自動化測試,還是直接入手 Python 3 吧,然而 Robot Framework 不支持 Python 3……
Python/Java/C#/JavaScprit/Ruby + Gauge,又一款開源的功能自動化測試方案
Thoughtworks 的基於BDD理念的自動化測試工具
Gauge 本身就是完整的測試方案
Gauge 是從需求分析師(BA)到測試工程師(QA)都覆蓋的測試方案
Java/Python + Macaca,阿里巴巴的功能自動化測試方案,缺點是文檔少
JavaScript + TestCafe,DevExpress 的開源功能自動化測試方案
pure node.js - TestCafe不使用Selenium,並且不需要插件來在實際瀏覽器中運行測試。它建立在node.js的頂部,因此它與現代開發工具集成和工作良好
無需額外的設置或配置- TestCafe是所有設置後立即運行測試npm install
完整的測試工具 - 使用單個啓動命令,TestCafe啓動瀏覽器,運行測試,收集結果並生成報告
JavaScript + Postman,免費的Web接口功能自動化測試方案
Groovy + SoapUI,開源的Web接口功能自動化測試方案
性能自動化測試
Java/C + HP LoadRunner,商業版性能測試方案
Java + JMeter,開源版性能測試方案
Python + locust,開源版性能測試方案
8.你覺得運營和測試在一個軟件的流程中怎麼結合起來?
9. 你應該學過數據庫,你可以用數據庫的SQL語句,寫一個表的查詢操作嗎?
SELECT 語句用於從表中選取數據,查詢獲得的結果被存放在一個結果集中。例如:SELECT LastName,FirstName FROM Persons,表示從Persons數據表獲取名爲 “LastName” 和 “FirstName” 的列的內容。
INSERT INTO 語句用於向表格中插入新的行。使用該語句需注意插入時考慮清楚字段類型避免插入後出現缺值,亂碼現象。例如:INSERT INTO Persons VALUES (‘Gates’, ‘Bill’, ‘Xuanwumen 10’, ‘Beijing’),表示向Persons數據表插入一條記錄,記錄的內容爲’Gates’, ‘Bill’, ‘Xuanwumen 10’, ‘Beijing’。
Update 語句用於修改表中的數據。例如:UPDATE Person SET FirstName = ‘Fred’ WHERE LastName = ‘Wilson’,表示爲 lastname 是 “Wilson” 的人添加 firstname。
DELETE 語句用於刪除表中的行。例如:DELETE FROM Person WHERE LastName = ‘Wilson’,表示刪除Person中LastName等於Wilson的記錄。
以上四條語句都是常用的SQL語句,在實際應用中,我們往往會加上排序、分組、指針查詢、計算等語句或函數來達到查詢所需數據的目的。例如:SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer,表示查找每個Customer的總OrderPrice。
10.linux命令下,如何用命令行安裝和更新一個軟件?
下載各自平臺的安裝包之後,CentOS 下面使用 rpm -i jdk-xxx.rpm 進行安裝,Ubuntu 下面使用 dpkg -i jdk-xxx.deb 進行安裝。其中 -i 是 install 的意思。
也可以直接下載 tar.gz 文件,然後使用 tar 工具解壓,就可以了:tar xvzf jdk-xxx.tar.gz。
11.你說一說你常用的linux命令及其使用方法
12.描述一下你所知道的數據結構算法,排序算法,例如快速排序算法?實現一下。
冒泡排序、選擇排序、插入排序、希爾排序、堆排序、快速排序
快速排序:
快速排序由於排序效率在同爲O(N*logN)的幾種排序方法中效率較高,因此經常被採用,再加上快速排序思想----分治法也非常實用
基本思想是:
1.先從數列中取出一個數作爲基準數。
2.分區過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。
3.再對左右區間重複第二步,直到各區間只有一個數。
13. 針對你所運營的微信公衆平臺,你如何寫測試用例?
(1)功能測試
(隨機想的相關的一些性能)
(2)界面測試
(自己想的)
(3)性能測試
(自己想的)
(4)安全性測試
登錄後臺之後生成的Cookie,是否是httponly(否則容易被腳本盜取)
用戶名和密碼是否通過加密的方式,發送給web服務器
是否屏蔽了SQL注入攻擊
是否可以保證後臺回覆人員的隱私
防止暴力破解,檢測是否有錯誤登錄的次數限制
(5)兼容性測試
不同移動平臺或PC環境下能否顯示正常且功能正常
同種平臺下不同微信版本能否顯示正常且功能正v
不同分辨率下顯示是否正常
(6)本地化測試
檢查在不同語言環境下,頁面的顯示是否正確
14. 數組和鏈表的區別在哪裏,在程序中具體的應用場景有哪些?
數組是將元素在內存中連續存儲的,優點是數據連續存儲內存地址連續,所以在查找數據時效率比較高,缺點是運行的時候空間大小無法根據需求進行增加和減少而改變的。數據增大時會出現越界的情況,數據小會浪費掉內存空間。在改變數據個數時,增加、插入、刪除數據效率比較低鏈表是動態申請內存空間,不需要像數組提前申請好內存大小。
鏈表只需在用時申請即可,根據需要來動態申請或刪除內存空間,對於數據增加和刪除以及插入比數組靈活。還有就是鏈表中數據在內存中可以在任意的位置,通過應用來關聯數據(就是通過存在元素的指針來聯繫)。
應用場景:
數組應用場景:數據比較少;經常做的運算是按序號訪問數據元素;數組更容易實現,任何高級語言都支持;構建的線性表較穩定。
鏈表應用場景:對線性表的長度或者規模難以估計;頻繁做插入刪除操作;構建動態性比較強的線性表。