軟體測試工程師

來源:果殼範文吧 8.29K

軟體測試工程師Software Testing Engineer指理解產品的功能要求並對其進行測試檢查軟體有沒有錯誤Bug決定軟體是否具有穩定性Robustness寫出相應的測試規範和測試用例的專門工作人員簡而言之軟體測試工程師在一家軟體企業中擔當的是質量管理角色及時糾錯及時更正確保產品的正常運作按其級別和職位的不同分為三類

軟體測試工程師

1分類

按其級別和職位的不同可分為三類高階軟體測試工程師熟練掌握軟體測試與開發技術且對所測試軟體對口行業非常瞭解能夠對可能出現的問題進行分析評估中級軟體測試工程師編寫軟體測試方案測試文件與專案組一起制定軟體測試階段的工作計劃能夠在專案執行中合理利用測試工具完成測試任務初級軟體測試工程師其工作通常都是按照軟體測試方案和流程對產品進行功能測驗檢察產品是否有缺陷

2角色定位

軟體專案開發是個分工明確的系統工程不同的人員扮演了不同的角色包括部門經理產品經理專案經理系統分析師程式設計師測試工程師質量保證人員等可見軟體測試工程師只是軟體專案開發中的一個角色而已測試工程師承擔的任務角色決定工作內容和承擔的任務測試工程師的角色應該承擔什麼任務呢這沒有統一的答案因為這與軟體公司的規模軟體專案管理制度公司領導和專案經理的管理風格以及具體軟體專案自身的特點有很大關係而且測試工程師也有普通和高階之分籠統的答案列舉如下設定軟體測試環境安裝必要的軟體工具執行軟體發現和報告軟體缺陷或錯誤尤其需要快速定位軟體中的嚴重的錯誤對軟體整體質量提出評估確認軟體達到某種具體標準以最低的成本最短的時間完成高質量的測試任務......在這其中最重要的是要明確程式設計師的責任和目標在執行任何具體測試任務前都要在專案組內對於責任和目標達成共識以免帶來後續工作的相互推諉提高測試質量的要訣另外一個值得注意的方面就是工作效率和質量或許高階測試工程師與普通測試工程師的主要區別在於高階測試工程師可以更快地發現更多軟體中的嚴重錯誤對此有什麼可以借鑑的訣竅嗎請嘗試以下方法保證不會使您失望首先測試程式的核心功能然後測試輔助功能首先測試功能然後測試效能首先測試常見情況然後測試異常情況首先測試經過變更的部分然後測試沒有變更的部分首先測試影響大的問題然後測試影響小的問題首先測試必須測試的部分然後測試可選或沒有要求測試的部分服務員需要強調的一點是無論你是多麼高階的測試工程師都要明白無論測試需要的工具多麼複雜測試步驟多麼冗長測試工程師在軟體專案開發中始終都是扮演服務員的角色這是由測試工作的特點決定的任何服務都有被服務物件客戶測試工程師的服務物件有哪些呢最重要的客戶是軟體的使用者測試工程師需要站在客戶的使用和需求角度測試軟體報告問題專案經理也是客戶測試工程師需要報告測試工作進度和發現的問題尤其是嚴重的問題程式設計師是最經常打交道的客戶為了便於程式設計師重複報告的錯誤儘量提供良好的軟體問題報告以便程式設計師可以更快的修復軟體錯誤技術文件工程師市場開發人員和技術支援工程師也都是測試工程師的服務物件避免錯誤前文已經指出測試工程師應該明確角色明確任務和責任知道哪些是自己分內的事哪些是不屬於自己的事一定要盡最大努力完成分內的事不要做不屬於自己的事情以免弄巧成拙為了更好的扮演軟體測試工程師的角色儘量避免犯下面的錯誤⒈承諾完成測試的軟體沒有質量問題軟體測試只是保證質量的一種方法軟體測試工程師的工作不會直接提高軟體質量因為絕大多數軟體錯誤都需要程式設計師修復軟體測試只能證明軟體存在錯誤不能保證軟體沒有錯誤不可能找出全部軟體錯誤個人的能力和對質量的影響範圍很小軟體質量的提高要靠軟體專案團隊全體成員的共同努力⒉承擔軟體的釋出權利不要因為軟體中存在還沒有修復的錯誤而試圖提出更改軟體釋出的計劃也不要認為已經完成了測試計劃自己決定可以釋出軟體因為改變軟體釋出計劃可能要失去進入市場的良機和很多客戶對此造成的經濟和公司市場的損失將不是測試工程師能夠承擔的另外軟體釋出後如果使用者發現了新的軟體錯誤公司領導或專案經理可能將過錯加在軟體測試人員的頭上因為他們同意釋出軟體通常軟體釋出的權利由產品經理專案經理測試經理市場經理共同集體討論決定⒊扮演過程改進成員的角色軟體測試工程師必須報告錯誤有時也要分析錯誤的型別特徵和產生錯誤的原因但是不要主動提出改進軟體過程的具體改進措施更不要直接干涉程式設計師的工作方式以免出力不討好影響今後的愉快合作軟體過程改進的方法是軟體質量控制部門的事情這是他們的本職工作

3工作職責

軟體測試就是使用人工或自動手段來執行或測試某個系統的過程其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別開發工作的根本是儘量實現軟體使用者的需求測試工作的根本是檢驗軟體系統是否滿足軟體使用者的需求軟體測試工程師簡單的說是軟體開發過程中的質量檢測者和保障者負責軟體質量的把關工作軟體測試工程師具體工作有1 使用各種測試技術和方法來測試和發現軟體中存在的軟體缺陷測試技術主要分為黑盒測試和白盒測試兩大類其中黑盒測試技術主要有等價類劃分法邊界值法因果圖法狀態圖法測試大綱法以及各類典型的軟體故障模型等白盒測試的主要技術有語句覆蓋分支覆蓋判定覆蓋基本路徑覆蓋等2 測試工作需要貫穿整個軟體開發生命週期完整的軟體測試工作包括單

軟體測試職業發展的各個階段

