1、軟件的生命周期
計劃階段—需求分析—設計階段—編碼—測試—運行與維護
2、測試用例主要包括哪些項目
用例編號、測試項目、測試標題、重要級別、預置條件、輸入數據、執行步驟、預期結果
3、你在測試過程中發現了一個bug,但是開發經理不認為這是一個bug,你應該怎樣解決?
首先將問題提交到缺陷管理系統,進行備案。
接下來,獲取判斷的依據和標準:
? ? ? 根據需求說明書,設計文檔等,確認實際結果是否有與計劃不一致的地方,提供是否為缺陷的直接依據;
? ? ? 如果沒有文檔依據,根據軟件的一般特性,用戶一般使用習慣或者與設計人員,開發人員,客戶代表等討論,確認是否為缺陷;
? ? ? 合理的陳述向測試經理說明理由,客觀嚴謹;
若仍存在爭議,向上級反映。
4、給你一個網站,請問如何測試?
首先查找需求說明,網站設計等相關文檔,分析測試需求,制定測試計劃,確定測試范圍和測試策略,一般包括以下幾個部分:功能測試,界面測試,性能測試,安全測試,數據庫測試和兼容性測試
設計測試用例:
功能性測試:
1、鏈接測試:鏈接是否正確跳轉,是否存在空頁面和無效頁面,是否有不正確的出錯信息返回。
2、提交功能的測試。
3、多媒體元素是否可以正確的加載和顯示。
4、多語言支持是否能夠正確的顯示選擇的語言等。
界面測試:
1、頁面是否風格統一,美觀。
2、頁面布局是否合理,重點內容和熱點內容是否突出。
3、控件是否正常使用。
4、文字檢查等。
性能測試:
壓力測試,負載測試,強度測試等。
數據庫測試:
要具體決定是否需要開展。數據庫一般要考慮連接性,對數據的存取操作,數據內容的驗證等方面。
安全性測試:
1、基本登錄功能的檢查。
2、是否存在溢出錯誤,導致系統崩潰或權限泄露。
3、相關開發語言的安全性問題檢查,例如SQL語言的注入等。
4、高級的安全性測試可能需要專業安全公司的幫助。
兼容性測試:
根據需求說明的內容,確定支持的平臺組合
1、瀏覽器的兼容性
2、操作系統的兼容性
3、軟件平臺的兼容性
4、數據庫的兼容性等。
開展測試,并記錄缺陷。合理的安排調整測試進度,提前獲取測試所需的資源,建立管理體系,定期評審,對測試進行評估和總結,調整測試內容。
5、什么是軟件測試?軟件測試的目的與原則?
在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能夠滿足設計要求進行評估的過程。
軟件測試目的:
測試是程序的執行過程,目的在于發現錯誤;一個成功的測試用例在于發現至今未發現的錯誤;一個成功的測試是發現了至今未發現的錯誤的測試;確保產品完成了他所承諾或公布的功能,并且用戶能夠訪問到的功能都要明確的書面說明;確保產品滿足性能和效率的要求;確保產品是健壯的適應用戶環境的。
測試的原則:
測試用例中一個必須部分是對預期輸出或結果進行定義;程序員應避免測試自己編寫的程序;編寫軟件的組織不應該測試自己編寫的軟件;應當徹底檢查每個測試的執行結果;檢查程序是否做了其應該做的,檢查程序是否做了其不應該做的;計劃測試工作室不應該假定默許不會發生錯誤;程序某部分存在更多錯誤的可能性,與該部分已經發現的錯誤數量成正比等。
6、對測試最大的興趣是什么?
測試是一個經驗行業,工作越久越能感覺到做好測試的難度和樂趣,具有很大的挑戰性,通過自己的努力讓軟件質量得到提升,獲得成就感!
7、測試流程?
首先進行需求分析會議,參加人員有產品,開發和測試,主要是研討需求的一些主要的功能點,完了之后,就開始排期進行開發,根據主管寫出的計劃和分配到的任務制定測試用例,寫完之后進行用例評審,修改形成最終的用例版本,之后開發人員版本編譯完成后,根據測試用例來執行測試,測試過程中,提交bug,跟蹤bug,直接關閉,另外還會執行一些探索性測試,測試完成之后編寫測試報告。進行需求的集成。
8、測試的職業發展規劃是什么?
測試經驗越多,測試能力越高,所以職業發展是需要時間積累的,一步步向著高級測試工程師奔去。初步的職業規劃是前三年積累測試經驗,按如何做好測試工程師的要點去要求自己,不斷進步,做好測試任務。
9、如何做好測試?
首先需要一個良好的溝通,只有溝通無礙了,才會有良好的協作,才會有更高的效率;然后技術一定要過關,做測試要有足夠的耐心,和一個良好的工作習慣,不懂得就要問,實時與同事溝通好才能做好工作。
10、一臺客戶端有三百個客戶與三百個客戶端有三百個客戶對服務器施壓,有什么區別?
300個用戶在一個服務端上,會占用客戶機更多的資源,而影響測試的結果,線程之間可能發生干擾,產生異常。
300個用戶在一個服務端上,需要更大的帶寬。
IP地址的問題,可能需要IP spoof來繞過服務器對于單一IP地址最大連接數的限制。
所有用戶在一個客戶端上,不必考慮分布式管理的問題;而用戶分布在不同的客戶端上,需要考慮使用控制器來整體調配不同客戶機上的用戶。同時,還需要給予相應的權限配置和防火墻設置。
11、目前主要的測試用例設計方法是什么?
白盒測試:邏輯覆蓋,循環覆蓋,基本路徑覆蓋
黑盒測試:邊界值分析,等價類劃分,錯誤猜測,因果圖,狀態圖,測試大綱,隨機測試,場景法。
12、什么是測試用例?什么是測試腳本?二者的關系是什么?
測試用例:為實施測試而向被測試系統提供的輸入數據、操作或各種環境設置以及期望結果的一個特定的集合。
測試腳本:為了進行自動化測試而編寫的腳本。
測試腳本的編寫必須對應相應的測試用例。
13、你對自動化測試的定義是什么?自動化測試能代替手工嗎?
自動化的定義就是采用腳本或者工具的驅動下,執行相應的操作。自動化不能代替人工,自動化執行路徑有限,不能覆蓋所有的測試點,并且自動化的維護成本高。
14、如果你來測試一個需求,什么時候用自動化?什么時候采用人工呢?
對于主流程,冒煙測試,路徑比較淺的采用自動化的方式執行,執行路徑復雜的case一般不適合用自動化,另外自動化主要是起線上監控的作用,單分支測試并不是很適合做,維護成本比較高。
15、所有bug都要修復嗎?
原則上是所有bug都要修復的,有時候可能由于時間關系或者這個bug對用戶的影響非常小,而修復的成本比較大,可能就會遺留到下個版本修復或者不修復。
16、簡述什么是靜態測試、動態測試、黑盒測試,白盒測試,α測試,β測試?
靜態測試:不運行程序本身,而尋找程序代碼中可能存在的錯誤或評估程序的過程。
動態測試:實際運行被測程序,輸入相應的測試實例,檢查運行結果與預期結果的差異,判斷執行結果是否符合要求,從而檢驗程序的正確性、可靠性和有效性,并分析系統運行效率和健壯性等性能。
黑盒測試:一般用來確認軟件功能的正確性和可操作性,目的是檢測軟件的各個功能是否能夠得以實現,把被測的程序當作一個黑盒,不考慮其內部結構,在知道該程序輸入輸出之間的關系或程序功能的情況下,依靠軟件規格說明書來確定測試用例和推斷測試結果的正確性。
白盒測試:根據軟件內部的邏輯結構分析來進行測試,是基于代碼的測試,測試人員通過閱讀程序代碼或者使用開發工具中的單步調試來判斷軟件的質量,一般白盒測試由項目經理在程序員開發中實現。
α測試:一個用戶在開發環境下進行的測試,也可以是公司內部的用戶在模擬實際操作環境下進行的受控測試(不能由程序員或者測試員來進行)。
β測試:軟件的多個用戶在一個或多個用戶的實際使用環境下進行的測試。開發者通常不在測試現場(不能由程序員或者測試員來完成)。