軟件測試工程師(Software Testing Engineer)指理解產(chǎn)品的功能要求,并對其進行測試,檢查軟件有沒有錯誤(Bug),決定軟件是否具有穩(wěn)定性(Robustness),寫出相應的測試規(guī)范和測試用例的專門工作人員。簡而言之,軟件測試工程師在一家軟件企業(yè)中擔當?shù)氖?#8220;質量管理”角色,及時糾錯及時更正,確保產(chǎn)品的正常運作。按其級別和職位的不同,分為三類。
簡述 軟件測試
工程師作為軟件質量的把關者,其職能在于保證交付到客戶手中的軟件可靠好用,運行暢通無阻。從產(chǎn)品定義到產(chǎn)品開發(fā)再到產(chǎn)品維護,都離不了軟件測試。
按其級別和職位的不同,可分為三類,即:
高級軟件測試工程師,熟練掌握軟件測試與開發(fā)技術,且對所測試軟件對口行業(yè)非常了解,能夠對可能出現(xiàn)的問題進行分析評估;
中級軟件測試工程師,編寫軟件測試方案、測試文檔,與項目組一起制定軟件測試階段的工作計劃,能夠在項目運行中合理利用測試工具完成測試任務;
初級軟件測試工程師,其工作通常都是按照軟件測試方案和流程對產(chǎn)品進行功能測驗,檢察產(chǎn)品是否有缺陷。
編輯本段角色定位軟件項目開發(fā)是個分工明確的系統(tǒng)工程,不同的人員扮演了不同的角色,包括部門經(jīng)理、產(chǎn)品經(jīng)理、項目經(jīng)理、系統(tǒng)分析師、程序員、測試工程師、質量保證人員等??梢?,軟件測試工程師只是軟件項目開發(fā)中的一個角色而已。 測試工程師承擔的任務角色決定工作內(nèi)容和承擔的任務。測試工程師的角色應該承擔什么任務呢?這沒有統(tǒng)一的答案。因為,這與軟件公司的規(guī)模,軟件項目管理制度,公司領導和項目經(jīng)理的管理風格,以及具體軟件項目自身的特點有很大關系。而且,測試工程師也有普通和高級之分。 籠統(tǒng)的答案列舉如下: 設置軟件測試環(huán)境,安裝必要的軟件工具。 運行軟件,發(fā)現(xiàn)和報告軟件缺陷或錯誤。尤其需要快速定位軟件中的嚴重的錯誤。 對軟件整體質量提出評估 確認軟件達到某種具體標準 以最低的成本,最短的時間,完成高質量的測試任務 ...... 在這其中,最重要的是要明確,程序員的責任和目標。在執(zhí)行任何具體測試任務前,都要在項目組內(nèi)對于責任和目標達成共識,以免帶來后續(xù)工作的相互推諉。 提高測試質量的要訣 另外一個值得注意的方面就是工作效率和質量,或許高級測試工程師與普通測試工程師的主要區(qū)別在于高級測試工程師可以更快地發(fā)現(xiàn)更多軟件中的嚴重錯誤。對此,有什么可以借鑒的訣竅嗎?請嘗試以下方法,保證不會使您失望。 首先測試程序的核心功能,然后測試輔助功能。 首先測試功能,然后測試性能。 首先測試常見情況,然后測試異常情況。 首先測試經(jīng)過變更的部分,然后測試沒有變更的部分。 首先測試影響大的問題,然后測試影響小的問題。 首先測試必須測試的部分,然后測試可選或沒有要求測試的部分 測試工程師是項目團隊中的服務員 需要強調(diào)的一點是,無論你是多么高級的測試工程師,都要明白無論測試需要的工具多么復雜,測試步驟多么冗長,測試工程師在軟件項目開發(fā)中始終都是扮演服務員的角色,這是由測試工作的特點決定的。任何服務都有被服務對象—客戶,測試工程師的服務對象有哪些呢? 最重要的客戶是軟件的用戶。測試工程師需要站在客戶的使用和需求角度測試軟件,報告問題。 項目經(jīng)理也是客戶。測試工程師需要報告測試工作進度和發(fā)現(xiàn)的問題,尤其是嚴重的問題。 程序員是最經(jīng)常打交道的客戶。為了便于程序員重復報告的錯誤,盡量提供良好的軟件問題報告,以便程序員可以更快的修復軟件錯誤。 技術文檔工程師、市場開發(fā)人員和技術支持工程師也都是測試工程師的服務對象。 測試工程師避免犯的幾個錯誤 前文已經(jīng)指出測試工程師應該明確角色,明確任務和責任。知道哪些是自己份內(nèi)的事,哪些是不屬于自己的事。一定要盡最大努力完成份內(nèi)的事,不要做不屬于自己的事情,以免弄巧成拙。 為了更好的扮演軟件測試工程師的角色,盡量避免犯下面的錯誤: 1、承諾完成測試的軟件沒有質量問題 軟件測試只是保證質量的一種方法,軟件測試工程師的工作不會直接提高軟件質量,因為絕大多數(shù)軟件錯誤都需要程序員修復。軟件測試只能證明軟件存在錯誤,不能保證軟件沒有錯誤,不可能找出全部軟件錯誤。個人的能力和對質量的影響范圍很小,軟件質量的提高要靠軟件項目團隊全體成員的共同努力。 2、承擔軟件的發(fā)布權利 不要因為軟件中存在還沒有修復的錯誤,而試圖提出更改軟件發(fā)布的計劃。也不要認為已經(jīng)完成了測試計劃,自己決定可以發(fā)布軟件。因為,改變軟件發(fā)布計劃可能要失去進入市場的良機和很多客戶,對此造成的經(jīng)濟和公司市場的損失將不是測試工程師能夠承擔的。另外,軟件發(fā)布后,如果用戶發(fā)現(xiàn)了新的軟件錯誤,公司領導或項目經(jīng)理可能將過錯加在軟件測試人員的頭上,因為他們同意發(fā)布軟件。通常軟件發(fā)布的權利由產(chǎn)品經(jīng)理、項目經(jīng)理、測試經(jīng)理、市場經(jīng)理共同集體討論決定。 3、扮演過程改進成員的角色 軟件測試工程師必須報告錯誤,有時也要分析錯誤的類型、特征和產(chǎn)生錯誤的原因。但是,不要主動提出改進軟件過程的具體改進措施,更不要直接干涉程序員的工作方式,以免出力不討好,影響今后的愉快合作。軟件過程改進的方法是軟件質量控制部門的事情,這是他們的本職工作。[1]編輯本段工作職責軟件測試就是使用人工或自動手段,來運行或測試某個系統(tǒng)的過程。其目的在于檢驗它是否滿足規(guī)定的需求或弄清 預期結果與實際結果之間的差別。開發(fā)工作的根本是盡量實現(xiàn)軟件用戶的需求,測試工作的根本是檢驗軟件系統(tǒng)是否滿足軟件用戶的需求。 軟件測試工程師簡單的說是軟件開發(fā)過程中的質量檢測者和保障者,負責軟件質量的把關工作。軟件測試工程師具體工作有: 1 、使用各種測試技術和方法來測試和發(fā)現(xiàn)軟件中存在的軟件缺陷。測試技術主要分為黑盒測試和白盒測試兩大類。其中黑盒測試技術主要有等價類劃分法、邊界值法、因果圖法、狀態(tài)圖法、測試大綱法以及各類典型的軟件故障模型等;白盒測試的主要技術有語句覆蓋、分支覆蓋、判定覆蓋、基本路徑覆蓋等; 2 、測試工作需要貫穿整個軟件開發(fā)生命周期。完整的軟件測試工作包括單 元測試、集成測試、確認測試和系統(tǒng)測試工作。單元測試工作主要在編碼階段完成,由開發(fā)人員和軟件測試工程師共同完成,其主要依據(jù)是詳細測試。集成測試的主要工作測試軟件模塊之間的接口是否正確實現(xiàn),基本依據(jù)是軟件體系結構設計。確認測試和系統(tǒng)測試是在軟件開發(fā)完成后,驗證軟件的功能與需求的一致性、驗證軟件在相應的硬件條件下的系統(tǒng)功能是否滿足用戶需求,其主要依據(jù)是用戶需求。 3 、測試人員將發(fā)現(xiàn)的缺陷編寫成正式的缺陷報告,提交給開發(fā)人員進行缺陷的確認和修復。缺陷報告編寫最主要的要求是保證缺陷的重現(xiàn)。要求測試人員具有很好的文字表達能力和語言組織能力。 4 、測試人員需要分析軟件質量。在測試完成后,測試人員需要根據(jù)測試結果來分析軟件質量,包括缺陷率、缺陷分布、缺陷修復趨勢等。給出軟件各種質量特性包括有功能性、可靠性、易用性、安全性、時間與資源特性等的具體度量。最后給出一個軟件是否可以發(fā)布或提交用戶使用的結論。 5 、測試過程中,為了更好地組織與實施測試工作,測試負責人需要制定測試計劃,包括有測試資源、測試進度、測 試策略、測試方法、測試工具、測試風險等。 6 、測試人員為了更好更有效地進行測試,保證測試工作質量,需要在執(zhí)行測試工作之前首先需要設計測試用例,形成測試用例報告。設計測試用例是保證測試質量的核心工作,很多測試技術都可以用來指導設計用例。為了提高測試用例的設計效率,BTEST培訓課程專門開設了高效設計測試用例一門課來講授各種設計用例的技術與方法。 7 、為了提高工作效率或提高測試水平,測試工作需要引進自動化測試工具,測試人員需要學會使用自動化測試工具,編寫測試腳本,進行性能測試等。 8 、測試負責人在測試工作中,還需要根據(jù)實際情況不斷改進測試過程,提高測試水平,進行測試隊伍的建設等。編輯本段職業(yè)發(fā)展測 試組長這類測試人員通常是測試項目的負責人,既要具備較高的測試技術能力,還要具備一定的管理能力。主要職責是制定測試計劃、編寫測試計劃、監(jiān)控和管理整個測試過程。測試組長可以向上發(fā)展為測試部經(jīng)理、質量經(jīng)理,也可以橫向發(fā)展為項目經(jīng)理,而且通常待遇相對較高些。測試分析師主要職責是對系統(tǒng)的測試結果進行綜合的分析,例如缺陷分析、性能分析等。測試分析師不但測試技術能力較強,還要具備數(shù)據(jù)庫、操作系統(tǒng)等多方面的技術知識。這類職務的發(fā)展空間也不錯,可以發(fā)展成系統(tǒng)設計師等。自動化測試工程師、測試開發(fā)工程師主要職責是編寫測試程序、執(zhí)行自動化測試任務。這類職位的測試人員至少要達到初級程序員的能力,因為經(jīng)常和程序打交道。發(fā)展空間也不錯,例如可以發(fā)展為程序員。編輯本段職業(yè)素質計算機專業(yè)技能計 算機領域的專業(yè)技能是測試工程師應該必備的一項素質,是做好測試工作的前提條件。盡管沒有任何IT背景的人也可以從事測試工作,但是一名要想獲得更大發(fā)展空間或者持久競爭力的測試工程師,則計算機專業(yè)技能是必不可少的。計算機專業(yè)技能主要包含三個方面: 1. 測試專業(yè)技能 測試專業(yè)知識很多,本書內(nèi)容主要以測試人員應該掌握的基礎專業(yè)技能為主。測試專業(yè)技能涉及的范圍很廣:既包括黑盒測試、白盒測試、測試用例設計等基礎測試技術,也包括單元測試、功能測試、集成測試、系統(tǒng)測試、性能測試等測試方法,還包括基礎的測試流程管理、缺陷管理、自動化測試技術等知識。 2. 軟件編程技能 “軟件編程技能實際應該是測試人員的必備技能之一,在微軟,很多測試人員都擁有多年的開發(fā)經(jīng)驗。因此,測試人員要想得到較好的職業(yè)發(fā)展,必須能夠編寫程序。只有能給編寫程序,才可以勝任諸如單元測試、集成測試、性能測試等難度較大的測試工作。 此外,對軟件測試人員的編程技能要求也有別于開發(fā)人員:測試人員編寫的程序應著眼于運行正確,同時兼顧高效率,尤其體現(xiàn)在與性能測試相關的測試代碼編寫上。因此測試人員要具備一定的算法設計能力。依據(jù)資深測試工程師的經(jīng)驗,測試工程師至少應該掌握Java、C#、C++之類的一門語言以及相應的開發(fā)工具。 3. 網(wǎng)絡、操作系統(tǒng)、數(shù)據(jù)庫、中間件等知識 與開發(fā)人員相比,測試人員掌握的知識具有“博而不精”的特點,“藝多不壓身”是個非常形象的比喻。由于測試中經(jīng)常需要配置、調(diào)試各種測試環(huán)境,而且在性能測試中還要對各種系統(tǒng)平臺進行分析與調(diào)優(yōu),因此測試人員需要掌握更多網(wǎng)絡、操作系統(tǒng)、數(shù)據(jù)庫等知識。 在網(wǎng)絡方面,測試人員應該掌握基本的網(wǎng)絡協(xié)議以及網(wǎng)絡工作原理,尤其要掌握一些網(wǎng)絡環(huán)境的配置,這些都是測試工作中經(jīng)常遇到的知識。 操作系統(tǒng)和中間件方面,應該掌握基本的使用以及安裝、配置等。例如很多應用系統(tǒng)都是基于Unix、linux來運行的,這就要求測試人員掌握基本的操作命令以及相關的工具軟件。而WebLogic、Websphere等中間件的安裝、配置很多時候也需要掌握一些。 數(shù)據(jù)庫知識則是更應該掌握技能,現(xiàn)在的應用系統(tǒng)幾乎離不開數(shù)據(jù)庫。因此不但要掌握基本的安裝、配置,還要掌握SQL。測試人員至少應該掌握Mysql、MS Sqlserver、Oracle等常見數(shù)據(jù)庫的使用。行業(yè)知識行業(yè)主要指測試人員所在企業(yè)涉及的行業(yè)領域,例如很多IT企業(yè)從事石油、電信、銀行、電子政務、電子商務等行業(yè)領域的產(chǎn)品開發(fā)。行業(yè)知識即業(yè)務知識,是測試人員做好測試工作的又一個前提條件,只有深入地了解了產(chǎn)品的業(yè)務流程,才可以判斷出開發(fā)人員實現(xiàn)的產(chǎn)品功能是否正確。 很多時候,軟件運行起來沒有異常,但是功能不一定正確。只有掌握了相關的行業(yè)知識,才可以判斷出用戶的業(yè)務需求是否得到了實現(xiàn)。 行業(yè)知識與工作經(jīng)驗有一定關系,通過時間即可以完成積累。個人素養(yǎng)作為一名優(yōu)秀的測試工程師,首先要對測試工作有興趣:測試工作很多時候都是顯得有些枯燥的,因此熱愛測試工作,才更容易做好測試工作。因此,除了具有前面的專業(yè)技能和行業(yè)知識外,測試人員應該具有一些基本的個人素養(yǎng),即下面的“五心”。 1.專心:主要指測試人員在執(zhí)行測試任務的時候要專心,不可一心二用。經(jīng)驗表明,高度集中精神不但能夠提高效率,還能發(fā)現(xiàn)更多的軟件缺陷,業(yè)績最棒的往往是團隊中做事精力最集中的那些成員。 2.細心:主要指執(zhí)行測試工作時候要細心,認真執(zhí)行測試,不可以忽略一些細節(jié)。某些缺陷如果不細心很難發(fā)現(xiàn),例如一些界面的樣式、文字等。 3.耐心:很多測試工作有時候顯得非??菰铮枰艽蟮哪托牟趴梢宰龊?。如果比較浮躁,就不會做到“專心”和“細心”,這將讓很多軟件缺陷從你眼前逃過。 4.責任心:責任心是做好工作必備的素質之一,測試工程師更應該將其發(fā)揚光大。如果測試中沒有盡到責任,甚至敷衍了事,這將會把測試工作交給用戶來完成,很可能引起非常嚴重的后果。 5.自信心:自信心是現(xiàn)在多數(shù)測試工程師都缺少的一項素質,尤其在面對需要編寫測試代碼等工作的時候,往往認為自己做不到。要想獲得更好的職業(yè)發(fā)展,測試工程師們應該努力學習,建立能“解決一切測試問題”的信心。 “五心”只是做好測試工作的基本要求,測試人員應該具有的素質還很多。例如測試人員不但要具有團隊合作精神,而且應該學會寬容待人,學會去理解“開發(fā)人員”,同時要尊重開發(fā)人員的勞動成果——開發(fā)出來的產(chǎn)品。編輯本段外包軟件測試工程師外包軟件測試工程師主要承接外包軟件測試工作,外包軟件測試就是指軟件企業(yè)將軟件項目中的全部或部分測試工作,交給提供軟件外包測試服務的公司,由他們?yōu)檐浖M行專門的測試。這樣做的好處有兩個:一方面軟件企業(yè)可以更好地專注核心競爭力業(yè)務,同時降低軟件項目成本;另一方面,由第三方專業(yè)的測試公司進行測試,無論在技術上還是管理上,對提高軟件測試的有效性都具有重要意義。 外包軟件測試行業(yè)前景非??春?,發(fā)展空間很大。IDG的數(shù)據(jù)顯示,最近幾年,中國的軟件外包產(chǎn)業(yè)年均增長率為36.5%,正處于快速發(fā)展的階段,2008年預計已達到16.9億美元的市場規(guī)模。目前韓日、歐美國家的軟件企業(yè)紛紛關注中國市場,而作為軟件外包強國的印度,在其國內(nèi)處于前幾位的軟件外包服務商也準備來“分一杯羹”。從目前市場來看,選擇將部分軟件測試工作進行外包的公司主要是微軟、IBM等國際軟件旗艦企業(yè),他們利用第三方專業(yè)軟件測試公司,在產(chǎn)品發(fā)布前對軟件進行一系列的集成測試和系統(tǒng)測試,即保證了測試工作的全面性,又節(jié)省了人力、物力的開銷。最重要的是,測試結果往往好于這些軟件企業(yè)最初的預期,效果非常令人滿意。軟件企業(yè)和提供軟件外包測試服務的公司進行合作,只要達成雙贏,兩方皆大歡喜,這樣的合作就會越來越多,項目也會越做越大。主要業(yè)務類型·本地化軟件測試 ·國際化軟件測試主要測試的范圍·本地化語言質量測試 ·國際化軟件的功能和性能測試測試工作主要方式·公司內(nèi)部(In house)執(zhí)行的測試 ·派駐客戶開發(fā)中心的現(xiàn)場測試(On site)。編輯本段《軟件測試工程師指南》作者簡介: Timur 趙,Nortel 高級測試主管,浙大博士; 當你生活于網(wǎng)絡時代,只要原地不動就很容易落伍了。 沒有經(jīng)驗,不知如何躋身于測試工程師的行列?以下幾個基本方向能使你從新手成為軟件測試的行家里手。 軟件工業(yè)是自動化工業(yè)的一部分。而且是最活躍發(fā)展最迅速的一個方面。到底有多迅速?任何人的想像力都不夠!正如我們不會把我們的事務托付給不可靠的經(jīng)紀,任何有分量的公司都不會采用沒有質量保障的軟件。軟件測試人員,我是說有水平有經(jīng)驗的軟件測試人員永遠是供不應求的。軟件測試經(jīng)理不得不花很多的時間去面試有潛力的應聘者。一些應聘者在軟件方面或者軟件測試方面毫無實際經(jīng)驗,明知道軟件測試工作是一個高回報的和最合適的軟件工業(yè)入門,就是無法抓住一個又一個機會。這些人真正需要的是一個指南能告訴他們?nèi)绾纬蔀橐粋€軟件測試工程師。 首先,進入軟件測試需要哪些技能? 1、軟件工程技能 你必須了解軟件軟件工程(設計、開發(fā)和簡單測試),應用,系統(tǒng),自動測試編程,及操作系統(tǒng),數(shù)據(jù)庫,網(wǎng)絡系統(tǒng)和協(xié)議的設計和使用。 ?。病⒔涣骷记伞∪绻氪_定軟件缺陷,你應當能夠指出什么時候的缺陷算是缺陷。 ?。?、組織技能 如果你在別人都頭腦發(fā)昏的時候保持清醒,你就可能是一個好的軟件測試工程師。在網(wǎng)絡時代軟件測試是一項有壓力的復雜性工作,但如果你能從這些紛繁中找到一種途徑,它就是一項回報豐厚的事業(yè)。 ?。础嵺`技能 當一個工作需要經(jīng)驗,而你又需要一個工作去豐富你的經(jīng)驗時該怎么辦?這并不完全是一個兩難的問題,你可能采用幾種方式去獲得實際經(jīng)驗。 ?。?、態(tài)度 除了技術水平,你需要理解和采取適當?shù)膽B(tài)度去做軟件測試。編輯本段1、軟件工程技能(Software Engineering Skills) 軟件工程技能可以分成三大塊:理解軟件工程的規(guī)則,了解計算機編程和操作系統(tǒng)知識。 理解軟件工程“規(guī)則”。有一種過時的眼光認為軟件工程只是由一些在工作期限之前瘋狂編程、靠著非凡的協(xié)調(diào)能力和超人般的咖啡消耗整夜不睡,不停地設計和測試程序的“專家”們組成的。這種現(xiàn)象確實存在,但你只有了解了軟件開發(fā)的真正過程,才會是一個專業(yè)人員。 從哪開始呢?先到圖書館去走一走。你需要建立軟件測試知識的軟件工程基礎。我的建議是閱讀Roger Pressman的軟件工程:A Practitioner's Approach, fifth edition (職業(yè)入門,第五版,McGraw Hill, 2000年版)和 Glenford Myers的The Art of Software Testing(軟件測試藝術,John Wiley & Sons, 1979年版)。Pressman的書是一個對軟件工程原理的全面介紹。有很多關于軟件技巧、項目管理、要求分析和軟件設計等軟件工程方面的好書,但Pressman對這些方面在一本書里作了介紹。Glenford Myers不到二百頁,1979年發(fā)行,卻是軟件測試方面的圣經(jīng)。Myers定義及詮釋的測試方法論已成為軟件測試的基本模塊。 Myers還考查了軟件測試中的經(jīng)濟(缺陷的代價)和心理學方面(測試的目標就是發(fā)現(xiàn)失誤及不成功之處),以及主導軟件開發(fā)和測試的基本原則。 對參考書進行基本研究是一個好的開端,但這只是單方對話。如果你能和上千個直接具有軟件工程和測試經(jīng)驗的人以及想進入這一領域的人對話是不是再好不過了呢?感謝那些網(wǎng)絡電子部落,你已經(jīng)可以做到了。Comp.software-eng覆蓋了設計、編程、項目管理等軟件工程的各個方面。Comp.software.testing涵蓋了軟件測試的自動化、培訓、技巧等方面。 等等,別只停留在這里!你是不是應當經(jīng)常訪問這些網(wǎng)址呢?Bug-Net(http://65.54.244.250/cgi-bin/linkrd...%2ebugnet%2ecom)是有關軟件缺陷的在線雜志。閱讀有關缺陷的文章是學習如何工作及失敗的極好方式。你也應當查閱軟件測試及質量工程雜志(http://65.54.244.250/cgi-bin/linkrd...ww%2estqe%2ecom)。STQE 是確定網(wǎng)絡軟件測試資源很好的始發(fā)站。 計算機編程。不能想像有的人喜歡測試產(chǎn)品卻從不閱讀、檢查和理解組成產(chǎn)品的軟件一樣。 不要誤解我的意思。你不必花所有的時間去讀源代碼,但任何你做過的有關自己程序的設計、編寫和糾錯都能大大地有助于測試別人編寫的程序。 你怎樣學習編程?通過編程。可以嚴肅地說,開始學習寫計算機程序是最簡單的事。記住我說的是“開始學習”。軟件編程環(huán)境,例如 Microsoft Windows Foundation Classes (MFC) or Sun's Java Foundation Classes (JFC, also called "Swing")不斷變得越來越復雜,越來越難跟得上。 但我在努力超越自己。你應當怎樣學習編程呢? 首先,買Microsoft Visual Basic。不要讓名字騙了你。你能用這套組件建立相當復雜的程序。而且它只要一百元左右。下一步呢?等等,是visual編程警告的時候了! 現(xiàn)在你為你的PC買一個程序語言的時候,你其實是買了一個集成開發(fā)系統(tǒng)或稱為IDE。這些IDE通過對編程的簡化把開發(fā)過程流水線化。這些IDE其實會幫你寫很多編碼。這非常有利于盡早開發(fā)出一個產(chǎn)品,卻不利于你學習編程。如果你用Windows產(chǎn)生程序,你別無選擇,因為環(huán)境介入太多使你無法從頭編程。如果你從Unix系統(tǒng)產(chǎn)生程序,你能自己寫所有的編碼。 一旦你習慣了與參量、控制結構、對象、輸入輸出及更重要的Visual Basic糾錯打交道的時候,你就可以開始學習C語言了。學習C能使你熟悉十六進制系統(tǒng),通過指針分配和參考內(nèi)存,存取個體位碼及建立程序模塊。 我總是認為在學Java之前最好先學會C,因為C強迫你自己去完成許多任務而Java會自動處理(例如,釋放未用的空間)。用C工作比Java難,但你能學到編程更多的基本方面。你其實能用Visual C++ IDE從頭寫C程序,但最好還是在Unix系統(tǒng)中學C。 操作系統(tǒng)知識。你已經(jīng)把它交給了在Redmond, Washington的那些人了。在短短的幾年內(nèi),Windows NT已經(jīng)成為世界上大部分計算機的標準操作系統(tǒng)。如果你要用NT工作,你需要了解它的寄存地址。(它是一種用于存儲你的系統(tǒng)結構的各個方面的數(shù)據(jù)庫。)我發(fā)現(xiàn)Peter Norton寫的Inside Windows NT 4.0 (SAMS, 1998)是一本很好的介紹書。但是,如果你的應用或系統(tǒng)要求高的保密度、產(chǎn)出、可靠性及靈活性,Unix依然是最好的選擇。 如果你想成為一個成功的軟件工程師,你必須能在Unix的世界里工作,如果你想從頭學習編程,也要在Unix下進行。 你的選擇是什么?你可以到當?shù)氐膶W?;虼髮W學習課程,或者在家建立一個Unix系統(tǒng)。別昏過去了,你所需要的只是一臺PC和一份能讓你從網(wǎng)絡免費下載的Linux拷貝。(你大約花二十九元能買一份在一個CD-ROM中帶了所有文件的拷貝。)Linux不是Unix的“玩具”版,它是真實的。它已經(jīng)發(fā)行了七百萬份拷貝,一些主要的PC生產(chǎn)商甚至先替你裝載了它。 好了,你已經(jīng)到了Unix或Linux系統(tǒng)了。你應當學些什么?文件和目錄結構,標準輸入輸出和錯誤流,背景(background,也稱為"daemon")處理,從C調(diào)用系統(tǒng)功能,好,我可以接下去了。一個好的開端是讀Arnold Robbins的Unix in a Nutshell (O'Reilly & Associates, 1999)或者是Ellen Siever的Linux in a Nutshell (O'Reilly & Associates,1999)。編輯本段2、交流技能(Communications Skills) 能寫出計算機程序卻寫不出一個完整句子的軟件工程師現(xiàn)在還有。但不幸的是,要成為一個成功的軟件測試工程師,你需要清楚的交流。 你怎么去學習寫?通過寫。如果文字水平太粗糙,上一門創(chuàng)造性寫作的課。每天寫工程流水記錄或發(fā)email。關鍵是學習(或重新學習)怎樣用清晰可懂的語言表達你的思想。一個好的寫作參謀是William Strunk Jr.和E.B. White寫的The Elements of Style(Allyn & Bacon, 2000),它一點也不象初中教科書。 測試工程師必須把產(chǎn)品測試的技術寫成文件。測試計劃提供指導并把測試設計轉化為設置、實現(xiàn)測試和評估結果的步驟指導。具有一般軟件和產(chǎn)品特性不同層次經(jīng)驗的工程師都能使用這樣一個詳細的測試計劃。如此測試設計者或測試方案作者之外的工程師也能能進行測試。 測試計劃也幫著佐證測試策略的正確性。項目中的每個人都應當參與審查(即市場、開發(fā)、支持、技術寫作及測試人)。計劃的審查是必不可少的,因為盡管測試工程師盡最大努力來達成一個對產(chǎn)品的全面定義,這一測試設計者所基于的定義不一定是完整或準確的。此外,就象開發(fā)者很難測試他們自己的編碼一樣,測試工程師也很難明確評估他們自己的測試計劃。每一個計劃審查者都可能根據(jù)其經(jīng)驗及專長建議修改,有時候審查者還能提供測試工程師在組織產(chǎn)品定義時不具備的信息。例如,一個市場人員可能了解到了新的客戶要求,一個軟件支持專家可能從有關的產(chǎn)品領域了解到了一個新的缺陷報告。 測試計劃強調(diào)測試計劃和執(zhí)行的原則。在測試計劃中描述進行測試所需的測試設計和步驟是另一層關于測試設計和計劃的原則。在測試設計和計劃中的錯誤與欠缺在設計轉化成測試計劃中特定的結構和測試步驟后就經(jīng)常是再已無法彌補。 測試計劃可作為其它項目,例如為不同的產(chǎn)品準備測試時的參考資料。當被測試軟件找到缺陷解決并證實后,測試計劃所述的測試可以用于證實缺陷的解決方案。同時,一個主要的測試設計信息來源,特別對于舊產(chǎn)品的新版本而言,是相關產(chǎn)品或前版本的測試計劃。在建立新版本時,舊版本的軟件測試計劃都應當被重新審查。 與功能與設計說明不同,測試計劃將從測試的角度來描述產(chǎn)品的功能操作。從這方面說,測試計劃構成了公司公共檔案的一部分。隨著時間的流逝人們會離開公司,帶走他們的知識。以前產(chǎn)品的測試計劃就能幫助你定義新產(chǎn)品的測試。 軟件測試工程師還要寫測試結果報告。測試結果必須寫成文檔,這樣就能確定被測軟件的狀態(tài),提供關于必須要解決的缺陷的記錄。產(chǎn)品測試中發(fā)現(xiàn)的所有缺陷的記錄是測試部門最顯眼、保存時間最長的文檔。測試計劃和測試報告在項目的最后常被遺忘,但現(xiàn)存缺陷的清單(或數(shù)據(jù)庫)代表項目未完成的議程。這一議程沒完成是因為一些缺陷必須在對原來產(chǎn)品的一個patch或maintenance release的時候糾正,或者它們在這個產(chǎn)品作為后續(xù)產(chǎn)品的基礎之前被修復。 在與軟件產(chǎn)品打交道的過程中,測試工程師比其他部門的人參與項目的更多方面。測試部門應當記錄項目過程中重大事件(例如設計決定)的信息。這個信息應能幫助測試部門和其他部門避免在后續(xù)項目中犯同樣的錯誤。錯誤是不可避免,在一個項目中可能出問題。從這些經(jīng)驗中學習就可能避免問題,避免今后的同樣錯誤。從錯誤中學習的第一步就是記住它們,記憶的第一步就是把它們寫下來。編輯本段3、組織技能(Organizational Skills) 每當執(zhí)行一個軟件項目的測試計劃,幾乎不可能不遇到至少會阻礙一些測試而必須解決的缺陷。一個測試工程師應當能靈活地停止測試產(chǎn)品的一部分而開始測試其他部分。有時被測軟件需要做根本變動引起大量的測試結果失效,測試也許得重做不止一次。在問題被查找和改變在進行的過程中,測試工程師必須有條理,保持對執(zhí)行測試的軟件的前后關系的明確感受(例如目前被測試的程序特定版本的不同部分)。 網(wǎng)絡時代要求的動態(tài)開發(fā)和測試模式使組織性的工作方式對測試工程師越來越重要。在整個開發(fā)過程中被測試軟件可能會不斷地改進。測試工程師在計劃和實施測試的時候必須考慮這些變化因素,必須控制測試環(huán)境來保證測試結果的有效性。 記住計劃是一個動詞。作為一個軟件工程師,你永遠不會有你想要的所有時間和資源。你總是必須通過理解技術和產(chǎn)品,開發(fā)組織方式,從你和其他人的錯誤中學習,以及在設計必須改變和出問題的時候的迅速調(diào)整,使你的測試效果和效率最大化。如何能做到這點呢?基本代數(shù):量化任務、目標和結果來減少方程中的變量數(shù)。把產(chǎn)品的功能定義成要求。在測試計劃和測試中量化測試及其預期的和實際的結果,把信息提供給項目組。你東點一下西點一下是不能完成整個測試的。未來軟件開發(fā)的組織模式要求有靈活的設計和不斷進化的開發(fā)周期。對產(chǎn)品測試必須隨著產(chǎn)品的進化而進化。編輯本段4、實踐經(jīng)驗(Hands-On Experience) 這是個典型的兩難問題。你需要軟件測試經(jīng)驗來找工作,你沒工作你就沒經(jīng)驗。你該怎么辦? Be careful! 這需要勇氣和你的PC的小心備份。 作為自愿者參與beta測試。怎樣發(fā)現(xiàn)需要beta測試員的公司呢?首先,給你在軟件公司工作的親友打電話。偶爾有人會需要beta的測試人員。如果這不行,到你最喜歡的網(wǎng)絡搜索引擎上去找“beta test”。你會發(fā)現(xiàn)很多小(和不那么小的)公司亟需beta測試員。為什么?這得感謝互聯(lián)網(wǎng),競爭的加劇使公司必須做出產(chǎn)品模型貼到他們的網(wǎng)址上作為“beta”版推出。這些公司希望人們不僅測試他們的產(chǎn)品,而且對這些免費品感興趣進而購買他們的產(chǎn)品。 你也能參與開放資源的項目,例如Mozilla,開放資源的網(wǎng)絡瀏覽器是網(wǎng)絡瀏覽器的基礎。Mozilla缺陷跟蹤系統(tǒng)(允許網(wǎng)上任何感興趣的人直接 在 http://65.54.244.250/cgi-bin/linkrd...2emozilla%2eorg 的開放資源項目中直接報告和跟蹤缺陷 一句忠告:如果你要把很多beta軟件下載到你家里的PC里,投資你的備份設備和防病毒組件。編輯本段5、態(tài)度?。ˋttitude) “我希望你幸福的夢想,被你打破了!” 我打賭這句話能勾起一些人童年記憶的創(chuàng)傷。我不是心理學家,但我還敢說這種說法是因為我們渴望看到成功。在軟件測試中,你不僅要證實軟件在做它該做的,還要證實它不會做它不該做的。為了做到這一點,你得找出軟件的失敗之處。 進行軟件測試需要很多人的眼光要進行一百八十度的轉變,因為測試的目標是要讓被測軟件失敗,由此產(chǎn)生出等同于其他東西工作正確時的成功。在軟件測試中,一個成功的測試揭示一個缺陷。進行軟件測試也是因為互聯(lián)網(wǎng)的來臨要求人們用一種大不同以往的眼光來看待動態(tài)的開發(fā)和測試模型。編輯本段6、必備特性?。∟ecessary Traits) 軟件測試工程師除了技術,還要求具有否定性的創(chuàng)造力;探測技巧;總體理解產(chǎn)品的能力;用客戶的眼光進行評估;懷疑的而不是敵意的態(tài)度;能經(jīng)受得住壞消息而保持目標;擁抱新技術的熱望等特征。否定性的創(chuàng)造力。一個軟件工程師不能怕引起一個產(chǎn)品的癱瘓或燒毀。在軟件測試中,邊界意味著被超越而不是被遵從。如果一個程序對某個值的極限為10(例如,可以在一時間被打開的最大文件數(shù)),測試工程師的第一想法應當是“如果我把那個值取11,或0,或10.1,甚至不設這個值會如何?” 在我的早期的工作生涯中,有一次我測試一個開發(fā)和QA工程師遺漏下來的PC數(shù)據(jù)庫。有問題的數(shù)據(jù)庫是2.01版。這本身就說明產(chǎn)品有問題。2.0版沒解決1.0版的所有缺陷嗎?或者2.0版又加入了新的缺陷?很遺憾因為時間緊我沒有調(diào)查這些,只是證實了最后的缺陷修復后就告捷了。 這是很大的錯誤。我應當重測開發(fā)人員所謂“沒有變化”的所有產(chǎn)品功能。2.0版本中的缺陷確實復修了,但在修復的過程中,有人破壞了請求。事實就是如此,在數(shù)據(jù)庫里不能搜索數(shù)據(jù)了,第一個收到這項產(chǎn)品的beta客戶發(fā)現(xiàn)了這個缺陷。 我宣布以前的測試無效,要求對產(chǎn)品進行全面測試。找到幾個缺陷之后,我發(fā)現(xiàn)這個數(shù)據(jù)庫讀取寫保護文件或寫保護了的磁盤的時候就會引起癱瘓。開發(fā)人員很吃驚我會試著寫保護一個數(shù)據(jù)庫。他們的反應就是:“沒人會這么干的!”產(chǎn)品的市場經(jīng)理很快用他們的方式承認了錯誤。探測技巧。在一個理想的世界中,軟件測試應當在一個經(jīng)常更新的寫得很清楚的功能與設計說明文件(一般被稱為“specifications”)中被完整而精確地描述。不幸的是,這一完善被開發(fā)程序每一方面文件的任務,包括記錄在開發(fā)中對程序不可避免的改變,要花很多的時間和精力以至于人們無法完成編程。而且花費也太大。 正式與非正式的信息源 正式系統(tǒng) 要求文件 功能說明書 設計說明書 非正式系統(tǒng) 用戶文件 與其他開發(fā)人員的交流 與軟件支持人員的交流 有關產(chǎn)品的文件 有關產(chǎn)品的缺陷 從工作于相關或早期版本產(chǎn)品獲得的“局部知識” 因為我們不是在理想世界里編程,測試工程師應當能夠自己找出工作的方式。典型的是,總會有一些設計和功能說明書讓測試工程師用于開始他的研究。這些文件能看成為描述被測試軟件的“正式”系統(tǒng)。測試工程師應當能用更廣大的“非正式”系統(tǒng)的信息來擴展“正式”系統(tǒng)的信息。同時,在項目周期的任何一個點,任何文件都可能是正確或不正確的,所以測試工程師必須根據(jù)對軟件工作模式的觀察,與開發(fā)人員和其他項目人員的交談,或對有關或看上去不那么相關文件的審核,來確定文件的精確性。總體理解產(chǎn)品。在一個程序項目是,軟件開發(fā)工程師主要把他們的精力和注意力集于自己的項目部分。結果當這些項目部分組合在一起進行測試的時候,就會碰到兼容性的問題。到產(chǎn)品寄給一個客戶之前,唯一能見到整個產(chǎn)品的就是測試工程師。因此測試工程師必須能夠對整個產(chǎn)品的操作與使用保持一種“系統(tǒng)”的眼光。 測試工程師對產(chǎn)品的任何一部分的操作可能不是最好的專家,但他必須是產(chǎn)品整體操作的專家。例如,如果被測的產(chǎn)品是一個類似于Microsoft Office的由文字處理、擴展頁和其他有關程序組成的辦公室自動組件,測試工程師必須了解每個程序的操作,各個程序之間的相互作用和客戶其他的軟件硬件和軟件環(huán)境。用客戶的眼光進行評。測試工程師必須是客戶的擁護者。被測程序有可能運行可靠滿足所有的設計要求,但在客戶的軟件環(huán)境中未必能夠用。產(chǎn)品被送到客戶之前的測試之一就是要證實產(chǎn)品達到了客戶的要求與期望。在這項測試中,測試工程師必須模擬用戶的軟件環(huán)境,把自己放到他們的位置上。 關于軟件功能“正確”而不能滿足客戶需要的一個悲劇性的例子就是美國航空公司965航班1995年在哥倫比亞卡利市的一次失事。在飛行著陸時,空中信號控制系統(tǒng)指示機組人員朝一個叫“Rozo”的航空信號燈飛。這個信號燈在航空圖中標為R。機組人員把R輸入到飛行管理計算機中,看到了明顯是由近到遠列出的六個航空信號燈。機組人員選了第一個信號燈,以為這就是Rozo。但那不是。自動駕駛儀把飛機向左轉了九十度,撞到了山上。 什么地方出錯了呢?當航空表里把Rozo列為R的時候,飛行管理計算機要求機組人員輸入信號燈的全名調(diào)出它的方位。同時,計算機只顯示了信號燈的編碼字母和方位。計算機功能“正確”,但不滿足用戶的需求。要求變化。項目剛開始時的要求與最終項目完成時的要求一致的情況是極少見的。有時技術變化了,產(chǎn)品必須改變以適應于技術。有時競爭對手的產(chǎn)品具有你的產(chǎn)品所沒有的功能。很多情況下,客戶的或潛在客戶的要求需要變化。這些因素合在一起的一個例子就是目前Microsoft Internet Explorer和Netscape的競爭。 隨著計算機首次用戶的迅速增加,今天的測試工程師比以往更需要把自己置于客戶的位置上。這些新的非技術用戶不愿意接受缺陷,對缺陷的解釋或理性思考,或通過“升級”修正缺陷。他們只希望他們所買產(chǎn)品的軟件和硬件都是能工作的。懷疑的而不是敵意的態(tài)度。測試工程師不能按表面值接受事物,必須執(zhí)著地對一切提出疑問直到被證實。工程師必須用一種與項目的其他的人合作精神來平衡這種懷疑性與執(zhí)著性。測試部門與其有關部門的關系可能會變得緊張,特別是在大量缺陷被發(fā)現(xiàn)后,或者在每個找出的缺陷會潛在地延遲產(chǎn)品的發(fā)貨時間而延遲了項目時。測試工程師應當記住要攻擊程序的整體性,而不是程序員。經(jīng)受得住壞消息而保持目標的能力。一個測試工程師必須忠實地匯報產(chǎn)品中的缺陷。這一信息應當被項目組歡迎,因為每一個測試工程師遇到的問題(除非加入新的問題)都意味著減少客戶會面臨的問題。但不幸的是很多人不想聽到有問,特別是在程序項目的后期。 測試工程師應當能處理因為工作做得太好而引起責備的情況。這對有些人來說是很難做到的,會嚴重地影響斗志與自尊。 看起來常常是測試工程師阻撓了向客戶交貨。客觀的項目經(jīng)理才能感覺到測試工程師是在對項目提供有價值的服務。我清楚地記得一個項目經(jīng)理舉起他的手求我他要的是:“解決方案,不是問題!”(他不明白解決方案的實現(xiàn)有時要求一個問題的解決。)有時項目經(jīng)理在項目計劃不方便的時候對于因為發(fā)現(xiàn)缺陷而打折是有壓力的。在這些情況下,測試工程師應當能基于他對產(chǎn)品的經(jīng)驗和知識進行辯護,但他不應表現(xiàn)為象是他個人受到了威脅。 如何避免這些情形呢?就測試的內(nèi)容、時間及如何更新測試結果和缺陷信息,設定其他項目組成員的期望。我曾經(jīng)為一個希望延遲產(chǎn)品發(fā)送日期的QA經(jīng)理工作過。他的目的不是為了產(chǎn)品成功,而是政治權力的操縱。他確信自己能被提升,把一些為他工作的工程師指定為“manager”,開始自稱為“director”,還要大樓管理人員把他的辦公隔間加寬一英尺。(這沒有實現(xiàn),但至少他的座位有了更多伸腳的余地。)擁抱新技術的熱望。對多數(shù)人來說,年齡越大越難學習。在商業(yè)世界里,人員越往公司的食物鏈高處走,越遠離他們所建立的技術基礎。這一部分是因為他們需要把精力集中于其他的經(jīng)營和指導其下屬的任務中。有時也是因為他們不幸地認為自己已不需要進行實踐的技術工作了。互聯(lián)網(wǎng)增加了技術變化的速度。不繼續(xù)學習或跟著發(fā)展就無法做出商務與技術的決斷。 從前的一個經(jīng)理給我樹立了如何對待新技術的榜樣。我跟他工作的時候他年近六十,但他象新手一樣地熱心于學習新技術。他大量地獲取信息,不斷補充在網(wǎng)絡服務器、防火墻、和Perl或Expect等新語言的知識。他還重視做QA或測試組織的工作。他的最初背景是軟件開發(fā)和開發(fā)管理,但他并不認為做QA經(jīng)理是在降低他的聲望。他明白一個獨立的測試或QA組所進行的完整測試能使開發(fā)經(jīng)理的工作變得多簡化。 正象我所說的,當你生活于網(wǎng)絡時代,只要原地不動就很容易落伍了。 相對于其他軟件工程人員, 軟件測試工程師的知識面應該非常寬廣,但最重要的品質應該是能夠在第一時間內(nèi)接受新技術。 由于公司之間的競爭日益集中在質量方面,所以公司對軟件測試人員的需求量也越來越大,這一點,在北美尤為明顯,這決定了軟件測試行業(yè)的前景可喜,同時也為愿意不斷進取、學習新技術的華人移民提供了廣闊的就業(yè)空間,軟件測試工程師的就業(yè)機會一直都是非常多的,最關鍵,要善于抓住機遇并肯付出努力,踏踏實實的學起來、做起來。編輯本段開設課程搭建 Windows 測試環(huán)境 使用 C 語言開發(fā)簡單應用 測試計劃與軟件缺陷 高效設計測試用例 白盒測試 Linux 與網(wǎng)絡應用環(huán)境 WEB 技術與數(shù)據(jù)庫 高效使用自動測試工具 軟件測試實訓 職業(yè)導向訓練 華為軟件測試工程師學習大綱 一、軟件測試的原理 v 軟件工程:軟件的含義、軟件開發(fā)過程的特性 、軟件生命周期模型、軟件管理過程軟件質量和質量保證:軟件質量就是客戶的滿意度 、質量的概念、軟件質量的內(nèi)涵、質量管理體系、SQA、SCM、SEPG v 軟件測試概念:軟件危機、軟件測試產(chǎn)生的背景,軟件缺陷是什么、軟件測試職業(yè)發(fā)展,軟件測試人員應具備的素質和技能、軟件測試基本概念、軟件測試的目的、軟件測試的重要性、軟件測試的原則、軟件開發(fā)與軟件測試 v 軟件測試依據(jù)和規(guī)范:軟件質量標準、軟件測試規(guī)范、界面規(guī)范、編碼規(guī)范、CMM和ISO9001思想結構體系、CMM VS ISO 二、軟件測試的技術 v 軟件測試技術概述:軟件測試的基本方法,黑盒測試、白盒測試、靜態(tài)測試、動態(tài)測試、測試策略 v 軟件測試流程:軟件測試流程、通用測試文檔模板 、軟件測試的分類、軟件包的質量特性 v 單元測試和集成測試:什么是單元測試、單元測試的目標和任務、單元測試方法、調(diào)試與評估、什么是集成測試、集成測試目標和任務、集成測試的模式與方法 v 系統(tǒng)測試和驗收測試:什么是系統(tǒng)測試,系統(tǒng)測試的目標和任務,系統(tǒng)測試方法,系統(tǒng)測試中工具的應用、什么是驗收測試、驗收測試的目標、驗收測試的過程和主要內(nèi)容、產(chǎn)品規(guī)格說明書的驗證 v 特定類型的軟件測試:面向對象軟件的測試、面向對象軟件的特點、面向對象測試的層次與數(shù)據(jù)流、面向對象的單元測試、面向對象的集成測試 、基于應用服務器的測試、應用服務器的分類和特征、基于Web服務器應用的測試、基于數(shù)據(jù)庫應用服務器的測試、基于J2EE平臺的測試、軟件本地化測試:什么是軟件本地化、軟件本地化的翻譯問題、軟件本地化測試的技術問題、本地化測試的重點 三、軟件測試的實踐 v 測試環(huán)境的部署:測試環(huán)境的重要性、測試環(huán)境的各要素、建立測試實驗室、測試環(huán)境的維護和管理 v 軟件測試用例的設計:測試用例來源、測試需求提取、測試用例設計、白盒測試用例設計方法、邏輯覆蓋法/基本路徑測試法 、黑盒測試用例設計方法、等價類劃分法/邊界值分析法/因果圖法/錯誤推測法 /功能圖法、測試用例的組織和跟蹤、使用實際項目實踐 v 報告所發(fā)現(xiàn)的軟件缺陷: 軟件缺陷的描述 、軟件缺陷相關的信息 、軟件缺陷的處理和跟蹤 v 軟件測試和質量分析報告:軟件產(chǎn)品的質量度量 、評估系統(tǒng)測試的覆蓋程度 、軟件缺陷分析方法 、基于缺陷分析的產(chǎn)品質量評估 、軟件質量的可靠性評估、軟件可靠性模型、可靠性評估過程 v 軟件測試自動化:測試自動化的內(nèi)涵、測試工具的分類和選擇、測試工具的主流產(chǎn)品介紹、IBM-Rational產(chǎn)品的整體解決方案、Mercury Interactive產(chǎn)品的整體解決方案,測試管理工具TD實操演示及指導、功能測試工具Robot實操演示及指導、腳本語言perl實操演示及指導、性能測試工具LR v 網(wǎng)絡基礎知識:協(xié)議概念、常見的網(wǎng)絡協(xié)議及層次、TCP/IP協(xié)議、Arp協(xié)議等報文分析、常見的網(wǎng)元設備及工作原理、常用的網(wǎng)絡操作相關命令、客戶機服務器模型、抓包工具使用 v 數(shù)據(jù)庫簡介及SQL語句:數(shù)據(jù)庫系統(tǒng)概念、數(shù)據(jù)管理的發(fā)展階段、數(shù)據(jù)庫系統(tǒng)的特點、SQL概述、SQL數(shù)據(jù)定義功能、SQL數(shù)據(jù)查詢功能、SQL數(shù)據(jù)修改功能、嵌入式SQL v Linux操作系統(tǒng)簡介及常用命令:Linux系統(tǒng)介紹、Linux系統(tǒng)歷史及發(fā)展、Linux系統(tǒng)特點、Linux系統(tǒng)安裝與配置、Linux系統(tǒng)命令的使用方式、文件及目錄操作命令、文件壓縮命令、聯(lián)機幫助命令、進程管理的命令 四、軟件測試管理 v 組織和管理測試團隊:基于ISO的測試管理體系構成、測試團隊的地位和責任、測試團隊的構成 、測試團隊的管理和發(fā)展 v 軟件測試項目管理:軟件測試項目管理的概述 、軟件測試項目的組織 、軟件測試項目的過程管理 、軟件測試項目的資源管理 、測試項目的進度管理 、測試項目的風險管理 、測試項目的質量和配置管理 、軟件測試文檔的管理 v 理解CMM:KPA簡介 、CMM的五個等級及關鍵過程域、CMM實例簡介 、CMM的發(fā)展、CMMI2級詳細講解 五、軟件測試人員面臨的機會和挑戰(zhàn) v 軟件測試職位在IT行業(yè)的現(xiàn)狀 v 軟件測試職位到底是干什么? v 軟件測試行業(yè)的背景 v 軟件測試人員需要具備的基本素質 v 軟件測試工程師需掌握的技術技能大綱 v 軟件測試人員后期的發(fā)展機會和挑戰(zhàn) 附錄(基礎技能版,本內(nèi)容為華為公司指定培訓內(nèi)容): 一、基礎技能方面: Unix/Linux操作系統(tǒng): 1、熟悉UNIX環(huán)境 2、掌握UNIX常用命令 3、了解并掌握Vi的一些常用命令 4、了解基本的shell Informix: 1、熟悉并掌握informix常用命令 2、掌握SQL相關的一些知識 Oracle: 1、掌握Oracle的基本操作 2、掌握在unix/Linux系統(tǒng)下安裝Oracle數(shù)據(jù)庫 二、網(wǎng)絡基礎知識 1、熟悉TCP/IP、HTTP、UDP協(xié)議 2、掌握常用的網(wǎng)絡命令 3、抓包工具的熟悉與學習 三、測試理論 1、軟件及其開發(fā)過程 2、軟件測試的基本概念與方法 3、質量保證與策略 4、測試依據(jù)與規(guī)范 5、單元測試 6、集成測試與系統(tǒng)測試 7、驗收測試 8、基于應用服務器的測試 9、測試計劃的制定、用例的設計與執(zhí)行、缺陷的跟蹤 四、模擬項目練習 1、理解需求,設計測試用例、測試用例評審 2、測試執(zhí)行 3、提單規(guī)范 有關模擬項目的需求、用例模板、測試版本。 |
|
來自: zhua90 > 《四軟件測試工程師》