元測試整合測試確認測試和系統測試工作單元測試工作主要在編碼階段完成由開發人員和軟體測試工程師共同完成其主要依據是詳細測試整合測試的主要工作測試軟體模組之間的介面是否正確實現基本依據是軟體體系結構設計確認測試和系統測試是在軟體開發完成後驗證軟體的功能與需求的一致性驗證軟體在相應的硬體條件下的系統功能是否滿足使用者需求其主要依據是使用者需求3 測試人員將發現的缺陷編寫成正式的缺陷報告提交給開發人員進行缺陷的確認和修復缺陷報告編寫最主要的要求是保證缺陷的重現要求測試人員具有很好的文字表達能力和語言組織能力4 測試人員需要分析軟體質量在測試完成後測試人員需要根據測試結果來分析軟體質量包括缺陷率缺陷分佈缺陷修復趨勢等給出軟體各種質量特性包括有功能性可靠性易用性安全性時間與資源特性等的具體度量最後給出一個軟體是否可以釋出或提交使用者使用的結論5 測試過程中為了更好地組織與實施測試工作測試負責人需要制定測試計劃包括有測試資源測試進度測

首屆軟體測試工程師專場招聘會

試策略測試方法測試工具測試風險等6 測試人員為了更好更有效地進行測試保證測試工作質量需要在執行測試工作之前首先需要設計測試用例形成測試用例報告設計測試用例是保證測試質量的核心工作很多測試技術都可以用來指導設計用例為了提高測試用例的設計效率BTEST培訓課程專門開設了高效設計測試用例一門課來講授各種設計用例的技術與方法7 為了提高工作效率或提高測試水平測試工作需要引進自動化測試工具測試人員需要學會使用自動化測試工具編寫測試指令碼進行效能測試等8 測試負責人在測試工作中還需要根據實際情況不斷改進測試過程提高測試水平進行測試隊伍的建設等

4職業發展

簡介

職業方向

試組長這類測試人員通常是測試專案的負責人既要具備較高的測試技術能力還要具備一定的管理能力主要職責是制定測試計劃編寫測試計劃監控和管理整個測試過程測試組長可以向上發展為測試部經理質量經理也可以橫向發展為專案經理而且通常待遇相對較高些

測試分析師

主要職責是對系統的測試結果進行綜合的分析例如缺陷分析效能分析等測試分析師不但測試技術能力較強還要具備資料庫作業系統等多方面的技術知識這類職務的發展空間也不錯可以發展成系統設計師等

測試工程師

主要職責是編寫測試程式執行自動化測試任務這類職位的測試人員至少要達到初級程式設計師的能力因為經常和程式打交道發展空間也不錯例如可以發展為程式設計師

5職業優勢

入門門檻低

大中專學歷即可是不是計算機專業都可以如果是其他有業務背景的專業更有優勢例如會計金融辦公自動化酒店管理網站設計等對於有行業背景的人來說入門更快因為對於測試工作來說有時懂業務比懂技術還重要你會了技術去各行各業做測試都是要學習業務知識的這是很正常的事

初級技術要求低

目前大部分測試技術還屬於手工測試手工測試要求入門門檻很低你只要會寫用例會提缺陷就可以了測試人員需要簡單瞭解業務知識學習所開發系統的使用也就是會使用系統就可以了照著用例執行測試發現缺陷直接提交缺陷就可以了

很大的薪酬優勢

剛開始工作時月薪最低4000多但工作半年對工作流程瞭解後再去換工作五六千沒問題如果做銀行業務測試起薪六七千沒問題有一點銀行業務知識的再去換工作八千以上沒問題現在銀行測試人員缺口很大尤其是在大的外包公司做好的專案比如銀行專案等待遇和同等工作經歷的開發差不多

就業好

國外開發與測試的比例是1:2目前國內開發與測試的比例是6:1所以測試行業人才缺口很大就業前景很好基本屬於供不應求

工作比較輕鬆

比起軟體開發工程師來說軟體測試工程師的工作就相對輕鬆多了

發展大

測試分為三個階段手工測試自動化測試效能測試這是一個逐步提升的過程最初工作可能做手工測試也是目前絕大部分測試人員所從事的工作自動化測試是測試的發展趨勢而且現在自動化測試人員急缺且薪資很高現在最稀缺的是效能測試人員目前效能測試人員的待遇比同等經歷的開發可能還要高因為現在效能測試人員屬於稀缺狀態1手工測試現在比較普及大多數測試都還停留在手工測試階段2自動化測試是趨勢但目前用自動化測試的還比較少需要適當的程式碼編寫工作做一段手工測試後積累一定經驗可以慢慢步入自動化測試階段如果自動化測試比較熟練月薪1萬沒問題和開發工資差不多3效能測試效能測試人員現在稀缺人群一般能做效能測試且做得和可以的一般月薪都在1.6萬以上比開發要高

無性別要求

軟體測試工程師對性別沒有特定要求因此是一相對來說比較適合女性的IT職業

越老越吃香

軟體測試工作是對質量的把關其中包含技術及管理等方面的工作工作相對穩定對年齡沒有限制而且隨著經驗的積累工齡越長越吃香

6前景分析

軟體測試人員的主要職責是對軟體產品的整個開發過程進行監督和檢驗使之能夠達到滿足客戶的需求因此對於企業來講是十分重要的崗位在國外一般軟體測試人員與軟體開發人員的崗位設定比例是11像微軟在開發windows2000時候使用的軟體開發人員是1700名而專業的測試工程師有3200名測試開發人員比例高到1.71由此可見軟體測試崗位重要性的不一般

7職業素質

計算機專業技能

中國國內軟體測試人才現巨大缺口

