軟件測試面試題到這里已經分享第四期了,也是最后一期。最后祝同學們都能夠順利找到心儀的工作拿高薪,廢話不多說,下面上題了~
46、您以往是否曾經從事過性能測試工作?如果有,請盡可能的詳細描述您以往的性能測試工作的完整過程。
(以自己最熟悉的性能測試項目為例)
是的,曾經做過網站方面的性能測試,雖然做的時間并不久(2個月吧),當時呢,是有位網站性能測試經驗非常豐富的前輩帶著我一起做。
性能測試類型包括負載測試,強度測試,容量測試等
負載測試:負載測試是一種性能測試指數據在超負荷環境中運行,程序是否能夠承擔。
強度測試: 強度測試是一種性能測試,他在系統資源特
容量測試:確定系統可處理同時在線的最大用戶數
在網站流量逐漸加大的情況下,開始考慮做性能測試了,首先要寫好性能測試計劃,根據運營數據得出流量最大的頁面(如果是第一次的話,一般是首頁,下載頁,個人帳戶頁流量最大,而且以某種百分比)
Web服務器指標指標:
47、你對測試最大的興趣在哪里?為什么?
最大的興趣就是測試有難度,有挑戰性!做測試越久越能感覺到做好測試有多難。曾經在無憂測試網上看到一篇文章,是關于如何做好一名測試工程師。一共羅列了11,12點,有部分是和人的性格有關,有部分需要后天的努力。但除了性格有關的1,2點我沒有把握,其他點我都很有信心做好它。
剛開始進入測試行業時,對測試的認識是從無憂測試網上了解到的一些資料,當時是沖著做測試需要很多技能才能做的好,雖然入門容易,但做好很難,比開發更難,雖然當時我很想做開發(學校專業課我基本上不缺席,因為我喜歡我的專業),但看到測試比開發更難更有挑戰性,想做好測試的意志就更堅定了。
不到一年半的測試工作中,當時的感動和熱情沒有減退一點(即使環境問題以及自身經驗,技術的不足,做測試的你一定也能理解)。
我覺得做測試整個過程中有2點讓我覺得很有難度(對我來說,有難度的東西我就非常感興趣),第一是測試用例的設計,因為測試的精華就在測試用例的設計上了,要在版本出來之前,把用例寫好,用什么測試方法寫?(也就是測試計劃或測試策略),如果你剛測試一個新任務時,你得花一定的時間去消化業務需求和技術基礎,業務需求很好理解(多和產品經理和開發人員溝通就能達到目的),而技術基礎可就沒那么簡單了,這需要你自覺的學習能力,比如說網站吧,最基本的技術知識你要知道網站內部是怎么運作的的,后臺是怎么響應用戶請求的?測試環境如何搭建?這些都需要最早的學好。至少在開始測試之前能做好基本的準備,可能會遇到什么難題?需求細節是不是沒有確定好?這些問題都能在設計用例的時候發現。
第二是發現BUG的時候了,這應該是測試人員最基本的任務了,一般按測試用例開始測試就能發現大部分的bug,還有一部分bug需要測試的過程中更了解所測版本的情況獲得更多信息,補充測試用例,測試出bug。還有如何發現bug?這就需要在測試用例有效的情況下,通過細心和耐心去發現bug了,每個用例都有可能發現bug,每個地方都有可能出錯,所以測試過程中思維要清晰(測試過程數據流及結果都得看仔細了,bug都在里面發現的)。如何描述bug也很有講究,bug在什么情況下會產生,如果條件變化一點點,就不會有這個bug,以哪些最少的操作步驟就能重現這個bug,這個bug產生的規律是什么?如果你夠厲害的話,可以幫開發人員初步定位問題。
48、你以前工作時的測試流程是什么?
(靈活回答)
公司對測試流程沒有規定如何做,但每個測試人員都有自己的一套測試流程。我說下我1年來不斷改正(自己總結,吸取同行的方法)后的流程吧。需求評審(有開發人員,產品經理,測試人員,項目經理)->需求確定(出一份確定的需求文檔)->開發設計文檔(開發人員在開始寫代碼前就能輸出設計文檔)->想好測試策略,寫出測試用例->發給開發人員和測試經理看看(非正式的評審用例)->接到測試版本->執行測試用例(中間可能會補充用例)->提交bug(有些bug需要開發人員的確定(嚴重級別的,或突然發現的在測試用例范圍之外的,難以重現的),有些可以直接錄制進TD)->開發人員修改(可以在測試過程中快速的修改)->回歸測試(可能又會發現新問題,再按流程開始跑)。
49、當開發人員說不是BUG時,你如何應付?
開發人員說不是bug,有2種情況,一是需求沒有確定,所以我可以這么做,這個時候可以找來產品經理進行確認,需不需要改動,3方商量確定好后再看要不要改。二是這種情況不可能發生,所以不需要修改,這個時候,我可以先盡可能的說出是BUG的依據是什么?如果被用戶發現或出了問題,會有什么不良結果?程序員可能會給你很多理由,你可以對他的解釋進行反駁。如果還是不行,那我可以給這個問題提出來,跟開發經理和測試經理進行確認,如果要修改就改,如果不要修改就不改。其實有些真的不是bug,我也只是建議的方式寫進TD中,如果開發人員不修改也沒有大問題。如果確定是bug的話,一定要堅持自己的立場,讓問題得到最后的確認。
50、結構化程序設計和面向對象程序設計各自的特點及優缺點是什么?
(不需要回答如此復雜)
結構化程序設計思想采用了模塊分解與功能抽象和自頂向下、分而治之的方法,從而有效地將一個較復雜的程序系統設計任務分解成許多易于控制和處理的子程序,便于開發和維護。它的重點在于把功能進行分解。但是由于在實際開發過程當中需求會經常發生變化,因此,它不能很好的適應需求變化的開發過程。結構化程序設計是面向過程的。
面向對象程序設計以需求當中的數據作為中心,來進行設計,具有良好的代碼重用性。
封裝性:也叫數據隱藏,用戶無需知道內部工作流程,只要知道接口和操作就可以的。
繼承性: 一種支持重用的思想,在現有的類型派生出新的子類,例如新型電視機在原有型號的電視機上增加若干中功能而得到,新型電視機是原有電視機的派生,繼承了原有電視機的屬性,并增加了新的功能。
多態性:指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同的數據類型或表現出不同的行為。
動態聯編:指一個計算機程序自身彼此關聯的過程,按照聯編所進行的階段不同,可分為兩種不同的聯編方法:靜態聯編和動態聯編。
51、描述TCP/IP協議的層次結構,以及每一層中重要協議。
52、簡述子網掩碼的用途。
子網掩碼主要用來判斷兩個IP地址是否處在同一個局域網當中;子網掩碼是由連續的2進制1組成的。子網掩碼和IP地址進行按位與運算后,結果一致,表示處于一個局域網當中,如果不一致,表示不再一個局域網當中,需要尋找路由。
53、說出4種以上常用的操作系統及其主要的應用范圍(微軟的操作系統除外)。
Linux(Red Hat、SUSE、Debian、Trubo Linux):主要用于搭建各類服務器
MAC OS:蘋果機的操作系統,用于圖像處理
Unix(AIX:IBM服務器的專用操作系統;
Solaris:Sun操作系統;FreeBSD、NetBSD)
54、在Linux系統中,一個文件的訪問權限是755,其含義是什么?
755表示該文件所有者對該文件具有讀、寫、執行權限,該文件所有者所在組用戶及其他用戶對該文件具有讀和執行權限。
55、Windows操作系統中PATH環境變量的作用是什么?
PATH是Windows操作系統環境變量,PATH作用是用戶在命令行窗口執行一個命令,則在PATH變量設置的目錄下依次尋找該命令或對應的執行文件,若找到,則執行,若沒有找到,則命令行窗口返回無效命令。
56、在centos中,從root用戶切到userl用戶,一般用什么命令?
su
su user1 切換到user1,但切換后的當前目錄還是root訪問的目錄
su – user1 切換到user1,并且當前目錄切換到user1的根目錄下(/home/user1/)
57、Linux中,一般怎么隱藏文件?
文件名以一個.開頭
58、DNS是什么,它是如何工作的?
域名解析服務。用于將域名解析為IP,或反和將IP解析為域名。
客戶機可指定DNS服務器來解析,或用本機hosts文件進行解析。
59、簡述一下c/s模式或者b/s模式?
C/S模式:客戶端/服務器模式。工作原理:Client向Server提交一個請求;Server則使用一些方法處理這個請求,并將效果返回給Client。
B/S結構,即Browser/Server(瀏覽器/服務器)結構,是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶界面完全通過WWW瀏覽器實現,一部分事務邏輯在前端實現,但是主要事務邏輯在服務器端實現,形成所謂3-tier結構。B/S結構,主要是利用了不斷成熟的WWW瀏覽器技術,結合瀏覽器的多種Script語言(VBScript、JavaScript…)和ActiveX技術,用通用瀏覽器就實現了原來需要復雜專用軟件才能實現的強大功能,并節約了開發成本,是一種全新的軟件系統構造技術。
60、TCP/UDP有哪些區別?
TCP-有連接,所以握手過程會消耗資源,過程為可靠連接,不會丟失數據,適合大數據量交換
UDP-非可靠連接,會丟包,沒有校驗,速度快,無須握手過程
最后想學習軟件測試的同學,可以參考千鋒軟件測試培訓班提供的軟件測試學習路線,內容包含軟件測試環境配置與管理,數據庫測試技術,軟件測試編程技術,應用程序測試技術,互聯網/移動互聯網測試技術等,根據千鋒軟件測試培訓機構提供的軟件測試學習路線圖,可以讓你對學好軟件測試需要掌握的知識有個清晰的了解,并能快速入門軟件測試。想要獲取學習路線或學習資料的同學可以添加我們的軟測技術交流qq群:858327674 加群找管理領取即可,軟測相關問題也可以加群解答,等你來哦~~~