【面經筆記】軟件測試相關問題

爲什麼選擇測試這行?

答:它是一個新興的行業,有發展潛力,而且很鍛鍊人,需要掌握更多的技能,比做開發要更全面。


請問功能測試和性能測試的區別是什麼?

答:1)測試目的:

功能測試:檢測實際軟件的功能是否符合用戶需求,測功能是不是全部實現,某個實現是不是有BUG。主要爲了發現以下幾類錯誤:A、是否有不正確或遺漏的功能?B、功能實現是否滿足用戶需求和系統設計的隱藏需求?C、能否正確接收輸入?能否正確輸出結果?

性能測試:驗證軟件質量的三個質量特性,可靠性,正確性和效率。主要是測試產品的健壯性

2)測試方式:

功能測試按照系用例,按照系統需求說明書和測試用例,對產品的功能一步步進行測試。找出產品功能是否全部實現

性能測試:一般都使用性能工具對產品的健壯性進行評估。通過創建場景和虛擬用戶模擬真實環境,進行壓力測試和負載測試。


軟件測試的流程是什麼?

  需求調查:全面瞭解系統概況、應用領域、軟件開發週期、軟件開發環境、開發組織、時間安排、功能需求、性能需求、質量需求及測試要求等。根據系統概況進行項目所需的人員、時間和工作量估計以及項目報價。
  制定初步的項目計劃。
  測試準備:組織測試團隊、培訓、建立測試和管理環境等。
  測試設計:按照測試要求進行每個測試項的測試設計,包括測試用例的設計和測試腳本的開發等。
  測試實施:按照測試計劃實施測試。
  測試評估:根據測試的結果,出具測試評估報告。
  


你所熟悉的軟件測試類型有哪些?

  測試類型有:功能測試、性能測試、界面測試
  功能測試在測試工作中佔有比例最大,功能測試也叫黑盒測試。
  性能測試是通過自動化的測試工具模擬多種正常、峯值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬於性能測試,兩者可以結合進行。
  界面測試,界面是軟件與用戶交互的最直接的層,界面的好壞決定用戶對軟件的第一印象。
  區別在於,功能測試關注產品的所有功能,要考慮到每個細節功能,每個可能存在的功能問題。性能測試主要關注產品整體的多用戶併發下的穩定性和健壯性。界面測試則關注與用戶體驗相關內容,用戶使用該產品的時候是否已用,是否易懂,是否規範(用戶無意輸入無效的數據,當然考慮到體驗性,不能太粗魯的彈出警告)。做某個性能測試的時候,首先它可能是個功能點,首先要保證她的功能是沒有問題的,然後再考慮性能的問題。
 
 


你認爲做好測試用例設計工作的關鍵是什麼

  白盒測試用例設計的關鍵是以較少的用例覆蓋儘可能多的內部程序邏輯結構。黑盒測試用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間內發現最多的問題。軟件的黑盒測試意味着測試要在軟件的接口處進行,這種方法是把測試對象看作是一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或者數據驅動測試。黑盒測試主要是爲了發現以下幾類錯誤:、
  1-是否有不正確或遺漏的功能
  2-在接口上,輸入是否能正確的接受?能否輸出正確的結果。
  3-是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤
  4-性能上是否能夠滿足要求
  5-是否有初始化或終止性錯誤
  軟件的白盒測試是對軟件的過程性細節做細緻的檢查。這種方法是把測試對象看作一個打開的盒子,它允許測試人員利用程序內部的邏輯結構和有關信息,設計或者選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序狀態,確定實際狀態是否與預期的狀態一直。因此白盒測試又稱爲結合測試或邏輯驅動測試。白盒測試主要是想對程序模塊進行如下檢查:
  1-對程序模塊的所有獨立的執行路徑至少測試一遍。
  2-對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。
  3-在循環的邊界和運行的界限內執行循環體。
  4-測試內部數據結構的有效性,等等。
  