算機領域的專業技能是測試工程師應該必備的一項素質是做好測試工作的前提條件儘管沒有任何IT背景的人也可以從事測試工作但是一名要想獲得更大發展空間或者持久競爭力的測試工程師則計算機專業技能是必不可少的計算機專業技能主要包含三個方面⒈ 測試專業技能測試專業知識很多本書內容主要以測試人員應該掌握的基礎專業技能為主測試專業技能涉及的範圍很廣既包括黑盒測試白盒測試測試用例設計等基礎測試技術也包括單元測試功能測試整合測試系統測試效能測試等測試方法還包括基礎的測試流程管理缺陷管理自動化測試技術等知識⒉ 軟體程式設計技能軟體程式設計技能實際應該是測試人員的必備技能之一在微軟很多測試人員都擁有多年的開發經驗因此測試人員要想得到較好的職業發展必須能夠編寫程式只有能夠編寫程式才可以勝任諸如單元測試整合測試效能測試等難度較大的測試工作此外對軟體測試人員的程式設計技能要求也有別於開發人員測試人員編寫的程式應著眼於執行正確同時兼顧高效率尤其體現在與效能測試相關的測試程式碼編寫上因此測試人員要具備一定的演算法設計能力依據資深測試工程師的經驗測試工程師至少應該掌握JavaC#C++之類的一門語言以及相應的開發工具⒊ 網路作業系統資料庫中介軟體等知識與開發人員相比測試人員掌握的知識具有博而不精的特點藝多不壓身是個非常形象的比喻由於測試中經常需要配置除錯各種測試環境而且在效能測試中還要對各種系統平臺進行分析與調優因此測試人員需要掌握更多網路作業系統資料庫等知識在網路方面測試人員應該掌握基本的網路協議以及網路工作原理尤其要掌握一些網路環境的配置這些都是測試工作中經常遇到的知識作業系統和中介軟體方面應該掌握基本的使用以及安裝配置等例如很多應用系統都是基於Unixlinux來執行的這就要求測試人員掌握基本的操作命令以及相關的工具軟體而WebLogicWebsphere等中介軟體的安裝配置很多時候也需要掌握一些資料庫知識則是更應該掌握技能現在的應用系統幾乎離不開資料庫因此不但要掌握基本的安裝配置還要掌握SQL測試人員至少應該掌握MysqlMSSqlserverOracle等常見資料庫的使用

行業知識

行業主要指測試人員所在企業涉及的行業領域例如很多IT企業從事石油電信銀行電子政務電子商務等行業領域的產品開發行業知識即業務知識是測試人員做好測試工作的又一個前提條件只有深入地瞭解了產品的業務流程才可以判斷出開發人員實現的產品功能是否正確很多時候軟體執行起來沒有異常但是功能不一定正確只有掌握了相關的行業知識才可以判斷出使用者的業務需求是否得到了實現行業知識與工作經驗有一定關係通過時間即可以完成積累

個人素養

作為一名優秀的測試工程師首先要對測試工作有興趣測試工作很多時候都是顯得有些枯燥的因此熱愛測試工作才更容易做好測試工作因此除了具有前面的專業技能和行業知識外測試人員應該具有一些基本的個人素養即下面的五心1.專心主要指測試人員在執行測試任務的時候要專心不可一心二用經驗表明高度集中精神不但能夠提高效率還能發現更多的軟體缺陷業績最棒的往往是團隊中做事精力最集中的那些成員2.細心主要指執行測試工作時候要細心認真執行測試不可以忽略一些細節某些缺陷如果不細心很難發現例如一些介面的樣式文字等3.耐心很多測試工作有時候顯得非常枯燥需要很大的耐心才可以做好如果比較浮躁就不會做到專心和細心這將讓很多軟體缺陷從你眼前逃過4.責任心責任心是做好工作必備的素質之一測試工程師更應該將其發揚光大如果測試中沒有盡到責任甚至敷衍了事這將會把測試工作交給使用者來完成很可能引起非常嚴重的後果5.自信心自信心是現在多數測試工程師都缺少的一項素質尤其在面對需要編寫測試程式碼等工作的時候往往認為自己做不到要想獲得更好的職業發展測試工程師們應該努力學習建立能解決一切測試問題的信心五心只是做好測試工作的基本要求測試人員應該具有的素質還很多例如測試人員不但要具有團隊合作精神而且應該學會寬容待人學會去理解開發人員同時要尊重開發人員的勞動成果開發出來的產品

要求

1質量意識在整個軟體測試的各個環節中質量意識一定要貫穿其中理解功能需求書寫測試案例執行測試計劃發現問題提交問題描述問題協助解決問題以及問題的跟蹤等在所有的環節中一定要注重質量並且從質量的角度來思考問題2細心並且系統軟體測試可能每天要重複同樣的操作其工作可能會枯燥無味並且發現的問題可能很微小或者很雜亂無章現象不一在這樣的情況下軟體測試人員一定要細心不放過任何微小的錯誤並且從很多雜亂的現象中找出一定的規律和復現性並且在測試中有很好的規劃性先測什麼而後測什麼不放過任何軟體的死角在測試中一定要系統的看待問題功能模組A的改動會否影響到其他模組的功能不能想當然一定要系統性的看待有時候一個記憶體地址的改變都有可能引起準給軟體的崩潰所以一定要系統性的去處理和看待軟體中修改的任意一處程式碼3軟體測試理論的掌握以及開發工具和平臺的應用黑盒測試白盒測試功能/系統/壓力/效能等等但不管測試任何東西基本理論是不變的需求文件設計文件根據文件製作測試用例劃分等價邊界測試路徑測試使用者體驗等等執行測試提交併跟蹤問題當然行業的不同其測試用的工具和方法也不太一樣手機App該如何測試無線通訊產品該如何測試C/B-S應用該如何測試這些產品的差異性很大其用到的工作也很不一樣但是其基本的測試理論還是一致的4站的高看的細不能光有理論對測試的很多文件可以提出很多有建設性的意見但當執行測試時卻不能發現問題這其中有幾個原因一是可能提出的意見並沒有寫進測試案例中二是有可能執行不仔細總是忽視問題的存在三可能就是沒有去實施所以一定要站在一定的高度去看待軟體測試但是又要很細緻的實施只有通過實踐才能發現問題改進問題到最後解決問題5團隊合作這個無需多講在這個產品日漸複雜的年代很難有一己之力就可以在各個方面做的最好要充分發揮團隊每個人員的工作能力和效率6懷疑有些書是這樣定義軟體測試的軟體測試不會去證明軟體是正確的而是去證明是錯誤的但是我們不可能發現所有的錯誤所以有很多時候要去懷疑要去假設

8軟體技能

