『壹』 如何做好軟體測試
開發一個好的軟體,40%以上的時間用在測試上,所以軟體測試工程師非常重要,用我們的話來說很吃香。現在從事程序員的人有很多,做測試工程師的人少點,工作壓力不太大
測試工程師應該具備的三項基本素質[1] 很多年輕或者剛剛從事測試工作的工程師,經常會問:「測試工程師需要什麼技能或者具有什麼素質才是合格的?」與開發人員相比,測試人員不但需要一技之長,還需要掌握諸如操作系統、資料庫、網路等多方面的知識。
經過這幾年的發展,國內IT公司的測試水平有了很大的提高,但是與此同時,很多測試工程師也迎來了個人的發展瓶頸:很多人從測試工程師做到了測試經理的職位,不知道下一步如何發展;或者每天機械地從事著功能測試工作。
根據作者多年的經驗,一個有競爭力的測試人員要具有下面三個方面的素質:
計算機專業技能
計算機領域的專業技能是測試工程師應該必備的一項素質,是做好測試工作的前提條件。盡管沒有任何IT背景的人也可以從事測試工作,但是一名要想獲得更大發展空間或者持久競爭力的測試工程師,則計算機專業技能是必不可少的。計算機專業技能主要包含三個方面:
測試專業技能
現在軟體測試已經成為一個很有潛力的專業。要想成為一名優秀的測試工程師,首先應該具有扎實的專業基礎,這也是本書的編寫目的之一。因此,測試工程師應該努力學習測試專業知識,告別簡單的「點擊」之類的測試工作,讓測試工作以自己的專業知識為依託。
測試專業知識很多,本書內容主要以測試人員應該掌握的基礎專業技能為主。測試專業技能涉及的范圍很廣:既包括黑盒測試、白盒測試、測試用例設計等基礎測試技術,也包括單元測試、功能測試、集成測試、系統測試、性能測試等測試方法,還包括基礎的測試流程管理、缺陷管理、自動化測試技術等知識。
軟體編程技能
「測試人員是否需要編程?」可以說是測試人員最常提出的問題之一。實際上,由於在我國開發人員待遇普遍高於測試人員,因此能寫代碼的幾乎都去做開發了,而很多人則是因為做不了開發或者不能從事其它工作才「被迫」從事測試工作。最終的結果則是很多測試人員只能從事相對簡單的功能測試,能力強一點的則可以藉助測試工具進行簡單的自動化測試(主要錄制、修改、回放測試腳本)。
軟體編程技能實際應該是測試人員的必備技能之一,在微軟,很多測試人員都擁有多年的開發經驗。因此,測試人員要想得到較好的職業發展,必須能夠編寫程序。只有能給編寫程序,才可以勝任諸如單元測試、集成測試、性能測試等難度較大的測試工作。
此外,對軟體測試人員的編程技能要求也有別於開發人員:測試人員編寫的程序應著眼於運行正確,同時兼顧高效率,尤其體現在與性能測試相關的測試代碼編寫上。因此測試人員要具備一定的演算法設計能力。依據作者的經驗,測試工程師至少應該掌握Java、C#、C++之類的一門語言以及相應的開發工具。
網路、操作系統、資料庫、中間件等知識:
與開發人員相比,測試人員掌握的知識具有「博而不精」的特點,「藝多不壓身」是個非常形象的比喻。由於測試中經常需要配置、調試各種測試環境,而且在性能測試中還要對各種系統平台進行分析與調優,因此測試人員需要掌握更多網路、操作系統、資料庫等知識。
在網路方面,測試人員應該掌握基本的網路協議以及網路工作原理,尤其要掌握一些網路環境的配置,這些都是測試工作中經常遇到的知識。
操作系統和中間件方面,應該掌握基本的使用以及安裝、配置等。例如很多應用系統都是基於Unix、linux來運行的,這就要求測試人員掌握基本的操作命令以及相關的工具軟體。而WebLogic、Websphere等中間件的安裝、配置很多時候也需要掌握一些。
資料庫知識則是更應該掌握技能,現在的應用系統幾乎離不開資料庫。因此不但要掌握基本的安裝、配置,還要掌握SQL。測試人員至少應該掌握Mysql、MS Sqlserver、Oracle等常見資料庫的使用。
作為一名測試人員,盡管不能精通所有的知識,但要想做好測試工作,應該盡可能地去學習更多的與測試工作相關的知識
軟體測試工程師-IT就業新亮點,
根據有關職位統計資料顯示,在國外大多數軟體公司,1個軟體開發工程師就需要輔有2個軟體測試工程師。目前,軟體測試自動化技術在我國則剛剛被少數業內專家所認知,而這方面的專業技術人員在國內更是鳳毛麟角。根據對近期網路招聘IT人才情況的了解,許多正在招聘軟體測試工程師的企業很少能夠在招聘會上順利招到合適的人才。
隨著中國IT行業的發展,產品的質量控制與質量管理正逐漸成為企業生存與發展的核心。從軟體、硬體到系統集成,幾乎每個中大型IT企業的產品在發布前都需要大量的質量控制、測試和文檔工作,而這些工作必須依靠擁有嫻熟技術的專業軟體人才來完成。而軟體測試工程師就是其中之一。
據了解,由於軟體測試工程師處於重要崗位,所以必須具有電子、電機類相關專業知識背景,並且還應有兩年以上的實際操作經驗。他們應熟悉中國和國際軟體測試標准,熟練掌握和操作國際流行的系列軟體測試工具,能夠承擔比較復雜的軟體分析、測試、品質管理等任務,並能獨立擔任測試、品質管理部門的負責人。一般情況,軟體測試工程師可分為測試工程師、高級測試工程師和資深測試工程師三個等級。
在具體工作過程中,測試工程師的工作是利用測試工具按照測試方案和流程對產品進行功能和性能測試,甚至根據需要編寫不同的測試工具,設計和維護測試系統,對測試方案可能出現的問題進行分析和評估。對軟體測試工程師而言,必須具有高度的工作責任心和自信心。任何嚴格的測試必須是一種實事求是的測試,因為它關繫到一個產品的質量問題,而測試工程師則是產品出貨前的把關人,所以,沒有專業的技術水準是無法勝任這項工作的。同時,由於測試工作一般由多個測試工程師共同完成,並且測試部門一般要與其他部門的人員進行較多的溝通,所以要求測試工程師不但要有較強的技術能力而且要有較強的溝通能力。
因此,在企業內部,軟體測試工程師基本處於「雙高」地位,即地位高、待遇高,有的人月薪可高達8000元。可以說他們的職業前景非常廣闊,從近期的企業人才需求和薪金水平來看,軟體測試工程師的年工資有逐年上升的明顯跡象。測試工程師這個職位必將成為IT就業的新亮點。
『貳』 軟體測試是干什麼的
軟體測試是對開發人員提交的軟體進行測試,模擬用戶使用,發現問題。它是一個系列過程活動,包括軟體測試需求分析,測試計劃設計、測試用例設計、執行測試等。它貫穿於軟體測試項目的整個生命過程,在軟體項目的每一個階段,都要進行不同目的和內容的測試活動,以保證各個階段的正確性。軟體測試工程師需要通過白盒測試、黑盒測試、等價類劃分法、邊界值方法等手段來找出程序錯誤,並提交給程序員修改。
那麼白盒測試呢就是通過直接看代碼來找bug,黑盒測試也就是手工測試,也就是在不看代碼的情況下來測試功能有沒有問題。灰盒測試則介於兩者之間。單元測試、集成測試、系統測試則是通過不同單位進行測試。回歸測試是二次測試,驗收測試則是通過用戶反饋來進行測試。等價類劃分法、邊界值方法、因果圖法、判定表法、正交排列法、錯誤推演算法、場景法編寫測試用例屬於功能測試,負載測試、壓力測試則屬於性能測試。
想要了解更具體的測試方法,來啄木鳥學院學習軟體測試面授課吧。據了解,啄木鳥學院的軟體測試課程還是不錯的。這里的師資都是具備多年項目經驗的精英,跟著他們學習,不用愁發展。另外,啄木鳥學院採用全程面授的教學方式,使你的學習效率更高。
『叄』 下列那種測試( )是屬於不需要程序員完成的黑盒測試方法 A、功能測試 B、集成測試 C、驗收測試 D、單元測試
D單元測試。單元測試根據它的測試情況不同可以分為黑盒和白盒。
『肆』 軟體測試需要具備哪些條件
【熱心相助】
軟體測試工程師需具備的主要條件:
開發一個好的軟體,40%以上的時間用在測試上,所以軟體測試工程師非常重要。
現在從事程序員的人有很多,做測試工程師的人少點,工作壓力不太大
測試工程師應該具備的三項基本素質:
1.計算機專業技能。計算機領域的專業技能是測試工程師應該必備的一項素質,是做好測試工作的前提條件。盡管沒有任何IT背景的人也可從事測試工作,但一名要想獲得更大發展空間或者持久競爭力的測試工程師,則計算機專業技能必不可少。
2.測試專業技能。現在軟體測試已經成為一個很有潛力的專業。要想成為一名優秀的測試工程師,首先應該具有扎實的專業基礎,這也是本書的編寫目的之一。因此,測試工程師應該努力學習測試專業知識,告別簡單的「點擊」之類的測試工作,讓測試工作以自己的專業知識為依託。測試專業知識很多,本書內容主要以測試人員應該掌握的基礎專業技能為主。測試專業技能涉及的范圍很廣:既包括黑盒測試、白盒測試、測試用例設計等基礎測試技術,也包括單元測試、功能測試、集成測試、系統測試、性能測試等測試方法,還包括基礎的測試流程管理、缺陷管理、自動化測試技術等知識。
3.軟體編程技能。「測試人員是否需要編程?」可以說是測試人員最常提出的問題之一。實際上,由於在我國開發人員待遇普遍高於測試人員,因此能寫代碼的幾乎都去做開發了,而很多人則是因為做不了開發或者不能從事其它工作才「被迫」從事測試工作。最終的結果則是很多測試人員只能從事相對簡單的功能測試,能力強一點的則可以藉助測試工具進行簡單的自動化測試(主要錄制、修改、回放測試腳本)。
軟體編程技能實際應該是測試人員的必備技能之一,在微軟,很多測試人員都擁有多年的開發經驗。因此,測試人員要想得到較好的職業發展,必須能夠編寫程序。只有能給編寫程序,才可以勝任諸如單元測試、集成測試、性能測試等難度較大的測試工作。此外,對軟體測試人員的編程技能要求也有別於開發人員:測試人員編寫的程序應著眼於運行正確,同時兼顧高效率,尤其體現在與性能測試相關的測試代碼編寫上。因此測試人員要具備一定的演算法設計能力。依據作者的經驗,測試工程師至少應該掌握Java、C#、C++之類的一門語言以及相應的開發工具。
『伍』 對計算機系統的測試包含哪些
人們對測試存在著一些誤區,例如:
1 測試是想像到可能出現的問題,然後試圖驗證這些問題。
實際上能想像到的只是一部分的情況,隨意性太大,還要取決於開發人員的經驗,對業務的熟悉程度和他想像到的程度。
2 讓時間有富裕的員工去做一些測試
表面上看這體現了管理的效率和靈活性,但實際上也體現了管理者對測試的輕視。測試和測試的人有很大關系。測試工作人員應該是勤奮並富有耐心,善於學 習、思考和發現問題,細心有條理,總結問題,如果具備這樣的優點,做其它工作同樣也會很出色,因此這里還有一個要求,就是要喜歡測試這項工作。如果他是專 職的,那麼肯定更有經驗和信心。國內的小夥子好象都喜歡做程序員,兩者工作性質不同,待遇不同,地位不同,對自我實現的價值的認識也不同,這是行業的一個 需要改善的問題。如果只是為了完成任務而完成任務,或者發現了幾個問題就覺得滿意了,這在任何其它工作中都是不行的。
3 測試是相對簡單的工作。
實際上並非如此,要真正做好一件事都不容易。測試也有很多相關技術和工具。而對測試的輕視問題,也許要通過痛苦的經歷和結果才可能確切體會到。很多專家都在對測試的理論進行深入的探討和研究。
測試的基本知識
什麼是軟體測試:在軟體投入運行前,對軟體需求分析、設計規格說明和編碼的最終復審,是軟體質量保證的關鍵步驟。
測試的目標:以較少的用例、時間和人力找出軟體中潛在的各種錯誤和缺陷,以確保系統的質量。
從測試的類型來看,測試分為2種:黑盒測試和白盒測試。
黑盒測試又稱為功能測試或數據驅動測試,把系統看成一個黑盒子,不考慮程序的內在邏輯,只根據需求規格說明書的要求來檢查程序的功能是否符合它的功能說明。
白盒測試又稱為結構測試和邏輯驅動測試,允許測試人員對程序內部邏輯結構及有關信息來設計和選擇測試用例,對程序的邏輯路徑進行測試。
測試用例由測試輸入數據以及與之對應的輸出結果組成。測試用例設計的好壞直接決定了測試的效果和結果。
從測試實際的前後過程來看,軟體測試上是由一系列的不同測試所組成,這些軟體測試的步驟分為:單元測試、組裝測試(集成測試)、確認測試和系統測試。軟體開發的過程是自頂向下的,測試則正好相反,以上這些過程就是自底向上,逐步集成的。
單元測試(模塊測試):針對每個模塊進行的測試,可從程序的內部結構出發設計測試用例,多個模塊可以平行地對立地測試。通常在編碼階段進行,必要的時候要製作驅動模塊和樁模塊。
集成測試:在單元測試的基礎上,將所有模塊按照設計要求組裝成為系統,必須精心計劃,應提交集成測試計劃、集成測試規格說明和集成測試分析報告。
確認測試:驗證軟體的功能和性能及其它特性是否與用戶的要求一致。
系統測試:將軟體放在整個計算機環境下,包括軟硬體平台、某些支持軟體、數據和人員等,在實際運行環境下進行一系列的測試。
測試工作的文檔主要有:測試計劃、測試模型和用例設計或規格說明、測試分析報告等。從軟體工程上說,這是屬於軟體配置的一部分。(我不知道,如果什麼報告都沒有,只是不斷地擺弄執行程序,看到錯誤和問題就記下來,算不算真正的測試?)
測試需要一定的技術和工具
在用例設計過程中,可以考慮到很多方面,並且也有很多的指導方法和技術。
黑盒測試用例設計包括:
等價類劃分:劃分等價類--確立測試用例--設計用例
邊界值分析:通過分析,考慮如何確立邊界情況
錯誤推測法:靠經驗和直覺來推測程序中可能存在的各種錯誤,從而有針對性地編寫用例。可以列舉出可能的錯誤和可能發生錯誤的地方,然後選擇用例。
因果圖:通過畫因果圖,在圖上標明約束和限制,轉換成判定表,然後設計測試用例。這適合於檢查程序輸入條件的各種組合情況。
功能圖FD:通過形式化地表示程序的功能說明,並機械地生成功能圖的測試用例。
『陸』 理解程序員與測試員的職責是什麼呢
程序員的職責主要是編寫代碼,自測試(程序演算法和流程,即白盒測試),提交代碼及模塊,修改測試人員發現的BUG。
測試員主要進行模塊測試(黑盒法),集成測試,發現並向程序員提交BUG。
要想深入了解建議看看《軟體工程》
『柒』 怎麼樣做白盒,黑盒測試
(一)等價類劃分法
等價類劃分法是一種典型的、重要的黑盒測試方法,它將程序所有可能的輸入數據劃分為若干個等價類。然後從每個部分中選取具有代表性的數據當做測試用例。測試用例由有效等價類和無效等價類的代表數據組成,從而保證測試用例具有完整性和代表性。使用該方法設計測試用例主要有兩個步驟:(1)確定等價類;(2)生成測試用例。
(二)邊界值分析法
邊界值分析法是對程序輸入或輸出的邊界值進行測試的一種黑盒測試方法。實際的測試工作證明,考慮了邊界條件的測試用例比那些沒有考慮邊界條件的測試用例具有更高的測試回報率。這里所說的邊界條件,是指輸入和輸入等價類中那些恰好處於邊界、或超過邊界、或在邊界以下的狀態。
(三)因果圖法
因果圖法也是較常用的一種黑盒測試方法,是一種簡化了的邏輯圖。因果圖能直觀地表明輸入條件和輸出動作之間的因果關系,能幫助測試人員把注意力集中到與程序功能有關的輸入組合上。因果圖法是一種適合於描述對於多種輸入條件組合的測試方法,根據輸入條件的組合、約束關系和輸出條件的因果關系,分析輸入條件的各種組合情況,從而設計測試用例的方法,它適合於檢查程序輸入條件的各種組合情況
(四)錯誤推測法
錯誤推測法是基於以往的經驗和直覺,參照以往的軟體系統出現的錯誤,推測當前被測程序中可能存在的缺陷和錯誤,有針對性地設計測試用例。
用錯誤推測法設計測試用例的基本思想是:列舉出程序中可能犯出現的錯誤或容易發生錯誤的特殊情況的清單,然後根據清單和已經設計好的測試用例來編寫特定的測試用例。例如,程序中出現的輸入數據為「0」或者字元為空就是一種錯誤易發情況;在出現輸入或輸出的數量不定的地方,數量為「沒有」和「一個」也是錯誤易發情況。特別需要注意的是,在閱讀規格說明時聯系程序員可能做的假設確定
『捌』 計算機軟體測試主要是干什麼的
計算機軟體測試主要是:分析需求文檔、撰寫測試案例、測試找bug、和程序員討論bug、提單並統計bug list......簡單的說,就是幫助公司把好軟體產品的質量關。
軟體測試人員對軟體產品的需求文檔、設計文檔等檢查是否有歧義,或者用詞是否違背行業規則等;對軟體產品本身的功能、性能通過運用專業的軟體測試技術以及工作去發現軟體產品中隱藏的軟體問題,並將所有發現的問題發送給相應人員進行修改,從而大大減少了因軟體產品的質量問題而引起的後期維護費用以及因軟體問題對用戶造成的影響以及損失。
你要是想學習軟體測試,應該多看看測試相關的書籍,然後加一些測試技術群,裡面有大牛,可以多向他們學習學習。
『玖』 軟體測試的目的是什麼
軟體測試的目的是在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。
軟體測試已有了行業標准(IEEE/ANSI ),1983年IEEE提出的軟體工程術語中給軟體測試下的定義是:「使用人工或自動的手段來運行或測定某個軟體系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別」。
(9)程序員需要集成測試擴展閱讀
測試方法
1、靜態測試方法
靜態測試方式指軟體代碼的靜態分析測驗,此類過程中應用數據較少,主要過程為通過軟體的靜態性測試(即人工推斷或計算機輔助測試)測試程序中運算方式、演算法的正確性,進而完成測試過程,
此類測試的優點在於能夠消耗較短時間、較少資源完成對軟體、軟體代碼的測試,能夠較為明顯地發現此類代碼中出現的錯誤。靜態測試方法適用范圍較大,尤其適用於較大型的軟體測試。
2、動態測試
計算機動態測試的主要目的為檢測軟體運行中出現的問題,較靜態測試方式相比,其被稱為動態的原因即為其測試方式主要依賴程序的運用,主要為檢測軟體中動態行為是否缺失、軟體運行效果是否良好。
其最為明顯的特徵即為進行動態測試時軟體為運轉狀態,只有如此才能於使用過程中發現軟體缺陷,進而對此類缺陷進行修復。目前動態測試過程中可包括兩類因素,即被測試軟體與測試中所需數據,兩類因素決定動態測試正確展開、有效展開。
參考資料來源:網路-軟體測試