25、請詳細介紹一下各種測試類型的含義

  1-單元測試(模塊測試)是開發者編寫的一小段代碼,用於檢驗被測試代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函數的行爲。單元測試是由程序員自己來完成,最終受益的也是程序員自己。可以這麼說,程序員有責任編寫功能代碼,同時也就有責任爲自己的代碼編寫單元測試。執行單元測試,就是爲了證明這段代碼的行爲和我們期望的一致。
  2-集成測試(也叫組裝測試、聯合測試)是單元測試的邏輯擴展。它最簡單的形式是:兩個已經經過測試的單元組合成一個組件,並且測試它們之間的接口。從這一層上講,組件是指多個單元的集成聚合。在現實方案中,許多單元組合成組件,而這些組件又聚合成程序的更大部分。方法是測試片段的組合,並最終擴展進程,將您的模塊與其他組的模塊一起測試。最後,將構成進程的所有模塊一起測試。
  3-系統測試是將經過測試的子系統裝配成一個完整系統來測試。它是檢驗系統是否確實能提供系統方案說明書中制定功能的有效方法。(常見的聯調測試)。系統測試的目的是對最終軟件系統進行全面的測試,確保最終軟件系統滿足產品需求而遵循系統設計。
  4-驗收測試是部署軟件之前的最後一個測試操作。驗收測試的目的是確保軟件準備就緒,並且可以讓用戶將其執行軟件的既定功能和任務。驗收測試是向未來的用戶表明系統能夠像預訂要求那樣工作。經集成測試後,已經按照設計把所有的模塊組裝成一個完整的軟件系統,接口錯誤也已經基本排除了,接着就應該進一步驗證軟件的有效性,這就是驗收測試的任務,即軟件的功能和性能如同用戶所合理期待的那樣。
  


26、測試計劃工作的目的是什麼?測試計劃工作的內容都包括什麼?其中哪些是最重要的?

  軟件測試計劃是知道測試過程的綱領性文件,包含了產品概述、測試策略、測試方法、測試區域、測試配置、測試周期、測試資源、測試交流、風險分析等內容。藉助軟件測試計劃,參與測試的項目成員,尤其是測試管理人員,可以明確測試任務和測試方法,保持測試實施過程的順暢溝通,跟蹤和控制測試進度,應對測試過程中的各種變更。


配置和兼容性測試的區別是什麼?

  配置測試的目的是保證軟件在其相關的硬件上能夠正常運行,而兼容性測試主要是測試軟件能否與不同的軟件正確協作。
  配置測試的核心內容就是使用各種硬件來測試軟件的運行情況,一般包括:
  (1)軟件在不同的主機上的運行情況,例如Dell和Apple;
  (2)軟件在不同的組件上的運行情況,例如開發的撥號程序要測試在不同廠商生產的Modem上的運行情況;
  (3)不同的外設;
  (4)不同的接口;
  (5)不同的可選項,例如不同的內存大小;
  兼容性測試的核心內容:
  (1)測試軟件是否能在不同的操作系統平臺上兼容;
  (2)測試軟件是否能在同一操作系統平臺的不同版本上兼容;
  (3)軟件本身能否向前或者向後兼容;
  (4)測試軟件能否與其它相關的軟件兼容;
  (5)數據兼容性測試,主要是指數據能否共享;
  配置和兼容性測試通稱對開發系統類軟件比較重要,例如驅動程序、操作系統、數據庫管理系統等。具體進行時仍然按照測試用例來執行


常見的測試用例設計方法都有哪些?請分別以具體的例子來說明這些方法在測試用例設計工作中的應用。

  1-等價類劃分
  常見的軟件測試面試題劃分等價類: 等價類是指某個輸入域的子集合.在該子集合中,各個輸入數據對於揭露程序中的錯誤都是等效的.併合理地假定:測試某等價類的代表值就等於對這一類其它值的測試.因此,可以把全部輸入數據合理劃分爲若干等價類,在每一個等價類中取一個數據作爲測試的輸入條件,就可以用少量代表性的測試數據.取得較好的測試結果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類.
  2-邊界值分析法
  邊界值分析方法是對等價類劃分方法的補充。測試工作經驗告訴我,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部.因此針對各種邊界情況設計測試用例,可以查出更多的錯誤.
  使用邊界值分析方法設計測試用例,首先應確定邊界情況.通常輸入和輸出等價類的邊界,就是應着重測試的邊界情況.應當選取正好等於,剛剛大於或剛剛小於邊界的值作爲測試數據,而不是選取等價類中的典型值或任意值作爲測試數據.
  3-錯誤推測法
  基於經驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法.
  錯誤推測方法的基本思想: 列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例-例如, 在單元測試時曾列出的許多在模塊中常見的錯誤-以前產品測試中曾經發現的錯誤等, 這些就是經驗的總結。還有, 輸入數據和輸出數據爲0的情況。輸入表格爲空格或輸入表格只有一行-這些都是容易發生錯誤的情況。可選擇這些情況下的例子作爲測試用例.
  4-因果圖方法
  前面介紹的等價類劃分方法和邊界值分析方法,都是着重考慮輸入條件,但未考慮輸入條件之間的聯繫, 相互組合等-考慮輸入條件之間的相互組合,可能會產生一些新的情況-但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當多-因此必須考慮採用一種適合於描述對於多種條件的組合,相應產生多個動作的形式來考慮設計測試用例-這就需要利用因果圖(邏輯模型)-因果圖方法最終生成的就是判定表-它適合於檢查程序輸入條件的各種組合情況.
  5-正交表分析法
  有時候,可能因爲大量的參數的組合而引起測試用例數量上的激增,同時,這些測試用例並沒有明顯的優先級上的差距,而測試人員又無法完成這麼多數量的測試,就可以通過正交表來進行縮減一些用例,從而達到儘量少的用例覆蓋儘量大的範圍的可能性。
  6-場景分析方法
  指根據用戶場景來模擬用戶的操作步驟,這個比較類似因果圖,但是可能執行的深度和可行性更好。
  