Software Engineering Skills)軟體工程技能可以分成三大塊理解軟體工程的規則瞭解計算機程式設計和作業系統知識理解軟體工程規則有一種過時的眼光認為軟體工程只是由一些在工作期限之前瘋狂程式設計靠著非凡的協調能力和超人般的咖啡消耗整夜不睡不停地設計和測試程式的專家們組成的這種現象確實存在但你只有瞭解了軟體開發的真正過程才會是一個專業人員從哪開始呢先到圖書館去走一走你需要建立軟體測試知識的軟體工程基礎我的建議是閱讀Roger Pressman的軟體工程A Practitioner's Approach,fifth edition 職業入門第五版McGraw Hill,2000年版和 Glenford Myers的The Art of Software Testing(軟體測試藝術John Wiley & Sons,1979年版)Pressman的書是一個對軟體工程原理的全面介紹有很多關於軟體技巧專案管理要求分析和軟體設計等軟體工程方面的好書但Pressman對這些方面在一本書裡作了介紹Glenford Myers不到二百頁1979年發行卻是軟體測試方面的聖經Myers定義及詮釋的測試方法論已成為軟體測試的基本模組Myers還考查了軟體測試中的經濟缺陷的代價和心理學方面測試的目標就是發現失誤及不成功之處以及主導軟體開發和測試的基本原則對參考書進行基本研究是一個好的開端但這只是單方對話如果你能和上千個直接具有軟體工程和測試經驗的人以及想進入這一領域的人對話是不是再好不過了呢感謝那些網路電子部落你已經可以做到了ware-eng覆蓋了設計程式設計專案管理等軟體工程的各個方面ing涵蓋了軟體測試的自動化培訓技巧等方面等等別隻停留在這裡你是不是應當經常訪問這些網址呢Bug-Net(..%2ebugnet%2ecom是有關軟體缺陷的線上雜誌閱讀有關缺陷的文章是學習如何工作及失敗的極好方式你也應當查閱軟體測試及質量工程雜誌%2estqe%2ecomSTQE 是確定網路軟體測試資源很好的始發站計算機程式設計不能想像有的人喜歡測試產品卻從不閱讀檢查和理解組成產品的軟體一樣不要誤解我的意思你不必花所有的時間去讀原始碼但任何你做過的有關自己程式的設計編寫和糾錯都能大大地有助於測試別人編寫的程式你怎樣學習程式設計通過程式設計可以嚴肅地說開始學習寫計算機程式是最簡單的事記住我說的是開始學習軟體程式設計環境例如 Microsoft Windows Foundation Classes (MFC) or Sun's Java Foundation Classes (JFC,also called "Swing")不斷變得越來越複雜越來越難跟得上但我在努力超越自己你應當怎樣學習程式設計呢首先買Microsoft Visual Basic不要讓名字騙了你你能用這套元件建立相當複雜的程式而且它只要一百元左右下一步呢等等是visual程式設計警告的時候了現在你為你的PC買一個程式語言的時候你其實是買了一個整合開發系統或稱為IDE這些IDE通過對程式設計的簡化把開發過程流水線化這些IDE其實會幫你寫很多編碼這非常有利於儘早開發出一個產品卻不利於你學習程式設計如果你用Windows產生程式你別無選擇因為環境介入太多使你無法從頭程式設計如果你從Unix系統產生程式你能自己寫所有的編碼一旦你習慣了與參量控制結構物件輸入輸出及更重要的Visual Basic糾錯打交道的時候你就可以開始學習C語言了學習C能使你熟悉十六進位制系統通過指標分配和參考記憶體存取個體位碼及建立程式模組我總是認為在學Java之前最好先學會C因為C強迫你自己去完成許多工而Java會自動處理例如釋放未用的空間用C工作比Java難但你能學到程式設計更多的基本方面你其實能用Visual C++IDE從頭寫C程式但最好還是在Unix系統中學C作業系統知識你已經把它交給了在Redmond,Washington的那些人了在短短的幾年內Windows NT已經成為世界上大部分計算機的標準作業系統如果你要用NT工作你需要了解它的寄存地址它是一種用於儲存你的系統結構的各個方面的資料庫我發現Peter Norton寫的InsideWindows NT 4.0(SAMS,1998是一本很好的介紹書但是如果你的應用或系統要求高的保密度產出可靠性及靈活性Unix依然是最好的選擇如果你想成為一個成功的軟體工程師你必須能在Unix的世界裡工作如果你想從頭學習程式設計也要在Unix下進行你的選擇是什麼你可以到當地的學校或大學學習課程或者在家建立一個Unix系統別昏過去了你所需要的只是一臺PC和一份能讓你從網路免費下載的Linux拷貝你大約花二十九元能買一份在一個CD-ROM中帶了所有檔案的拷貝Linux不是Unix的玩具版它是真實的它已經發行了七百萬份拷貝一些主要的PC生產商甚至先替你裝載了它好了你已經到了Unix或Linux系統了你應當學些什麼檔案和目錄結構標準輸入輸出和錯誤流背景background也稱為"daemon")處理從C呼叫系統功能好我可以接下去了一個好的開端是讀Arnold Robbins的Unix in a Nutshell (O'Reilly & Associates,1999或者是Ellen Siever的Linux in a Nutshell (O'Reilly & Associates,1999

9交流技能

Communications Skills)能寫出計算機程式卻寫不出一個完整句子的軟體工程師現在還有但不幸的是要成為一個成功的軟體測試工程師你需要清楚的交流你怎麼去學習寫通過寫如果文字水平太粗糙上一門創造性寫作的課每天寫工程流水記錄或發email關鍵是學習或重新學習怎樣用清晰可懂的語言表達你的思想一個好的寫作參謀是William Strunk Jr.和E.B. White寫的The Elements of Style(Allyn & Bacon,2000它一點也不象國中教科書測試工程師必須把產品測試的技術寫成檔案測試計劃提供指導並把測試設計轉化為設定實現測試和評估結果的步驟指導具有一般軟體和產品特性不同層次經驗的工程師都能使用這樣一個詳細的測試計劃如此測試設計者或測試方案作者之外的工程師也能能進行測試測試計劃也幫著佐證測試策略的正確性專案中的每個人都應當參與審查即市場開發支援技術寫作及測試人計劃的審查是必不可少的因為儘管測試工程師盡最大努力來達成一個對產品的全面定義這一測試設計者所基於的定義不一定是完整或準確的此外就象開發者很難測試他們自己的編碼一樣測試工程師也很難明確評估他們自己的測試計劃每一個計劃審查者都可能根據其經驗及專長建議修改有時候審查者還能提供測試工程師在組織產品定義時不具備的資訊例如一個市場人員可能瞭解到了新的客戶要求一個軟體支援專家可能從有關的產品領域瞭解到了一個新的缺陷報告測試計劃強調測試計劃和執行的原則在測試計劃中描述進行測試所需的測試設計和步驟是另一層關於測試設計和計劃的原則在測試設計和計劃中的錯誤與欠缺在設計轉化成測試計劃中特定的結構和測試步驟後就經常是再已無法彌補測試計劃可作為其它專案例如為不同的產品準備測試時的參考資料當被測試軟體找到缺陷解決並證實後測試計劃所述的測試可以用於證實缺陷的解決方案同時一個主要的測試設計資訊來源特別對於舊產品的新版本而言是相關產品或前版本的測試計劃在建立新版本時舊版本的軟體測試計劃都應當被重新審查與功能與設計說明不同測試計劃將從測試的角度來描述產品的功能操作從這方面說測試計劃構成了公司公共檔案的一部分隨著時間的流逝人們會離開公司帶走他們的知識以前產品的測試計劃就能幫助你定義新產品的測試軟體測試工程師還要寫測試結果報告測試結果必須寫成文件這樣就能確定被測軟體的狀態提供關於必須要解決的缺陷的記錄產品測試中發現的所有缺陷的記錄是測試部門最顯眼儲存時間最長的文件測試計劃和測試報告在專案的最後常被遺忘但現存缺陷的清單或資料庫代表專案未完成的議程這一議程沒完成是因為一些缺陷必須在對原來產品的一個patch或maintenance release的時候糾正或者它們在這個產品作為後續產品的基礎之前被修復在與軟體產品打交道的過程中測試工程師比其他部門的人蔘與專案的更多方面測試部門應當記錄專案過程中重大事件例如設計決定的資訊這個資訊應能幫助測試部門和其他部門避免在後續專案中犯同樣的錯誤錯誤是不可避免在一個專案中可能出問題從這些經驗中學習就可能避免問題避免今後的同樣錯誤從錯誤中學習的第一步就是記住它們記憶的第一步就是把它們寫下來

10組織技能

Organizational Skills)每當執行一個軟體專案的測試計劃幾乎不可能不遇到至少會阻礙一些測試而必須解決的缺陷一個測試工程師應當能靈活地停止測試產品的一部分而開始測試其他部分有時被測軟體需要做根本變動引起大量的測試結果失效測試也許得重做不止一次在問題被查詢和改變在進行的過程中測試工程師必須有條理保持對執行測試的軟體的前後關係的明確感受例如目前被測試的程式特定版本的不同部分網路時代要求的動態開發和測試模式使組織性的工作方式對測試工程師越來越重要在整個開發過程中被測試軟體可能會不斷地改進測試工程師在計劃和實施測試的時候必須考慮這些變化因素必須控制測試環境來保證測試結果的有效性記住計劃是一個動詞作為一個軟體工程師你永遠不會有你想要的所有時間和資源你總是必須通過理解技術和產品開發組織方式從你和其他人的錯誤中學習以及在設計必須改變和出問題的時候的迅速調整使你的測試效果和效率最大化如何能做到這點呢基本代數量化任務目標和結果來減少方程中的變數數把產品的功能定義成要求在測試計劃和測試中量化測試及其預期的和實際的結果把資訊提供給專案組你東點一下西點一下是不能完成整個測試的未來軟體開發的組織模式要求有靈活的設計和不斷進化的開發週期對產品測試必須隨著產品的進化而進化

