理論上講,做軟件測試的要求有什么就要懂什么,不是什么人都可以做的。但實際上測試工程師是有初、中、高三級之分的。而初級工程師所需要的知識不多,一般只需要學過簡單的理論即可。中、高級相信需要一段過渡時期的,它們都必須以工具為主。
至于教材,可以說所有的計算機教材都是其中的一部分,就差你是什么方向的測試工作。一般來說,開始的時候,你只需要一本《軟件測試理論》入門即可。有空可以看看《測試的藝術》一書(得益網有得下載)。
什么數(shù)據庫\開發(fā)語言,這些與軟件測試都是什么關系???
至于這個問題,首先要說明,軟件測試一般可分為:單元測試、集成測試、系統(tǒng)測試、驗收測試。單元測試一方面是直接對代碼進行直讀,所以它要求必需懂得開發(fā)語言,另一方面它要寫驅動和樁,所以也要懂開發(fā)語言。(一般單元測試都是要開發(fā)人員扶助的)。而數(shù)據庫,簡單來說每當我們要驗證一條記錄的所有信息是否完整,都需要進入數(shù)據庫中查看,查看是否有漏某個字段;而從更高層次來講,它涉及到系統(tǒng)性能調優(yōu)問題。
軟件測試基礎學習需要掌握哪些內容?首先,要有寬泛的計算機基礎知識。微機原理,數(shù)據結構,數(shù)據庫,操作系統(tǒng)原理,編譯原理,邏輯,編程語言,網絡,等等,都要系統(tǒng)地學習過。都精通不大可能,因為人的興趣都不相同,但是這些功課的基本知識點是應當了解的。
我們在談到職業(yè)的類別的時候,我們可以說C程序員,C#程序員,Java程序員,而沒有C測試員,C#測試員,Java測試員,程序員可以只擅長某一門編程語言,測試員卻不行。為什么呢?
測試員是代表用戶的,在做測試的時候,他(她)需要考慮到方方面面的事情。例如對于一個用C寫的上網撥號程序,測試員需要考慮:
(1) 程序的功能是否正確;(要求計算機知識)
(2) 是否符合用戶的使用習慣;(要求界面設計知識和換位思考能力)
(3) 性能是否滿足要求,例如長時間使用;穩(wěn)定性;(要求深入的計算機知識)
(4) 是否能夠滿足用戶可能的不同操作系統(tǒng)的要求;(要求計算機知識)
(5) 如果在全球發(fā)布,是否滿足不同語言和文化的需求;(要求軟件國際化測試知識)
(6) 如何搭建測試環(huán)境;(動手能力,硬件知識)
(7) 做代碼檢查;(比較深入的C語言知識)
(8) …
所以,各方面都了解一點,你在做測試的過程當中你會感覺順手得多。如果某寫方面還差一些,沒有關系,計算機行業(yè)的特點就是邊做邊學,只要是個有心人,學習是很快的。
其次,要掌握一門編程語言。原因很簡單:一行代碼不會,你始終是門外漢。
1. 具備計算機操作基礎:這點對于計算機專業(yè)的學生沒有什么大問題的,會使用電腦操作、會簡單Office軟件。如果不會呢,可以自己在網上找資料自學,很簡單。
2. 具備軟件測試基礎知識:軟件測試基礎理論知識。實踐需要理論知識指導。我們可以從相關書籍或者網上找到軟件測試基礎理論知識,具有詳細的理論解釋。
3. 具備一定的數(shù)據庫操作技術:對于常用的數(shù)據庫,簡單的操作要具備。學習數(shù)據庫可以自己安裝一個數(shù)據庫,常練習。
4. 具備一定的邏輯推理能力:這點主要偏向于寫測試用例。測試用例是軟件測試的核心。寫測試用例,可以參考網絡一些比較經典的例子,模仿寫。寫多了經驗就有了。
5. 掌握軟件測試缺陷管理工具:QC、Mantis、JIAR等。軟件測試離不開缺陷管理。軟件測試缺陷管理工具有效管理缺陷、提高軟件質量。這方面的知識建議從網絡或者書籍途徑學習。
6. 掌握軟件測試工具:Loadrunner、ruby、QTP等,學習測試工具提高測試效率,這也有助于你測試職業(yè)生涯的規(guī)劃。
7. 學會一門開發(fā)腳本語言:學會開發(fā)腳本語言有助于學習軟件測試工具。根據自己的興趣和基礎選擇學習。
首先需要了解的就是計算機系統(tǒng)組成介紹,包括計算機系統(tǒng)的組成、計算機系統(tǒng)抽象層次結構、軟件的定義、軟件的基本分類。
要熟悉操作系統(tǒng)的定義和主要功能,常用的操作系統(tǒng)。還要熟悉進制轉換,包括數(shù)制、十進制、二進制、八進制、十六進制以及它們之間的轉換。
熟悉邏輯代數(shù)的定義、基本邏輯關系與運算、邏輯變量。掌握計算機網絡基礎,包括認識網絡、網絡協(xié)議、分層思想、常見的網絡分層模型、各層對應功能和協(xié)議。
其次要掌握軟件的生命周期,熟悉軟件開發(fā)過程模型,包括瀑布模型,快速原型模型、螺旋模型。掌握軟件測試過程模型,包括V模型、W模型。
為接下來軟件測試系統(tǒng)化的學習打好基礎。還要掌握軟件測試的定義,熟悉軟件測試的目的、軟件測試的意義,掌握軟件測試工作流程和實際軟件工作流程。
通過對軟件測試概論的學習,對軟件測試工作流程做到熟悉,培養(yǎng)未來測試工作中的良好習慣。另外還需要掌握軟件缺陷定義,熟悉缺陷產生的原因和軟件缺陷第二定義,掌握缺陷報告編寫。
通過對軟件缺陷相關知識的學習,學會日常工作中缺陷報告的提交,明確bug的嚴重程度及優(yōu)先級。更多科普就在IT優(yōu)就業(yè)。
【IT168 技術文章】 一、軟件測試概述 軟件測試是軟件開發(fā)過程的重要組成部分,是用來確認一個程序的品質或性能是否符合開發(fā)之前所提出的一些要求。
軟件測試的目的,第一是確認軟件的質量,其一方面是確認軟件做了你所期望的事情(Do the right thing),另一方面是確認軟件以正確的方式來做了這個事件(Do it right)。第二是提供信息,比如提供給開發(fā)人員或程序經理的反饋信息,為風險評估所準備的信息。
第三軟件測試不僅是在測試軟件產品的本身,而且還包括軟件開發(fā)的過程。如果一個軟件產品開發(fā)完成之后發(fā)現(xiàn)了很多問題,這說明此軟件開發(fā)過程很可能是有缺陷的。
因此軟件測試的第三個目的是保證整個軟件開發(fā)過程是高質量的。 軟件質量是由幾個方面來衡量的:一、在正確的時間用正確的的方法把一個工作做正確(Doing the right things right at the right time.)。
二、符合一些應用標準的要求,比如不同國家的用戶不同的操作習慣和要求,項目工程中的可維護性、可測試性等要求。三、質量本身就是軟件達到了最開始所設定的要求,而代碼的優(yōu)美或精巧的技巧并不代表軟件的高質量(Quality is defined as conformance to requirements, not as “goodness” or “elegance”.)。
四、質量也代表著它符合客戶的需要(Quality also means “meet customer needs”.)。作為軟件測試這個行業(yè),最重要的一件事就是從客戶的需求出發(fā),從客戶的角度去看產品,客戶會怎么去使用這個產品,使用過程中會遇到什么樣的問題。
只有這些問題都解決了,軟件產品的質量才可以說是上去了。 測試人員在軟件開發(fā)過程中的任務: 1、尋找Bug; 2、避免軟件開發(fā)過程中的缺陷; 3、衡量軟件的品質; 4、關注用戶的需求。
總的目標是:確保軟件的質量。二、常用的軟件測試方法 1.黑盒測試 黑盒測試顧名思義就是將被測系統(tǒng)看成一個黑盒,從外界取得輸入,然后再輸出。
整個測試基于需求文檔,看是否能滿足需求文檔中的所有要求。黑盒測試要求測試者在測試時不能使用與被測系統(tǒng)內部結構相關的知識或經驗,它適用于對系統(tǒng)的功能進行測試。
黑盒測試的優(yōu)點有: 1)比較簡單,不需要了解程序內部的代碼及實現(xiàn); 2)與軟件的內部實現(xiàn)無關; 3)從用戶角度出發(fā),能很容易的知道用戶會用到哪些功能,會遇到哪些問題; 4)基于軟件開發(fā)文檔,所以也能知道軟件實現(xiàn)了文檔中的哪些功能; 5)在做軟件自動化測試時較為方便。 黑盒測試的缺點有: 1)不可能覆蓋所有的代碼,覆蓋率較低,大概只能達到總代碼量的30%; 2)自動化測試的復用性較低。
2.白盒測試 白盒測試是指在測試時能夠了解被測對象的結構,可以查閱被測代碼內容的測試工作。它需要知道程序內部的設計結構及具體的代碼實現(xiàn),并以此為基礎來設計測試用例。
如下例程序代碼:HRESULT Play( char* pszFileName ){if ( NULL == pszFileName )return;if ( STATE_OPENED == currentState ){PlayTheFile();}return;}讀了代碼之后可以知道,先要檢查一個字符串是否為空,然后再根據播放器當前的狀態(tài)來執(zhí)行相應的動作。可以這樣設計一些測試用例:比如字符串(文件)為空的話會出現(xiàn)什么情況;如果此時播放器的狀態(tài)是文件剛打開,會是什么情況;如果文件已經在播放,再調用這個函數(shù)會是什么情況。
也就是說,根據播放器內部狀態(tài)的不同,可以設計很多不同的測試用例。這些是在純粹做黑盒測試時不一定能做到的事情。
白盒測試的直接好處就是知道所設計的測試用例在代碼級上哪些地方被忽略掉,它的優(yōu)點是幫助軟件測試人員增大代碼的覆蓋率,提高代碼的質量,發(fā)現(xiàn)代碼中隱藏的問題。 白盒測試的缺點有: 1)程序運行會有很多不同的路徑,不可能測試所有的運行路徑; 2)測試基于代碼,只能測試開發(fā)人員做的對不對,而不能知道設計的正確與否,可能會漏掉一些功能需求; 3)系統(tǒng)龐大時,測試開銷會非常大。
3.基于風險的測試 基于風險的測試是指評估測試的優(yōu)先級,先做高優(yōu)先級的測試,如果時間或精力不夠,低優(yōu)先級的測試可以暫時先不做。有如下一個圖,橫軸代表影響,豎軸代表概率,根據一個軟件的特點來確定:如果一個功能出了問題,它對整個產品的影響有多大,這個功能出問題的概率有多大?如果出問題的概率很大,出了問題對整個產品的影響也很大,那么在測試時就一定要覆蓋到。
對于一個用戶很少用到的功能,出問題的概率很小,就算出了問題的影響也不是很大,那么如果時間比較緊的話,就可以考慮不測試?;陲L險測試的兩個決定因素就是:該功能出問題對用戶的影響有多大,出問題的概率有多大。
其它一些影響因素還有復雜性、可用性、依賴性、可修改性等。測試人員主要根據事情的輕重緩急來決定測試工作的重點。
4. 基于模型的測試 模型實際上就是用語言把一個系統(tǒng)的行為描述出來,定義出它可能的各種狀態(tài),以及它們之間的轉換關系,即狀態(tài)轉換圖。模型是系統(tǒng)的抽象。
基于模型的測試是利用模型來生成相應的測試用例,然后根據實際結果和原先預想的結果的差異來測試系統(tǒng),過程如下圖所示。三、軟件測試的類型 常見的軟件測試類型有: BVT 。
想要了解軟件測試需要學習哪些基礎知識,這里整理了一份軟件測試系統(tǒng)全面的學習路線,希望可以幫助你~第一階段:專業(yè)基礎課程階段目標:1. 熟練掌握IT核心技術:編程,數(shù)據庫,操作系統(tǒng),版本控制2. 能夠熟練運用所學技術搭建各類服務器環(huán)境3. 深入理解軟件研發(fā)過程各種疑難雜癥及處理手段4. 掌握Python編程技術并熟練運用Python進行程序設計知識點:1、Web頁面元素,布局,CSS樣式,盒模型,JavaScript程序設計,函數(shù),基礎算法,正則表達式。
2、數(shù)據庫知識,范式,MySQL配置,命令,建庫建表,數(shù)據的增刪改查,約束,視圖,存儲過程,函數(shù),觸發(fā)器,事務,游標,建模工具深入理解數(shù)據庫管理系統(tǒng)通用知識及MySQL數(shù)據庫的使用與管理。為軟件測試和測試開發(fā)打下基礎。
3、Linux安裝配置,文件目錄操作,VI命令,管理,用戶與權限,環(huán)境部署,Shell編程Linux作為一個主流的服務器操作系統(tǒng),是每一個測試開發(fā)工程師必須掌握的重點技術,并且能夠熟練運用。4、Python編程基礎,語法規(guī)則,函數(shù),數(shù)據類型,PDBC,培養(yǎng)扎實的Python編程基本功,同時對Python核心對象編程有熟練的運用。
5、Python面向對象,異常處理,文件IO,多線程,網絡編程,PyQT界面開發(fā),深入理解面向對象編程,異常處理機制,多線程原理,網絡協(xié)議知識,并熟練運用于項目中。第二階段:專業(yè)核心課程階段目標:1. 熟練應用所學知識完成一個標準的軟件測試項目2. 熟練運用Python完成GUI測試,接口測試和性能測試開發(fā)3. 對測試開發(fā)技術體系和實現(xiàn)原理有深入的理解4. 靈活運用測試開發(fā)技術解決項目中的各種問題知識點:1、軟件工程,軟件質量,系統(tǒng)測試流程,方法,專業(yè)術語,測試用例設計,禪道管理工具,測試報告,缺陷管理理解軟件工程的各類實際問題,理解系統(tǒng)測試的理論、方法與過程,熟練運用測試用例設計方法高效設計測試用例。
2、測試需求分析,測試方案設計,測試用例設計,測試項目實施,缺陷報告與測試報告,深入理解系統(tǒng)測試各個過程和關鍵環(huán)節(jié),熟練完成系統(tǒng)測試項目。3、SikuliX框架,UIAutomation框架,Selenium WebDriver框架,基礎框架,Android應用,Monkey測試,Appium移動端測試框架,UIAutomator2移動端測試框架綜合運用各類應用操作平臺,完成各種自動化測試框架的學習和應用,深入理解GUI自動化測試技術及相應框架的測試開發(fā)。
4、Python單元測試框架,網絡通信協(xié)議,HTTP與HTTPS協(xié)議,WebService與WebSocket協(xié)議,Python的接口測試庫,PostMan與SoapUI接口測試工具通過對代碼級接口測試和協(xié)議級接口測試的測試開發(fā)實戰(zhàn),靈活運用Python開發(fā)接口測試腳本,熟練運用各類接口測試工具。5、性能測試原理,指標體系,場景設計,實施過程,JMeter工具應用,BeanShell腳本開發(fā),Python+Locust性能測試框架深入理解性能測試技術體系和方法論,熟練運用JMeter性能測試工具和Locust性能測試框架實施對任意系統(tǒng)的性能測試。
第三階段:綜合實戰(zhàn)項目階段目標:1. 將軟件測試和測試開發(fā)技術靈活運用于項目中2. 具備較強的測試開發(fā)能力,獨立完成測試開發(fā)項目3. 綜合運用軟件測試技術,滿足企業(yè)中高級人才需求4. 對所學技術有深入的理解并具備獨立解決問題的能力知識點:1、測試需求分析,同行評審,測試計劃,測試方案,測試用例,配置管理,持續(xù)集成。通過對大型企業(yè)級應用系統(tǒng)的測試項目實戰(zhàn),強化理解系統(tǒng)測試項目的實施過程與技術細節(jié)。
2、接口測試設計與實施,回歸測試,冒煙測試,安全性測試,RobotFramework框架應用,UI自動化實戰(zhàn)將各類自動化測試技術結合項目實戰(zhàn)演練,強化對自動化測試技術的運用,同時掌握更多的測試框架。3、性能測試項目實戰(zhàn),LoadRunner性能測試工具,總結通過綜合項目實戰(zhàn),將全套測試技術融入到項目中,強化學習效果和項目經驗。
4、Python原生測試框架開發(fā),包括Monkey,UI,圖像識別,云測試平臺,HTML測試報告,持續(xù)集成,KDT關鍵字驅動框架開發(fā)等原生技術實現(xiàn)通過大量的Python原生代碼開發(fā),深入理解自動化測試開發(fā)技術的底層實現(xiàn)原理,完全拋棄對工具的依賴,做到真正的測試開發(fā)技術。5、基于測試框架的設計思路和實現(xiàn)手段,自主實現(xiàn)一套測試框架能夠獨立完成一套自動化測試框架,并能夠直接用于實際項目中。
6、持續(xù)集成與Jenkins,安全性測試原理與工具,Python爬蟲開發(fā)與Scrapy框架,提升軟件測試其它類技術,增強知識面,提升競爭力,助力職業(yè)發(fā)展。補充知識1、算法進階,圖像處理,視頻處理,加密解密,壓縮算法。
2、UML統(tǒng)一建模語言、五種圖、類圖、類圖詳解、用例圖、時序圖。3、Dubbo分布式開發(fā)框架,Oracle關系型數(shù)據庫管理系統(tǒng),MongoDB非關系型數(shù)據庫管理系統(tǒng)。
4、大數(shù)據開發(fā)框架Hadoop/MapReduce/Spark。5、Android與iOS的原生應用開發(fā)與WebApp開發(fā)。
6、OpenCV圖像處理框架、TensorFlow深度學習框架,Lucene全文搜索引擎與中文分詞框架Ik-Analyzer,視頻處理算法與框架等。
具備計算機操作基礎:這點對于計算機專業(yè)的學生沒有什么大問題的,會使用電腦操作、會簡單Office軟件。
如果不會呢,可以自己在網上找資料自學,很簡單。具備軟件測試基礎知識:軟件測試基礎理論知識。
實踐需要理論知識指導。我們可以從相關書籍或者網上找到軟件測試基礎理論知識,具有詳細的理論解釋。
具備一定的數(shù)據庫操作技術:對于常用的數(shù)據庫,簡單的操作要具備。學習數(shù)據庫可以自己安裝一個數(shù)據庫,常練習。
具備一定的邏輯推理能力:這點主要偏向于寫測試用例。測試用例是軟件測試的核心。
寫測試用例,可以參考網絡一些比較經典的例子,模仿寫。寫多了經驗就有了。
掌握軟件測試缺陷管理工具:QC、Mantis、JIAR等。軟件測試離不開缺陷管理。
軟件測試缺陷管理工具有效管理缺陷、提高軟件質量。這方面的知識建議從網絡或者書籍途徑學習。
掌握軟件測試工具:Loadrunner、ruby、QTP等,學習測試工具提高測試效率,這也有助于你測試職業(yè)生涯的規(guī)劃。學會一門開發(fā)腳本語言:學會開發(fā)腳本語言有助于學習軟件測試工具。
根據自己的興趣和基礎選擇學習。
主要理論知識是 軟件工程
軟件測試要求知識面廣,但不一來定精,編程語言的話,最好是什么都學過,至少幾種主流的程序語言要學過,如java、.net、C 。還有會一些腳本語言vba(vb)、sql、C等。
網絡的話:TCP/IP協(xié)議,局域網廣域網相關知識等
數(shù)據庫:當前主流的mysql、ms-sql、oracle
常用測試工具:HP的三劍客首當其沖了:QTP(自動化功能測試工具)、LoadRunner(自動化性能測試工具)、QC(TD前身,測試管理追蹤工具)。當然這些都是收費產品。網源上有破解百版的可供學習。(一套)
開源免費的測試工具:QTP(自動化功能測試工具,破解版的可以滿足絕大部分測試需求)、jmeter(自動化性能測試工具)、bugzilla(測試管理追蹤工具)。
最主要的是其實大多數(shù)度也不知道這么多,主要看自己以后在測哪方面,學習能力最重要
1負載測試 負載測試是一種性能測試指數(shù)據在超負荷環(huán)境中運行,程序是否能夠承擔。
在這種測試中,將使測試對象承擔不同的工作量,以評測和評估測試對象在不同工作量條件下的性能行為,以及持續(xù)正常運行的能力。負載測試的目標是確定并確保系統(tǒng)在超出最大預期工作量的情況下仍能正常運行。
此外,負載測試還要評估性能特征,例如,響應時間、事務處理速率和其他與時間相關的方面。 比如,在B/S結構中用戶并發(fā)量測試就是屬于負載測試的用戶,可以使用webload工具,模擬上百人客戶同時訪問網站,看系統(tǒng)響應時間,處理速度如何? 2強度測試 強度測試是一種性能測試,他在系統(tǒng)資源特別低的情況下軟件系統(tǒng)運行情況。
這類測試往往可以書寫系統(tǒng)要求的軟硬件水平要求。 實施和執(zhí)行此類測試的目的是找出因資源不足或資源爭用而導致的錯誤。
如果內存或磁盤空間不足,測試對象就可能會表現(xiàn)出一些在正常條件下并不明顯的缺陷。而其他缺陷則可能由于爭用共享資源(如數(shù)據庫鎖或網絡帶寬)而造成的。
強度測試還可用于確定測試對象能夠處理的最大工作量。 比如:一個系統(tǒng)在內存366M下可以正常運行,但是降低到258M下不可以運行,告訴內存不足,這個系統(tǒng)對內存的要求就是366M。
最基本的知識,軟件測試基礎知識,測試流程、測試方法、測試用例編寫方法,bug生命周期、bug嚴重級別。。。。。等等等等,網上查一下
除此以外,操作系統(tǒng)windows中IIS部署網站、linux系統(tǒng)基本命令,
數(shù)據庫基本查詢語句,sqlserver 2005 或者mysql等數(shù)據的了解
網絡基本知識的了解
如果你想往深了研究,還需要掌握基本測試工具的使用,比如qtp、loadrunner等,還需要自己編寫腳本進行測試
聲明:本網站尊重并保護知識產權,根據《信息網絡傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個月內通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:2.224秒