上一篇 /下一篇 2010-03-22 09:27:27/ 個(gè)人分類(lèi):職業(yè)規劃
軟件工業(yè)是自動(dòng)化工業(yè)的一部分。而且是最活躍發(fā)展最迅速的一個(gè)方面。到底有多迅速?任何人的想像力都不夠!正如我們不會(huì )把我們的事務(wù)托付給不可靠的經(jīng)紀,任何有分量的公司都不會(huì )采用沒(méi)有質(zhì)量保障的軟件。軟件測試人員,我是說(shuō)有水平有經(jīng)驗的軟件測試人員永遠是供不應求的。軟件測試經(jīng)理不得不花很多的時(shí)間去面試有潛力的應聘者。一些應聘者在軟件方面或者軟件測試方面毫無(wú)實(shí)際經(jīng)驗,明知道軟件測試工作是一個(gè)高回報的和最合適的軟件工業(yè)入門(mén),就是無(wú)法抓住一個(gè)又一個(gè)機會(huì )。這些人真正需要的是一個(gè)指南能告訴他們如何成為一個(gè)軟件測試工程師。
首先,進(jìn)入軟件測試需要哪些技能?
1、軟件工程技能你必須了解軟件軟件工程(設計、開(kāi)發(fā)和簡(jiǎn)單測試),應用,系統,自動(dòng)測試編程,及操作系統,數據庫,網(wǎng)絡(luò )系統和協(xié)議的設計和使用。
2、交流技巧如果想確定軟件缺陷,你應當能夠指出什么時(shí)候的缺陷算是缺陷。
3、組織技能如果你在別人都頭腦發(fā)昏的時(shí)候保持清醒,你就可能是一個(gè)好的軟件測試工程師。在網(wǎng)絡(luò )時(shí)代軟件測試是一項有壓力的復雜性工作,但如果你能從這些紛繁中找到一種途徑,它就是一項回報豐厚的事業(yè)。
4、實(shí)踐技能當一個(gè)工作需要經(jīng)驗,而你又需要一個(gè)工作去豐富你的經(jīng)驗時(shí)該怎么辦?這并不完全是一個(gè)兩難的問(wèn)題,你可能采用幾種方式去獲得實(shí)際經(jīng)驗。
5、態(tài)度除了技術(shù)水平,你需要理解和采取適當的態(tài)度去做軟件測試。
1、軟件工程技能(SoftwareEngineering Skills)
軟件工程技能可以分成三大塊:理解軟件工程的規則,了解計算機編程和操作系統知識。
理解軟件工程“規則”。有一種過(guò)時(shí)的眼光認為軟件工程只是由一些在工作期限之前瘋狂編程、靠著(zhù)非凡的協(xié)調能力和超人般的咖啡消耗整夜不睡,不停地設計和測試程序的“專(zhuān)家”們組成的。這種現象確實(shí)存在,但你只有了解了軟件開(kāi)發(fā)的真正過(guò)程,才會(huì )是一個(gè)專(zhuān)業(yè)人員。
從哪開(kāi)始呢?先到圖書(shū)館去走一走。你需要建立軟件測試知識的軟件工程基礎。我的建議是閱讀Roger Pressman的軟件工程:A Practitioner'sApproach, fifth edition (職業(yè)入門(mén),第五版,McGraw Hill, 2000年版)和 GlenfordMyers的The Art of Software Testing(軟件測試藝術(shù),John Wiley & Sons,1979年版)。Pressman的書(shū)是一個(gè)對軟件工程原理的全面介紹。有很多關(guān)于軟件技巧、項目管理、要求分析和軟件設計等軟件工程方面的好書(shū),但Pressman對這些方面在一本書(shū)里作了介紹。GlenfordMyers不到二百頁(yè),1979年發(fā)行,卻是軟件測試方面的圣經(jīng)。Myers定義及詮釋的測試方法論已成為軟件測試的基本模塊。
Myers還考查了軟件測試中的經(jīng)濟(缺陷的代價(jià))和心理學(xué)方面(測試的目標就是發(fā)現失誤及不成功之處),以及主導軟件開(kāi)發(fā)和測試的基本原則。
對參考書(shū)進(jìn)行基本研究是一個(gè)好的開(kāi)端,但這只是單方對話(huà)。如果你能和上千個(gè)直接具有軟件工程和測試經(jīng)驗的人以及想進(jìn)入這一領(lǐng)域的人對話(huà)是不是再好不過(guò)了呢?感謝那些網(wǎng)絡(luò )電子部落,你已經(jīng)可以做到了。Comp.software-eng覆蓋了設計、編程、項目管理等軟件工程的各個(gè)方面。Comp.software.testing涵蓋了軟件測試的自動(dòng)化、培訓、技巧等方面。
等等,別只停留在這里!你是不是應當經(jīng)常訪(fǎng)問(wèn)這些網(wǎng)址呢?Bug-Net(http://65.54.244.250/cgi-bin/linkrd...%2ebugnet%2ecom)是有關(guān)軟件缺陷的在線(xiàn)雜志。閱讀有關(guān)缺陷的文章是學(xué)習如何工作及失敗的極好方式。你也應當查閱軟件測試及質(zhì)量工程雜志(http://65.54.244.250/cgi-bin/linkrd...ww%2estqe%2ecom)。STQE是確定網(wǎng)絡(luò )軟件測試資源很好的始發(fā)站。
計算機編程。不能想像有的人喜歡測試產(chǎn)品卻從不閱讀、檢查和理解組成產(chǎn)品的軟件一樣。
不要誤解我的意思。你不必花所有的時(shí)間去讀源代碼,但任何你做過(guò)的有關(guān)自己程序的設計、編寫(xiě)和糾錯都能大大地有助于測試別人編寫(xiě)的程序。
你怎樣學(xué)習編程?通過(guò)編程??梢試烂C地說(shuō),開(kāi)始學(xué)習寫(xiě)計算機程序是最簡(jiǎn)單的事。記住我說(shuō)的是“開(kāi)始學(xué)習”。軟件編程環(huán)境,例如Microsoft WindowsFoundation Classes (MFC) or Sun's Java Foundation Classes (JFC, alsocalled "Swing")不斷變得越來(lái)越復雜,越來(lái)越難跟得上。
但我在努力超越自己。你應當怎樣學(xué)習編程呢?
首先,買(mǎi)Microsoft VisualBasic。不要讓名字騙了你。你能用這套組件建立相當復雜的程序。而且它只要一百元左右。下一步呢?等等,是visual編程警告的時(shí)候了!
現在你為你的PC買(mǎi)一個(gè)程序語(yǔ)言的時(shí)候,你其實(shí)是買(mǎi)了一個(gè)集成開(kāi)發(fā)系統或稱(chēng)為IDE。這些IDE通過(guò)對編程的簡(jiǎn)化把開(kāi)發(fā)過(guò)程流水線(xiàn)化。這些IDE其實(shí)會(huì )幫你寫(xiě)很多編碼。這非常有利于盡早開(kāi)發(fā)出一個(gè)產(chǎn)品,卻不利于你學(xué)習編程。如果你用Windows產(chǎn)生程序,你別無(wú)選擇,因為環(huán)境介入太多使你無(wú)法從頭編程。如果你從Unix系統產(chǎn)生程序,你能自己寫(xiě)所有的編碼。
一旦你習慣了與參量、控制結構、對象、輸入輸出及更重要的VisualBasic糾錯打交道的時(shí)候,你就可以開(kāi)始學(xué)習C語(yǔ)言了。學(xué)習C能使你熟悉十六進(jìn)制系統,通過(guò)指針?lè )峙浜蛥⒖純却?,存取個(gè)體位碼及建立程序模塊。
我總是認為在學(xué)Java之前最好先學(xué)會(huì )C,因為C強迫你自己去完成許多任務(wù)而Java會(huì )自動(dòng)處理(例如,釋放未用的空間)。用C工作比Java難,但你能學(xué)到編程更多的基本方面。你其實(shí)能用Visual C++IDE從頭寫(xiě)C程序,但最好還是在Unix系統中學(xué)C。
操作系統知識。你已經(jīng)把它交給了在Redmond, Washington的那些人了。在短短的幾年內,WindowsNT已經(jīng)成為世界上大部分計算機的標準操作系統。如果你要用NT工作,你需要了解它的寄存地址。(它是一種用于存儲你的系統結構的各個(gè)方面的數據庫。)我發(fā)現Peter Norton寫(xiě)的Inside Windows NT 4.0 (SAMS,1998)是一本很好的介紹書(shū)。但是,如果你的應用或系統要求高的保密度、產(chǎn)出、可靠性及靈活性,Unix依然是最好的選擇。
如果你想成為一個(gè)成功的軟件工程師,你必須能在Unix的世界里工作,如果你想從頭學(xué)習編程,也要在Unix下進(jìn)行。
你的選擇是什么?你可以到當地的學(xué)?;虼髮W(xué)學(xué)習課程,或者在家建立一個(gè)Unix系統。別昏過(guò)去了,你所需要的只是一臺PC和一份能讓你從網(wǎng)絡(luò )免費下載的Linux拷貝。(你大約花二十九元能買(mǎi)一份在一個(gè)CD-ROM中帶了所有文件的拷貝。)Linux不是Unix的“玩具”版,它是真實(shí)的。它已經(jīng)發(fā)行了七百萬(wàn)份拷貝,一些主要的PC生產(chǎn)商甚至先替你裝載了它。
好了,你已經(jīng)到了Unix或Linux系統了。你應當學(xué)些什么?文件和目錄結構,標準輸入輸出和錯誤流,背景(background,也稱(chēng)為"daemon")處理,從C調用系統功能,好,我可以接下去了。一個(gè)好的開(kāi)端是讀Arnold Robbins的Unix in a Nutshell (O'Reilly &Associates, 1999)或者是Ellen Siever的Linux in a Nutshell (O'Reilly &Associates,1999)。
2、交流技能(CommunicationsSkills)
能寫(xiě)出計算機程序卻寫(xiě)不出一個(gè)完整句子的軟件工程師現在還有。但不幸的是,要成為一個(gè)成功的軟件測試工程師,你需要清楚的交流。
你怎么去學(xué)習寫(xiě)?通過(guò)寫(xiě)。如果文字水平太粗糙,上一門(mén)創(chuàng )造性寫(xiě)作的課。每天寫(xiě)工程流水記錄或發(fā)email。關(guān)鍵是學(xué)習(或重新學(xué)習)怎樣用清晰可懂的語(yǔ)言表達你的思想。一個(gè)好的寫(xiě)作參謀是William Strunk Jr.和E.B. White寫(xiě)的The Elements of Style(Allyn &Bacon, 2000),它一點(diǎn)也不象初中教科書(shū)。
測試工程師必須把產(chǎn)品測試的技術(shù)寫(xiě)成文件。測試計劃提供指導并把測試設計轉化為設置、實(shí)現測試和評估結果的步驟指導。具有一般軟件和產(chǎn)品特性不同層次經(jīng)驗的工程師都能使用這樣一個(gè)詳細的測試計劃。如此測試設計者或測試方案作者之外的工程師也能能進(jìn)行測試。
測試計劃也幫著(zhù)佐證測試策略的正確性。項目中的每個(gè)人都應當參與審查(即市場(chǎng)、開(kāi)發(fā)、支持、技術(shù)寫(xiě)作及測試人)。計劃的審查是必不可少的,因為盡管測試工程師盡最大努力來(lái)達成一個(gè)對產(chǎn)品的全面定義,這一測試設計者所基于的定義不一定是完整或準確的。此外,就象開(kāi)發(fā)者很難測試他們自己的編碼一樣,測試工程師也很難明確評估他們自己的測試計劃。每一個(gè)計劃審查者都可能根據其經(jīng)驗及專(zhuān)長(cháng)建議修改,有時(shí)候審查者還能提供測試工程師在組織產(chǎn)品定義時(shí)不具備的信息。例如,一個(gè)市場(chǎng)人員可能了解到了新的客戶(hù)要求,一個(gè)軟件支持專(zhuān)家可能從有關(guān)的產(chǎn)品領(lǐng)域了解到了一個(gè)新的缺陷報告。
測試計劃強調測試計劃和執行的原則。在測試計劃中描述進(jìn)行測試所需的測試設計和步驟是另一層關(guān)于測試設計和計劃的原則。在測試設計和計劃中的錯誤與欠缺在設計轉化成測試計劃中特定的結構和測試步驟后就經(jīng)常是再已無(wú)法彌補。
測試計劃可作為其它項目,例如為不同的產(chǎn)品準備測試時(shí)的參考資料。當被測試軟件找到缺陷解決并證實(shí)后,測試計劃所述的測試可以用于證實(shí)缺陷的解決方案。同時(shí),一個(gè)主要的測試設計信息來(lái)源,特別對于舊產(chǎn)品的新版本而言,是相關(guān)產(chǎn)品或前版本的測試計劃。在建立新版本時(shí),舊版本的軟件測試計劃都應當被重新審查。
與功能與設計說(shuō)明不同,測試計劃將從測試的角度來(lái)描述產(chǎn)品的功能操作。從這方面說(shuō),測試計劃構成了公司公共檔案的一部分。隨著(zhù)時(shí)間的流逝人們會(huì )離開(kāi)公司,帶走他們的知識。以前產(chǎn)品的測試計劃就能幫助你定義新產(chǎn)品的測試。
軟件測試工程師還要寫(xiě)測試結果報告。測試結果必須寫(xiě)成文檔,這樣就能確定被測軟件的狀態(tài),提供關(guān)于必須要解決的缺陷的記錄。產(chǎn)品測試中發(fā)現的所有缺陷的記錄是測試部門(mén)最顯眼、保存時(shí)間最長(cháng)的文檔。測試計劃和測試報告在項目的最后常被遺忘,但現存缺陷的清單(或數據庫)代表項目未完成的議程。這一議程沒(méi)完成是因為一些缺陷必須在對原來(lái)產(chǎn)品的一個(gè)patch或maintenancerelease的時(shí)候糾正,或者它們在這個(gè)產(chǎn)品作為后續產(chǎn)品的基礎之前被修復。
在與軟件產(chǎn)品打交道的過(guò)程中,測試工程師比其他部門(mén)的人參與項目的更多方面。測試部門(mén)應當記錄項目過(guò)程中重大事件(例如設計決定)的信息。這個(gè)信息應能幫助測試部門(mén)和其他部門(mén)避免在后續項目中犯同樣的錯誤。錯誤是不可避免,在一個(gè)項目中可能出問(wèn)題。從這些經(jīng)驗中學(xué)習就可能避免問(wèn)題,避免今后的同樣錯誤。從錯誤中學(xué)習的第一步就是記住它們,記憶的第一步就是把它們寫(xiě)下來(lái)。
聯(lián)系客服