50、您認爲做好測試用例設計工作的關鍵是什麼?

  白盒測試用例設計的關鍵是以較少的用例覆蓋儘可能多的內部程序邏輯結果
  黑盒法用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間內發現最多的問題


如何測試qq軟件?

1、 配置測試

配置測試的目的是保證軟件在其相關的硬件上能夠正常運行。
配置測試的核心內容就是使用各種硬件來測試軟件的運行情況,一般包括:

  (1)軟件在不同的機器上的運行情況,例如不同型號的手機、電腦、平板、筆記本等;
  (3)不同的外設:如qq界面在不同顯示器/屏,不同分辨率下的顯示效果是否正常;
  (4)不同的接口
  (5)不同的配置可選項:例如不同的手機配置,電腦配置,如:cpu,gpu,內存;

2、兼容性測試

而兼容性測試主要是測試軟件能否與不同的軟件正確協作
兼容性測試的核心內容:

  (1)測試軟件是否能在不同的操作系統平臺上兼容:windows系統,linux系統,android系統,ios系統下是否正常運行。
  
  (2)測試軟件是否能在同一操作系統平臺的不同版本上兼容:不同版本的系統是否正常運行;
  
  (3)軟件本身能否向前或者向後兼容:不同版本qq之間是否能正常通信,覆蓋,更新,回滾;
  
  (4)測試軟件能否與其它相關的軟件兼容:不同版本的qq與各種不同版本的瀏覽器,文件管理器,不同版本的顯卡驅動,不同版本的聲卡驅動等之間的兼容性。

  (5)數據兼容性測試,主要是指數據能否共享:不同版本的qq是否可以共用數據包,如qq升級後,本地保存的歷史消息是否能正常顯示;

3、功能測試

測試qq軟件需求文檔所敘述的各項功能,如:發送接收文字,圖片,視頻,語音等。是否正常。

4、性能測試

負載測試和壓力測試都屬於性能測試。通過負載測試,確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統各項性能指標的變化情況。壓力測試是通過確定一個系統的瓶頸或者不能接受的性能點,來獲得系統能提供的最大服務級別的測試,可以理解爲資源的極限測試。
負載測試是在固定測試環境,在其它測試角度(負載方面)不變的情況下,變化一個測試角度並持續增加壓力,查看系統的性能曲線和處理極限,以及是否有性能瓶頸存在(拐點)。

對qq性能測試:
1、長時間運行是否出現異常
2、高頻啓動,同時運行多個客戶端是否正常
3、同時與多個好友建立連接是否正常
4、高速發送消息,圖片,語音,視頻,
5、發送超長消息,圖片,語音,視頻等
6、網絡狀況差的情況下是否還能正常通信

5、單元測試
6、集成測試
7、系統測試
8、驗收測試

9、安全測試


輸入框測試

一般的講,常見輸入框測試應該可以分以下幾種情況進行測試:

1、 唯一性
如:用戶名註冊,輸入後即檢查用戶名是否已存在

2、 輸入類型
1)字母(大寫、小寫)
2) 數字(整數、小數;正數、負數、0)
3)中文
4)特殊字符(包括xml敏感字符、json敏感字符)

3、 輸入長度
1)允許輸入範圍
2)臨界值
3)不允許輸入範圍

4、提示信息(對一些異常情況進行處理,主要檢查提示的正確性、完備性、友好性等,一般是結合bottom 進行測試)

5、 兼容性
1) 不同瀏覽器的兼容性
2) 系統兼容性 (手機、電腦、平板等)
3)外設兼容性:不同分辨率下是否正常


測試百度輸入框

1、兼容性測試:在不同瀏覽器,不同分辨率,不同放大倍數下的顯示是否正常,能否正常輸入
2、安全性測試:網絡安全

3、功能測試:

搜索結果:內容是否重複,相關性,廣告推廣等
搜索限制:輸入限制是否正常,不良信息是否過濾
搜索糾正:錯別字,拼音檢查
圖片搜索:拖拽,本地上傳,圖片限制等

輸入等價類:
輸入長度:0,1,10,100
輸入字符:字母,漢字,運算符,空格,TAB,回車,html標籤等
輸入方式:複製粘貼,鍵盤敲擊
輸入內容:圖片,文字

4、性能測試


如何測試一個三角形是否是一個等腰三角形,寫出測試用例

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章