11實踐經驗

Hands-On Experience)這是個典型的兩難問題你需要軟體測試經驗來找工作你沒工作你就沒經驗你該怎麼辦Be careful! 這需要勇氣和你的PC的小心備份作為自願者參與beta測試怎樣發現需要beta測試員的公司呢首先給你在軟體公司工作的親友打電話偶爾有人會需要beta的測試人員如果這不行到你最喜歡的網路搜尋引擎上去找beta test你會發現很多小和不那麼小的公司亟需beta測試員為什麼這得感謝網際網路競爭的加劇使公司必須做出產品模型貼到他們的網址上作為beta版推出這些公司希望人們不僅測試他們的產品而且對這些免費品感興趣進而購買他們的產品你也能參與開放資源的專案例如Mozilla開放資源的網路瀏覽器是網路瀏覽器的基礎Mozilla缺陷跟蹤系統允許網上任何感興趣的人直接在 ..2emozilla%2eorg 的開放資源專案中直接報告和跟蹤缺陷一句忠告如果你要把很多beta軟體下載到你家裡的PC裡投資你的備份裝置和防病毒元件

12態度

Attitude我希望你幸福的夢想被你打破了我打賭這句話能勾起一些人童年記憶的創傷我不是心理學家但我還敢說這種說法是因為我們渴望看到成功在軟體測試中你不僅要證實軟體在做它該做的還要證實它不會做它不該做的為了做到這一點你得找出軟體的失敗之處進行軟體測試需要很多人的眼光要進行一百八十度的轉變因為測試的目標是要讓被測軟體失敗由此產生出等同於其他東西工作正確時的成功在軟體測試中一個成功的測試揭示一個缺陷進行軟體測試也是因為網際網路的來臨要求人們用一種大不同以往的眼光來看待動態的開發和測試模型

13必備特性

軟體測試工程師除了技術還要求具有否定性的創造力探測技巧總體理解產品的能力用客戶的眼光進行評估懷疑的而不是敵意的態度能經受得住壞訊息而保持目標擁抱新技術的熱望等特徵

否定性的創造力

