為什麼做軟體測試
⑴ 我為什麼選擇軟體測試
先說說軟體測試的現狀吧!
原因之一:軟體產品成熟度的問題。記得產品的競爭力分為多個層次:人無我有、人有我優、人優我廉、人廉我轉。先保證產品存在,然後談產品的質量,質量好價格低的產品更暢銷,質量好、價格低、服務好是用戶追求的目標。以前的軟體大多屬於形象工程,有就行了。現在越來越多的軟體用起來了,質量自然提上了日程。怎無奈,花錢的客戶不是使用產品的用戶,客戶不懂產品質量,但他懂價格,導致的問題就是讓開發商拼價格,降低成本。如果有一天,產品的質量對於軟體的銷售起決定作用的時候,開發商才會想辦法提升質量。
原因之二:軟體的質量並不完全依賴於測試水平。軟體的缺陷是由開發人員引入的,如果少一點引入缺陷,即使沒有測試,軟體的質量也會很高。這是一個不錯的觀點。開發人員自身水平的提升對產品質量的影響是第一位的。ok,站在這個角度來講,測試人員的存在是對產品質量提升的一個補充。
原因之三:測試人員沒有爭取。測試人員往往在公司的位置較低,同時他們卻選擇了逆來順受,聽之任之的態度。大多數軟體測試人員的水平的確不行,連代碼都看不懂,與開發人員根本沒有辦法交流,當然開發人員瞧不起你。
原因之四:高水平的測試人員都不做測試。水平高了,為了追求好的待遇,轉開發了、做管理了,讓自己的測試技能浪費了。
那「軟體測試」還有救嗎?是不是命中註定就是軟體開發的「次要角色」?先提一些觀點。
1、軟體產品的質量越來越重要,而且是個趨勢。——應該沒有人反對吧!
2、為了保證產品的質量,有兩條路可以走。第一預防,讓錯誤少出現;第二驗證,如果有錯誤,發現、處理。第一條路的主人公是開發人員。第二條路的主人公是開發人員和測試人員。測試人員的位置就是通過驗證的方式去發現問題。而這兩條路相互補充,在整個開發過程不會舍棄其一。
3、開發人員和測試人員越走越近,開發人員需要測試技能,測試人員也需要開發技能,只是在特定階段完成不同的任務。開發和測試是軟體開發過程中的不同角色。代表著工作范圍或者工作方式,為了實現同一個目標。舉個例子:TDD讓測試與開發真正走到了一起。
4、測試從軟體開發過程的一開始就進入。這是一種正確的工作方式,讓測試人員有更多的表現機會。
5、測試人員需要掌握更多的技能。需求分析的技能、設計的技能、編碼的技能(不見得有開發人員精通)、測試的技能。這樣,測試人員在整個軟體開發過程中,才能真正承擔需求分析驗證、軟體設計評估、測試盡可能自動化、軟體驗證等開發任務。才能真正體現出:測試人員只是站在另外一個角度解決問題的角色。
一種理想狀況是:開發人員和測試人員具有相同的技能,他們擁有不同的角色,一起合作開發軟體,共同打造高質量的軟體。如果項目小的話,其實開發人員和測試人員就是一個人。
說說最初的問題,作為第一篇blog的結束。「軟體測試」對我的誘惑。
2、站在用戶的角度,為你的客戶著想,我們開發的目的不是為了寫代碼,然後自己欣賞,讓更多的人用起來才是真正的價值所在。
3、軟體測試是軟體工程師發展的必經之路。
4、軟體測試是一種趨勢,它將在軟體開發中占據越來越重要的位置。試想,如果將來web service盛行,軟體構造的方式可能會發生質的變化:也許就是選擇web service,然後再驗證的過程。
也許將來不再會有開發人員、測試人員之分,也說不清是開發人員吞並了測試人員,還是測試人員吞並了開發人員。
⑵ 為什麼要做測試
1、測試是做什麼的?
如果是專業的測試人員的話,那軟體測試的工作就相當復雜了,首先制定測試計劃是勢在必行的,包括測試的起始結束時間,在什麼時間要有什麼進度,之後就是進行各個測試環節,單元測試——集成測試——系統測試——驗收測試。這里邊前兩步是用到白盒測試,後兩步需要的是黑盒測試。
如果是找測試方面的工作的話,那一開始我相信問得不會很深,但是基礎肯定是要知道的,就是什麼是黑白盒測試,建議測試文檔包含的必須部分等等吧,都是很基礎的。
2、軟體測試類型都有哪些?測試類型的區別與聯系?
測試類型有:功能測試,性能測試,界面測試。
功能測試在測試工作中占的比例最大,功能測試也叫黑盒測試。是把測試對象看作一個黑盒子。利用黑盒測試法進行動態測試時,需要測試軟體產品的功能,不需測試軟體產品的內部結構和處理過程。採用黑盒技術設計測試用例的方法有:等價類劃分、邊界值分析、錯誤推測、因果圖和綜合策略。
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬於性能測試,兩者可以結合進行。通過負載測試,確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統各項性能指標的變化情況。壓力測試是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。
界面測試,界面是軟體與用戶交互的最直接的層,界面的好壞決定用戶對軟體的第一印象。而且設計良好的界面能夠引導用戶自己完成相應的操作,起到向導的作用。同時界面如同人的面孔,具有吸引用戶的直接優勢。設計合理的界面能給用戶帶來輕松愉悅的感受和成功的感覺,相反由於界面設計的失敗,讓用戶有挫敗感,再實用強大的功能都可能在用戶的畏懼與放棄中付諸東流。
區別在於,功能測試關注產品的所有功能上,要考慮到每個細節功能,每個可能存在的功能問題。性能測試主要關注於產品整體的多用戶並發下的穩定性和健壯性。界面測試更關注於用戶體驗上,用戶使用該產品的時候是否易用,是否易懂,是否規范(快捷鍵之類的),是否美觀(能否吸引用戶的注意力),是否安全(盡量在前台避免用戶無意輸入無效的數據,當然考慮到體驗性,不能太粗魯的彈出警告)?做某個性能測試的時候,首先它可能是個功能點,首先要保證它的功能是沒問題的,然後再考慮該功能點的性能測試。
3、請試著比較一下黑盒測試、白盒測試、單元測試、集成測試、系統測試、驗收測試的區別與聯系?
黑盒測試:已知產品的功能設計規格,可以進行測試證明每個實現了的功能是否符合要求。
白盒測試:已知產品的內部工作過程,可以通過測試證明每種內部操作是否符合設計規格要求,所有內部成分是否以經過檢查。
軟體的黑盒測試意味著測試要在軟體的介面處進行。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或數據驅動測試。黑盒測試主要是為了發現以下幾類錯誤:
1)是否有不正確或遺漏的功能?
2)在介面上,輸入是否能正確的接受?能否輸出正確的結果?
3)是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤?
4)性能上是否能夠滿足要求?
5)是否有初始化或終止性錯誤?
軟體的白盒測試是對軟體的過程性細節做細致的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內部的邏輯結構及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序狀態,確定實際狀態是否與預期的狀態一致。因此白盒測試又稱為結構測試或邏輯驅動測試。白盒測試主要是想對程序模塊進行如下檢查:
1)對程序模塊的所有獨立的執行路徑至少測試一遍。
2)對所有的邏輯判定,取「真」與取「假」的兩種情況都能至少測一遍。
3)在循環的邊界和運行的界限內執行循環體。
4)測試內部數據結構的有效性,等等。
單元測試(模塊測試)是開發者編寫的一小段代碼,用於檢驗被測代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函數的行為。
單元測試是由程序員自己來完成,最終受益的也是程序員自己。可以這么說,程序員有責任編寫功能代碼,同時也就有責任為自己的代碼編寫單元測試。執行單元測試,就是為了證明這段代碼的行為和我們期望的一致。
集成測試(也叫組裝測試,聯合測試)是單元測試的邏輯擴展。它的最簡單的形式是:兩個已經測試過的單元組合成一個組件,並且測試它們之間的介面。從這一層意義上講,組件是指多個單元的集成聚合。在現實方案中,許多單元組合成組件,而這些組件又聚合成程序的更大部分。方法是測試片段的組合,並最終擴展進程,將您的模塊與其他組的模塊一起測試。最後,將構成進程的所有模塊一起測試。
系統測試是將經過測試的子系統裝配成一個完整系統來測試。它是檢驗系統是否確實能提供系統方案說明書中指定功能的有效方法。(常見的聯調測試)
系統測試的目的是對最終軟體系統進行全面的測試,確保最終軟體系統滿足產品需求並且遵循系統設計。
驗收測試是部署軟體之前的最後一個測試操作。驗收測試的目的是確保軟體准備就緒,並且可以讓最終用戶將其用於執行軟體的既定功能和任務。
驗收測試是向未來的用戶表明系統能夠像預定要求那樣工作。經集成測試後,已經按照設計把所有的模塊組裝成一個完整的軟體系統,介面錯誤也已經基本排除了,接著就應該進一步驗證軟體的有效性,這就是驗收測試的任務,即軟體的功能和性能如同用戶所合理期待的那樣。
4、做好測試用例設計工作的關鍵是什麼?
白盒測試用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程序邏輯結果;
黑盒法用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入介面。不可能做到完全測試,以最少的用例在合理的時間內發現最多的問題。
5、測試計劃工作的目的是什麼?測試計劃工作的內容都包括什麼?其中哪些是最重要的?
軟體測試計劃是指導測試過程的綱領性文件,包含了產品概述、測試策略、測試方法、測試區域、測試配置、測試周期、測試資源、測試交流、風險分析等內容。藉助軟體測試計劃,參與測試的項目成員,尤其是測試管理人員,可以明確測試任務和測試方法,保持測試實施過程的順暢溝通,跟蹤和控制測試進度,應對測試過程中的各種變更。
測試計劃和測試詳細規格、測試用例之間是戰略和戰術的關系,測試計劃主要從宏觀上規劃測試活動的范圍、方法和資源配置,而測試詳細規格、測試用例是完成測試任務的具體戰術。所以其中最重要的是測試測試策略和測試方法(最好是能先評審)。
6、做好測試計劃工作的關鍵是什麼?
1)明確測試的目標,增強測試計劃的實用性
編寫軟體測試計劃得重要目的就是使測試過程能夠發現更多的軟體缺陷,因此軟體測試計劃的價值取決於它對幫助管理測試項目,並且找出軟體潛在的缺陷。因此,軟體測試計劃中的測試范圍必須高度覆蓋功能需求,測試方法必須切實可行,測試工具並且具有較高的實用性,便於使用,生成的測試結果直觀、准確。
2)堅持「5W」規則,明確內容與過程
「5W」規則指的是「What(做什麼)」、「Why(為什麼做)」、「When(何時做)」、「Where(在哪裡)」、「How(如何做)」。利用「5W」規則創建軟體測試計劃,可以幫助測試團隊理解測試的目的(Why),明確測試的范圍和內容(What),確定測試的開始和結束日期(When),指出測試的方法和工具(How),給出測試文檔和軟體的存放位置(Where)。
3)採用評審和更新機制,保證測試計劃滿足實際需求
測試計劃寫作完成後,如果沒有經過評審,直接發送給測試團隊,測試計劃內容的可能不準確或遺漏測試內容,或者軟體需求變更引起測試范圍的增減,而測試計劃的內容沒有及時更新,誤導測試執行人員。
4)分別創建測試計劃與測試詳細規格、測試用例
應把詳細的測試技術指標包含到獨立創建的測試詳細規格文檔,把用於指導測試小組執行測試過程的測試用例放到獨立創建的測試用例文檔或測試用例管理資料庫中。測試計劃和測試詳細規格、測試用例之間是戰略和戰術的關系,測試計劃主要從宏觀上規劃測試活動的范圍、方法和資源配置,而測試詳細規格、測試用例是完成測試任務的具體戰術。
⑶ 為什麼做軟體測試報告
一款軟體開發出來並不能保證其穩定性與毫無漏洞,這就需要進行軟體的測試,找出該軟體的缺陷。軟體測試的目的理解產品的功能要求,檢查軟體有沒有錯誤(Bug),決定軟體是否具有穩定性(Robustness)。
簡而言之,軟體測試在一家軟體企業中擔當的是「質量管理」角色,及時糾錯及時更正,確保產品的正常運作。
⑷ 軟體測試的目的是什麼為什麼要進行軟體測試
為了在現場能更好的運行啊,線下測試OK,線上才能順利運行
⑸ 什麼是軟體測試為什麼要進行軟體測試如何完成軟體測試
軟體測試就是盡可能的在軟體開發中找出軟體的缺陷,及我們所說的bug。軟體測試的目的就是讓軟體個缺陷盡早的被發現和改正,從而達到需求的要求,減少後期維護成本。完成軟體測試,首先要擬定軟體測試計劃,提交測試計劃,再搭建測試環境,然後就是進行軟體測試,最後做測試總結
⑹ 為什麼要進行軟體測試軟體測試的目的是什麼
建立軟體測試管理體系的主要目的是確保軟體測試在軟體質量保證中發揮應有的關鍵作用:
1、軟體產品的監視和測量
對軟體產品的特性進行監視和測量,主要依據軟體需求規格說明書,驗證產品是否滿足要求。所開發的軟體產品是否可以交付,要預先設定質量指標,並進行測試,只有符合預先設定的指標,才可以交付。
2、對不符合要求的產品的識別和控制
對於軟體測試中發現的軟體缺陷,要認真記錄它們的屬性和處理措施,並進行跟蹤,直至最終解決。在排除軟體缺陷之後,要再次進行驗證。
3、產品設計和開發的驗證
通過設計測試用例對需求分析、軟體設計、程序代碼進行驗證,確保程序代碼與軟體設計說明書的一致,以及軟體設計說明書與需求規格說明書的一致。對於驗證中發現的不合格現象,同樣要認真記錄和處理,並跟蹤解決。解決之後,也要再次進行驗證。
4、軟體過程的監視和測量
從軟體測試中可以獲取大量關於軟體過程及其結果的數據和信息,它們可用於判斷這些過程的有效性,為軟體過程的正常運行和持續改進提供決策依據。
(6)為什麼做軟體測試擴展閱讀
一個好的測試計劃可以起到如下作用:使測試工作和整個開發工作融合起來;資源和變更事先作為一個可控制的風險。
編寫軟體測試計劃得重要目的就是使測試過程能夠發現更多的軟體缺陷,因此軟體測試計劃的價值取決於它對幫助管理測試項目,並且找出軟體潛在的缺陷。因此,軟體測試計劃中的測試范圍必須高度覆蓋功能需求,測試方法必須切實可行,測試工具並且具有較高的實用性,便於使用,生成的測試結果直觀、准確。
⑺ 面試題:為什麼做軟體測試,不做開發
軟體測試是為軟體產品的質量把關的,目前軟體測試的工業化時代還沒有來臨,自動化軟體測試工具還沒有能統一起來的模式,大部分還是靠人工測試,所以軟體測試有很大的發展空間和前景。軟體測試並不比軟體開發輕松,也不比軟體開發簡單,選擇軟體測試並不是覺得它更容易,而是自己本身對這個行業更有興趣,做測試也會更投入,所以選擇測試而不是開發。
這只是一方面,還可以加一些其他的因素,比如軟體測試貫穿於整個軟體開發的生命周期,本人喜歡對個階段的測試用例進行分析和設計,感覺不開發更有趣。突出出你是真的喜歡測試就可以了,沒有什麼標準的答案,他就是在考察你的態度問題。希望對你有幫助。
對於任何行業,從業者的水平分布都是成金字塔形的。測試很有前途也很有挑戰,祝你成功!
⑻ 研發中,為什麼要進行軟體測試
不然出現問題引起客戶不滿影響很大,還可能造成損失