软件测试知识点大全
而如何入門軟件測試并針對找工作呢?
需要以下知識:
測試的理論,還有測試驅動開發是怎么用的,為什么要用測試驅動開發、linux和數據庫、計算機網絡(可刷牛客網來提升)。
單元測試->集成測試->確認測試->系統測試->驗收測試
(1)單元測試:
?單元測試又稱為模塊測試,是針對軟件設計的最小單位程序模塊進行正確性檢查的測試工作,單元測試需要從程序內部結構出發設計測試用例,多個模塊可以平行地獨立進行單元測試。Junit?測試是程序員測試,即所謂?白盒測試?,因為程序員知道被測試的軟件如何(?How?)完成功能和完成什么樣(?What?)的功能。?Junit?是一套框架,繼承TestCase?類,就可以用?Junit?進行自動測試了。
?
工件是加工過程中的生產對象。
(2)集成測試
又稱為組裝測試或聯合測試,在單元測試的基礎上,需要將所有模塊按照概要設計說明書和詳細設計說明書的要求進行組裝。
(3)確認測試
確認測試的目標是驗證軟件的功能和性能以及其他特性是否與用戶的要求一致。確認測試一般包括有效性測試和軟件配置復查。一般由第三方測試機構進行。
(4)系統測試
?軟件作為計算機系統的一部分,與硬件、網絡、外設、支撐軟件、數據以及人員結合在一起,在實際或模擬環境下,對計算機系統進行測試,
目的在于與系統需求比較,發現問題
(5)驗收測試
以用戶為主的測試,軟件開發人員和質量保證人員參加,由用戶設計測試用例。不是對系統進行全覆蓋測試,而是對核心業務流程進行測試。
?
Alpha測試在Beta測試之前,由一個用戶在開發環境下進行的測試,也叫做驗證測試。
alpha測試是由一個用戶在開發環境下進行的測試,也可以是公司內部用戶在模擬實際操作環境進行的受控測試,不能由程序員或測試員完成。Alpha測試可以從軟件產品編碼結束之后開始,或在模塊(子系統)測試完成后開始,也可以在確認測試過程中產品達到一定的穩定和可靠程度之后再開始。
Beta測試:軟件的多個用戶在一個或多個用戶的實際使用環境下進行的測試。開發者通常不在測試現場,Beta測試不能由程序員或測試員完成。因而,Beta測試是在開發者無法控制的環境下進行的軟件現場應用。在Beta測試中,由用戶記下遇到的所有問題,包括真實的以及主管認定的,定期向開發者報告,開發者在綜合用戶的報告后,做出修改,最后將軟件產品交付給全體用戶使用。Beta測試著重于產品的支持性,包括文檔、客戶培訓和支持產品的生產能力。只有當Alpha測試達到一定的可靠程度后,才能開始Beta測試。由于Beta測試的主要目標是測試可支持性,所以Beta測試應該盡可能由主持產品發行的人員來管理。
區別:A測試是一個用戶,可以是內部人員也可以是用戶,開發人員在場,測試現場立刻反饋給開發人員,由開發人員及時分析和處理。目的是評價軟件產品的功能、可使用性、可靠性、性能和支持。尤其注重產品的界面和特色。
???????? ??B測試是多個用戶在一個或多個實際使用環境下進行,完全是用戶,開發人員不在場。著重于產品的支持性,包括文檔、客戶培訓和支持產品的生產能力。
?
針對手機應用軟件的系統測試,我們通常從如下幾個角度開展:功能模塊測試,交叉事件測試,壓力測試,容量測試,兼容性測試,易用性/用戶體驗測試等.
對手機可以施加的壓力測試類型主要有:存儲壓力、邊界壓力、響應能力壓力、網絡流量壓力
?
設計測試用例時,應注意測試用例的代表性、測試結果的可判定性和可重現性。???
1、測試用例的代表性:能夠代表并覆蓋各種合理的和不合理、合法的和非法的、邊界的和越界的、以及極限的輸入數據、操作和環境設置等。
2、測試結果的可判定性:即測試執行結果的正確性是可判定的,每一個測試用例都應有相應的期望結果。
3、測試結果的可再現性:即對同樣的測試用例,系統的執行結果應當是相同的。
?
什么是靜態測試?
答:通過運行程序測試軟件稱為動態測試.通過評審文檔、閱讀代碼等方式測試軟件稱為靜態測試,在動態測試中,通常使用白盒測試和黑盒測試從不同的角度設計測試用例,查找軟件代碼中的錯誤.ddddddd????????????????????
靜態測試方法是指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。對需求規格說明書、軟件設計說明書、源程序做結構分析、流程圖分析、符號執行來找錯。靜態方法通過程序靜態特性的分析,找出欠缺和可疑之處,例如不匹配的參數、不適當的循環嵌套和分支嵌套、不允許的遞歸、未使用過的變量、空指針的引用和可疑的計算等。靜態測試結果可用于進一步的查錯,并為測試用例選取提供指導。
?
什么是白盒測試?
答:白盒測試(White-box Testing,又稱邏輯驅動測試,結構測試),它是知道產品內部工作過程,可通過測試來檢測產品內部動作是否按照規格說明書的規定正常進行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用于軟件驗證。
對開發語言的支持:白盒測試工具是對源代碼進行的測試,測試的主要內容包括詞法分析與語法分析、靜態錯誤分析、動態檢測等。
?
白盒測試主要應用在單元測試階段,主要是對代碼級的測試,針對程序內部邏輯結構,測試手段有:語句覆蓋、判定覆蓋、條件覆蓋、路徑覆蓋、條件組合覆蓋
1.語句覆蓋:可執行語句至少被執行一次;
2.判斷覆蓋:每個判斷的取真分支和取假分支至少經歷一次;
3.條件覆蓋:每個條件的取值至少滿足一次;
4.路徑測試:執行所有可能的執行路徑;
5.條件組合覆蓋:每個條件的所有可能都至少出現一次,并且判定結果至少出現一次 ;
6.判斷/條件覆蓋:判斷和條件都滿足;
與條件覆蓋的區別:他不是簡單要求每個條件出現“真”和“假”兩種結果,而是要求這些結果所有可能至少出現一次;
7.基本路徑測試:路徑測試執行了每個路徑,每個判定的結果肯定經歷過一次
?
黑盒技術設計測試用例的方法有:等價類劃分、邊界值分析、錯誤推測、決策表和綜合策略。
?
設計系統測試計劃需要參考的項目文擋有:軟件測試計劃、軟件需求規范、迭代計劃?
系統測試有負載測試、易用性測試、強度測試、安全測試。
(1)負載測試:數據在超負荷環境中運行,看程序是否能承擔。目的是確定并確保系統在超出最大預期工作量的情況下仍能正常運行。
(2)強度測試:在一定的負荷條件下,在較長時間跨度內的系統連續運行給系統性能所造成的影響。 (3)容量測試:容量測試目的是通過測試預先分析出反映軟件系統應用特征的某項指標的極限值(如最大并發用戶數、數據庫記錄數等),系統在其極限值狀態下沒有出現任何軟件故障或還能保持主要功能正常運行。面向數據的,并且它的目的是顯示系統可以處理目標內確定的數據容量。?
單元測試能發現約80%的軟件缺陷。
?
邏輯測試覆蓋中,測試覆蓋最強的是條件組合覆蓋。
?
測試方法可以分成個人復查、抽查和會審、黑盒測試、白盒測試。
?
軟件測試的原則之一是測試應該盡早進行,最好在需求階段就開始介入。
?
??? 測試驅動開發(Test-DrivenDevelopment)是敏捷開發中的一項核心實踐和技術,也是一種設計方法論。TDD得原理是在開發功能代碼之前,先編寫單元測試用例代碼,測試代碼確定需要編寫什么產品代碼。TDD雖是敏捷方法的核心實踐,但不只適用于XP(Extreme Programming),同樣可以適用于敏感詞開發方法和過程。TDD得基本思路就是通過測試來推動整個開發得進行,但測試驅動開發并不只是單純的測試工作,而是把需求分析,設計,質量控制量化的過程。TDD的重要目的不僅僅是測試軟件,測試工作保證代碼質量僅僅是其中一部分,而且是在開發過程中幫助客戶和程序員去除模棱兩可的需求。TDD首先考慮使用需求(對象、功能、過程、接口等),主要是編寫測試用例框架對功能的過程和接口進行設計,而測試框架可以持續進行驗證。
優點:在任意一個開發節點都可以拿出一個可以使用,含少量bug并具一定功能的產品。
缺點:增加代碼量。測試代碼是系統代碼的兩倍或更多。
?
什么是驅動模塊?
答:驅動模塊在大多數場合稱為"主程序",它接收測試數據并將這些數據傳遞到被測試模塊.單元測試一個函數單元時,被測單元本身是不能獨立運行的,需要為其傳送數據,為此寫驅動
驅動模塊主要完成以下事情:
1、接受測試輸入;
2、對輸入進行判斷;
3、將輸入傳給被測單元,驅動被測單元執行;
4、接受被測單元執行結果,并對結果進行判斷;
5、將判斷結果作為用例執行結果輸出測試報告。
?
什么是樁模塊?
答:比如對函數A做單元測試時,被測的函數單元下還包括了一個函數B,為了更好的錯誤,定位錯誤,就要為函數B寫樁,來模擬函數B的功能,保證其正確。
?
需求文檔測試:測試需求中是否存在邏輯矛盾以及需求在技術上是否可以實現;
設計文檔測試: 測試設計是否符合全部需求以及設計是否合理。
?
測試工具:
loadrunner?包括腳本編輯工具、測試執行工具、結果分析工具?
性能測試:主要檢驗軟件是否達到需求規格說明書中規定的各類性能指標,并滿足一些性能相關的約束和限制條件。
目的是通過測試,確認軟件是否滿足產品的性能需求,同時發現系統中存在的性能瓶頸,并對系統進行優化。
壓力測試:模擬巨大的工作負荷,以查看系統在峰值使用情況下是否可以正常運行,以此來獲得系統性能提供的最大服務級別的一種測試。
負載測試:通過逐步增加系統工作量,測試系統能力的變化,并最終確定在滿足功能指標的情況下,系統所能承受的最大工作量的測試。壓力測試實質上就是一種特定類型的負載測試。
自動化測試和手工測試的適用場景:
自動化測試適用場景:
1.產品需求變更較少。
2.項目開發周期較長。
3.測試用例執行頻繁。比如大量的回歸測試工作
4.手工測試無法勝任。比如高并發操作,持續收集設備資源,長時間穩定性測試,多用戶操作等手工操作或測試無法勝任的工作。
5.人物財力資源充足。
手工測試適用場景:
1.產品需求變更較多。
2.項目開發周期較短,需要迅速交付。
3.測試用例執行不是很頻繁,需要人為觀察,需要靈活測試。
自動化測試和手工測試的優缺點:
自動化測試的優點:
1、對回歸測試更方便:周期較長的回歸測試工作量大,測試比較頻繁,適合自動化測試。由于測試的腳本和用例都是設計好的,測試期望的結果也可以預料,將回歸測試自動化可以極大的提高效率縮短回歸時間。
2、模擬真實情況:可以執行手工測試無法執行的測試,比如同時并發上千用戶測試系統的負載量,測試人員無法達到測試目的,而使用自動化測試工具可以模擬多用戶的并發過程。
3、有效的利用人力物力資源:頻繁地機器化的動作可以用自動化測試執行,減少錯誤的發生,更好的利用人力資源。
4、測試的重復利用:由于自動測試通常使用的是自動化腳本技術,這樣就可以只需要做較少的甚至是不修改就可以實現在不同的測試過程中使用相同的用例。
5、減少人為的錯誤:自動化測試是機器完成,不存在執行過程中人為的疏忽和錯誤。
自動化測試的缺點:
1、自動化測試是工具執行,沒有思維,無法進行主觀判斷,對界面色彩、布局和系統的奔潰現象無法發現,這些錯誤通過人眼很容易發現。
2、自動化測試工具本身是一個產品,在不同的系統平臺或硬件平臺可能會受影響,在運行時可能影響被測程序的測試結果。
3、對于需求更改頻繁的軟件,測試腳本的維護和設計比較空難。
4、自動化測試是機器執行,手工測試比自動測試發現的缺陷更多。
5、自動化測試要編寫測試腳本,設計場景,這些對測試人員的要求比較高,測試的設計直接影響測試的結果。
綜上所述,可以歸結自動化完成不了的,手工測試都能彌補,兩者有效的結合是測試質量保證的關鍵。
總結
- 上一篇: android 通讯录恢复,安卓手机通讯
- 下一篇: 统计假设测验------(二)平均数的假