一個軟體工程師不能怕引起一個產品的癱瘓或燒燬在軟體測試中邊界意味著被超越而不是被遵從如果一個程式對某個值的極限為10例如可以在一時間被開啟的最大檔案數測試工程師的第一想法應當是如果我把那個值取11或0或10.1甚至不設這個值會如何在我的早期的工作生涯中有一次我測試一個開發和QA工程師遺漏下來的PC資料庫有問題的資料庫是2.01版這本身就說明產品有問題2.0版沒解決1.0版的所有缺陷嗎或者2.0版又加入了新的缺陷很遺憾因為時間緊我沒有調查這些只是證實了最後的缺陷修復後就告捷了這是很大的錯誤我應當重測開發人員所謂沒有變化的所有產品功能2.0版本中的缺陷確實復修了但在修復的過程中有人破壞了請求事實就是如此在資料庫裡不能搜尋資料了第一個收到這項產品的beta客戶發現了這個缺陷我宣佈以前的測試無效要求對產品進行全面測試找到幾個缺陷之後我發現這個資料庫讀取防寫檔案或防寫了的磁碟的時候就會引起癱瘓開發人員很吃驚我會試著防寫一個數據庫他們的反應就是沒人會這麼幹的產品的市場經理很快用他們的方式承認了錯誤

探測技巧

在一個理想的世界中軟體測試應當在一個經常更新的寫得很清楚的功能與設計說明檔案一般被稱為specifications中被完整而精確地描述不幸的是這一完善被開發程式每一方面檔案的任務包括記錄在開發中對程式不可避免的改變要花很多的時間和精力以至於人們無法完成程式設計而且花費也太大正式與非正式的資訊源正式系統要求檔案功能說明書設計說明書非正式系統使用者檔案與其他開發人員的交流與軟體支援人員的交流有關產品的檔案有關產品的缺陷從工作於相關或早期版本產品獲得的區域性知識因為我們不是在理想世界裡程式設計測試工程師應當能夠自己找出工作的方式典型的是總會有一些設計和功能說明書讓測試工程師用於開始他的研究這些檔案能看成為描述被測試軟體的正式系統測試工程師應當能用更廣大的非正式系統的資訊來擴充套件正式系統的資訊同時在專案週期的任何一個點任何檔案都可能是正確或不正確的所以測試工程師必須根據對軟體工作模式的觀察與開發人員和其他專案人員的交談或對有關或看上去不那麼相關檔案的稽核來確定檔案的精確性

總體理解產品

在一個程式專案是軟體開發工程師主要把他們的精力和注意力集於自己的專案部分結果當這些專案部分組合在一起進行測試的時候就會碰到相容性的問題到產品寄給一個客戶之前唯一能見到整個產品的就是測試工程師因此測試工程師必須能夠對整個產品的操作與使用保持一種系統的眼光測試工程師對產品的任何一部分的操作可能不是最好的專家但他必須是產品整體操作的專家例如如果被測的產品是一個類似於Microsoft Office的由文書處理擴充套件頁和其他有關程式組成的辦公室自動元件測試工程師必須瞭解每個程式的操作各個程式之間的相互作用和客戶其他的軟體硬體和軟體環境

評價

測試工程師必須是客戶的擁護者被測程式有可能執行可靠滿足所有的設計要求但在客戶的軟體環境中未必能夠用產品被送到客戶之前的測試之一就是要證實產品達到了客戶的要求與期望在這項測試中測試工程師必須模擬使用者的軟體環境把自己放到他們的位置上關於軟體功能正確而不能滿足客戶需要的一個悲劇性的例子就是美國航空公司965航班1995年在哥倫比亞卡利市的一次失事在飛行著陸時空中訊號控制系統指示機組人員朝一個叫Rozo的航空訊號燈飛這個訊號燈在航空圖中標為R機組人員把R輸入到飛行管理計算機中看到了明顯是由近到遠列出的六個航空訊號燈機組人員選了第一個訊號燈以為這就是Rozo但那不是自動駕駛儀把飛機向左轉了九十度撞到了山上什麼地方出錯了呢當航空表裡把Rozo列為R的時候飛行管理計算機要求機組人員輸入訊號燈的全名調出它的方位同時計算機只顯示了訊號燈的編碼字母和方位計算機功能正確但不滿足使用者的需求

變化

專案剛開始時的要求與最終專案完成時的要求一致的情況是極少見的有時技術變化了產品必須改變以適應於技術有時競爭對手的產品具有你的產品所沒有的功能很多情況下客戶的或潛在客戶的要求需要變化這些因素合在一起的一個例子就是目前Microsoft Internet Explorer和Netscape的競爭隨著計算機首次使用者的迅速增加今天的測試工程師比以往更需要把自己置於客戶的位置上這些新的非技術使用者不願意接受缺陷對缺陷的解釋或理性思考或通過升級修正缺陷他們只希望他們所買產品的軟體和硬體都是能工作的

態度

測試工程師不能按表面值接受事物必須執著地對一切提出疑問直到被證實工程師必須用一種與專案的其他的人合作精神來平衡這種懷疑性與執著性測試部門與其有關部門的關係可能會變得緊張特別是在大量缺陷被發現後或者在每個找出的缺陷會潛在地延遲產品的發貨時間而延遲了專案時測試工程師應當記住要攻擊程式的整體性而不是程式設計師

能力

一個測試工程師必須忠實地彙報產品中的缺陷這一資訊應當被專案組歡迎因為每一個測試工程師遇到的問題除非加入新的問題都意味著減少客戶會面臨的問題但不幸的是很多人不想聽到有問特別是在程式專案的後期測試工程師應當能處理因為工作做得太好而引起責備的情況這對有些人來說是很難做到的會嚴重地影響鬥志與自尊看起來常常是測試工程師阻撓了向客戶交貨客觀的專案經理才能感覺到測試工程師是在對專案提供有價值的服務我清楚地記得一個專案經理舉起他的手求我他要的是解決方案不是問題他不明白解決方案的實現有時要求一個問題的解決有時專案經理在專案計劃不方便的時候對於因為發現缺陷而打折是有壓力的在這些情況下測試工程師應當能基於他對產品的經驗和知識進行辯護但他不應表現為象是他個人受到了威脅如何避免這些情形呢就測試的內容時間及如何更新測試結果和缺陷資訊設定其他專案組成員的期望我曾經為一個希望延遲產品傳送日期的QA經理工作過他的目的不是為了產品成功而是政治權力的操縱他確信自己能被提升把一些為他工作的工程師指定為manager開始自稱為director還要大樓管理人員把他的辦公隔間加寬一英尺這沒有實現但至少他的座位有了更多伸腳的餘地

熱望

對多數人來說年齡越大越難學習在商業世界裡人員越往公司的食物鏈高處走越遠離他們所建立的技術基礎這一部分是因為他們需要把精力集中於其他的經營和指導其下屬的任務中有時也是因為他們不幸地認為自己已不需要進行實踐的技術工作了網際網路增加了技術變化的速度不繼續學習或跟著發展就無法做出商務與技術的決斷從前的一個經理給我樹立了如何對待新技術的榜樣我跟他工作的時候他年近六十但他象新手一樣地熱心於學習新技術他大量地獲取資訊不斷補充在網路伺服器防火牆和Perl或Expect等新語言的知識他還重視做QA或測試組織的工作他的最初背景是軟體開發和開發管理但他並不認為做QA經理是在降低他的聲望他明白一個獨立的測試或QA組所進行的完整測試能使開發經理的工作變得多簡化正象我所說的當你生活於網路時代只要原地不動就很容易落伍了相對於其他軟體工程人員軟體測試工程師的知識面應該非常寬廣但最重要的品質應該是能夠在第一時間內接受新技術由於公司之間的競爭日益集中在質量方面所以公司對軟體測試人員的需求量也越來越大這一點在北美尤為明顯這決定了軟體測試行業的前景可喜同時也為願意不斷進取學習新技術的華人移民提供了廣闊的就業空間軟體測試工程師的就業機會一直都是非常多的最關鍵要善於抓住機遇並肯付出努力踏踏實實的學起來做起來

14開設課程

搭建 Windows測試環境主要講解搭建 Windows 測試環境所要具備的軟硬體及網路知識包括計算機中各種硬體和介面軟體的分類分發和授權等方式作業系統的初步知識登錄檔病毒安全等知識 TCP/IP 協議和 DNS 活動目錄等知識從而讓學員可以在實際工作環境當中搭建一個基於 Windows活動目錄的區域網環境使用 C 語言開發簡單應用設定本課程的目的主要是使學員掌握軟體開發的技術掌握程式設計的方法思想了解軟體開發過程當中常犯的錯誤為後面的測試課程以及編寫測試指令碼打下語言基礎課程中主要包括 C 語言的語法程式基本結構函式指標陣列資料結構演算法等程式設計所涉及到的知識課程注重實用性重在培養學員對程式碼分析的能力掌握編碼規範掌握除錯知識和分析程式錯誤的能力同時學習記憶體檢查工具和軟體配置管理等知識該課程中貫穿了一個開發軟體測試工程師管理系統的專案增加學員開發專案的經驗測試計劃與軟體缺陷本課程是軟體測試重點課程本課程主要介紹軟體測試的基本概念和基礎知識如何編寫測試計劃識別軟體缺陷編寫缺陷報告等通過學習學員可以掌握軟體測試的流程軟體測試的策略和分類掌握缺陷的分類和優先順序等從而對測試有一個整體的認識本課程中介紹了 Bugzilla 缺陷跟蹤管理系統測試工具總體來說本課程將使學員掌握大部分軟體測試相關的基礎知識高效設計測試用例本課程是軟體測試重點課程本課程主要通過引入的大量案例講解如何編寫測試用例講解設計測試用例的技術包括等價類劃分邊界值分析因果圖方法狀態圖方法測試大綱等的方法以及正交排列表測試矩陣等測試特性包括功能效能相容性易用性等測試物件包括軟體功能 GUI 介面文件測試安裝和解除安裝測試等通過本課程主要是培養學員設計測試用例的視角在最短的時間內針對功能寫出恰當的測試用例本課程和測試計劃與軟體缺陷課程中貫穿了對軟體測試工程師管理系統編寫測試計劃測試設計和開發實施測試及測試評估的專案增加學員軟體測試相關經驗白盒測試本課程主要講解白盒測試技術主要內容包括邏輯驅動覆蓋和基本路徑覆蓋兩個方面在邏輯驅動覆蓋中主要介紹了語句覆蓋判定覆蓋條件覆蓋判定 / 條件覆蓋條件組合覆蓋路徑覆蓋和迴圈語句覆蓋在基本路徑覆蓋中介紹了繪製控制流圖及程式複雜性相關概念最後重點介紹了單元測試技術通過學習學員可以瞭解白盒測試的理論組織方式已經如何評估一個白盒測試的效果本課程中介紹了Logiscope和 C++ Test 兩個白盒測試工具Linux 與網路應用環境本課程主要講解搭建 Linux測試環境所應具備的知識通過學習 Linux 的安裝和配置 Linux 常用命令 Linux 下軟體安裝解除安裝和使用常見的 Linux 的服務Apache Mysql Squid Iptables 等 Linux軟體開發環境等讓學員能夠使用 Linux 實現一個提供常見服務的網路環境本課程中在前期通過在 Linux 當中搭建 Bugzilla 缺陷跟蹤管理系統來講解 Linux 的使用和配置WEB 技術與資料庫本課程通過對資料庫 HTML XML HTTP J2EE 等基礎知識的講解讓學員掌握這些技術以便於建立分散式軟體的測試環境資料庫是以 SQL Server 作為重點講解同時也介紹了 Oracle 和 MySQL 資料庫高效使用自動測試工具本課程主要介紹了國際測試工具佔有率最高的 MI 的三大測試工具功能測試工具 QuickTest Professional 效能測試工具 LoadRunner 測試管理工具TestDirector學員掌握這些流行的測試工具從而進一步提高測試的效率軟體測試實訓本課程是最後一門課程該課程主要是通過運用前面所學習的課程指導學員完成一個專案的測試過程從而鞏固所學知識在該課程中將完成分組分工編寫測試計劃寫工作日誌和開例會設計測試用例執行測試填寫和處理缺陷報告的過程使用的專案通過三個版本來進行迴歸測試通過分工與合作來完成測試工作通過講師和學員分別模擬測試組成員角色鍛鍊學員實踐的能力該專案是一個百萬行程式碼級別的類 Office 系統職業導向訓練職業導向訓練簡稱COT課程即Career oriented Training是對學員進行職業引導包括就業指導和職前引導通過就業指導以及就業專員就業明星與學員的座談會等日常輔助訓練明確就業方向進一步瞭解就業形式詳細介紹如何寫簡歷通過強化面試訓練以及模擬面試等方式提升學員應對面試的能力從而加強學員就業競爭力華為軟體測試工程師學習大綱一軟體測試的原理v 軟體工程軟體的含義軟體開發過程的特性 軟體生命週期模型軟體管理過程軟體質量和質量保證軟體質量就是客戶的滿意度 質量的概念軟體質量的內涵質量管理體系SQASCMSEPGv軟體測試概念軟體危機軟體測試產生的背景軟體缺陷是什麼軟體測試職業發展軟體測試人員應具備的素質和技能軟體測試基本概念軟體測試的目的軟體測試的重要性軟體測試的原則軟體開發與軟體測試v軟體測試依據和規範軟體質量標準軟體測試規範介面規範編碼規範CMM和ISO9001思想結構體系CMM VS ISO二軟體測試的技術v軟體測試技術概述軟體測試的基該方法黑盒測試白盒測試靜態測試動態測試測試策略v軟體測試流程軟體測試流程通用測試文件模板 軟體測試的分類軟體包的質量特性v 單元測試和整合測試什麼是單元測試單元測試的目標和任務單元測試方法除錯與評估什麼是整合測試整合測試目標和任務整合測試的模式與方法v 系統測試和驗收測試什麼是系統測試系統測試的目標和任務系統測試方法系統測試中工具的應用什麼是驗收測試驗收測試的目標驗收測試的過程和主要內容產品規格說明書的驗證v 特定型別的軟體測試面向物件軟體的測試面向物件軟體的特點面向物件測試的層次與資料流面向物件的單元測試面向物件的整合測試 基於應用伺服器的測試應用伺服器的分類和特徵基於Web伺服器應用的測試基於資料庫應用伺服器的測試基於J2EE平臺的測試軟體本地化測試什麼是軟體本地化軟體本地化的翻譯問題軟體本地化測試的技術問題本地化測試的重點三軟體測試的實踐v測試環境的部署測試環境的重要性測試環境的各要素建立測試實驗室測試環境的維護和管理v軟體測試用例的設計測試用例來源測試需求提取測試用例設計白盒測試用例設計方法邏輯覆蓋法/基本路徑測試法 黑盒測試用例設計方法等價類劃分法/邊界值分析法/因果圖法/錯誤推測法 /功能圖法測試用例的組織和跟蹤使用實際專案實踐v 報告所發現的軟體缺陷軟體缺陷的描述 軟體缺陷相關的資訊軟體缺陷的處理和跟蹤v軟體測試和質量分析報告軟體產品的質量度量 評估系統測試的覆蓋程度 軟體缺陷分析方法 基於缺陷分析的產品質量評估 軟體質量的可靠性評估軟體可靠性模型可靠性評估過程v軟體測試自動化測試自動化的內涵測試工具的分類和選擇測試工具的主流產品介紹IBM-Rational產品的整體解決方案Mercury Interactive產品的整體解決方案測試管理工具TD實操演示及指導功能測試工具Robot實操演示及指導指令碼語言perl實操演示及指導效能測試工具LRv 網路基礎知識協議概念常見的網路協議及層次TCP/IP協議Arp協議等報文分析常見的網元裝置及工作原理常用的網路操作相關命令客戶機伺服器模型抓包工具使用v 資料庫簡介及SQL語句資料庫系統概念資料管理的發展階段資料庫系統的特點SQL概述SQL資料定義功能SQL資料查詢功能SQL資料修改功能嵌入式SQLv Linux作業系統簡介及常用命令Linux系統介紹Linux系統歷史及發展Linux系統特點Linux系統安裝與配置Linux系統命令的使用方式檔案及目錄操作命令檔案壓縮命令聯機幫助命令程序管理的命令四軟體測試管理v 組織和管理測試團隊基於ISO的測試管理體系構成測試團隊的地位和責任測試團隊的構成 測試團隊的管理和發展v軟體測試專案管理軟體測試專案管理的概述軟體測試專案的組織 軟體測試專案的過程管理 軟體測試專案的資源管理 測試專案的進度管理 測試專案的風險管理 測試專案的質量和配置管理軟體測試文件的管理v 理解CMMKPA簡介 CMM的五個等級及關鍵過程域CMM例項簡介 CMM的發展CMMI2級詳細講解五軟體測試人員面臨的機會和挑戰v軟體測試職位在IT行業的現狀v軟體測試職位到底是幹什麼v軟體測試行業的背景v軟體測試人員需要具備的基本素質v軟體測試工程師需掌握的技術技能大綱v軟體測試人員後期的發展機會和挑戰附錄基礎技能版本內容為華為公司指定培訓內容一基礎技能方面Unix/Linux作業系統⒈熟悉UNⅨ環境⒉掌握UNⅨ常用命令⒊瞭解並掌握Vi的一些常用命令⒋瞭解基本的shellInformix⒈熟悉並掌握informix常用命令⒉掌握SQL相關的一些知識Oracle⒈掌握Oracle的基本操作⒉掌握在unix/Linux系統下安裝Oracle資料庫二網路基礎知識⒈熟悉TCP/IPHTTPUDP協議⒉掌握常用的網路命令⒊抓包工具的熟悉與學習三測試理論⒈軟體及其開發過程⒉軟體測試的基本概念與方法⒊質量保證與策略⒋測試依據與規範⒌單元測試⒍整合測試與系統測試⒎驗收測試⒏基於應用伺服器的測試⒐測試計劃的制定用例的設計與執行缺陷的跟蹤四模擬專案練習⒈理解需求設計測試用例測試用例評審⒉測試執行⒊提單規範有關模擬專案的需求用例模板測試版本

熱門標籤