❶ 為什麼說軟體測試的初始狀態很重要
程序在初始運行時,需要設定一個初始狀態,以便能夠運行。這也是測試時需要測試的。如果初始改肆情況就出現問題,以後的運行都是寬盯在錯誤的基礎上的,測試結果不可信。故需要在設計和開發,乃至測試時,對初始狀態均需要重點核巧轎對待。
❷ 軟體測試的方法有哪些
測試的有2種方法
答:黑盒測試和白盒測試
黑盒:這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明。
黑盒測試又叫做功能測試或數據驅動測試。
白盒:此方法把測試對象看做一個透明的盒子,它允許測試人員利用程序內部的邏輯結構及皮歷有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。
通過在漏戚不同點檢查程序的狀態,確定實際的狀態是否與預期的狀態一致。因此白盒測試又稱為結構測試或邏輯驅動測試。
軟體測試按過程分為三個步驟
答:單元測試:單元測試又稱模塊測試,是針對軟體設計的最小單位—程序模塊,進行正確性檢驗的測試工作。其目的在於發現各模塊內部可能存在的各種差錯。
單元測試需要從程序的內部結構出發設計測試用例。多個模塊可以平行地獨立進行單元測試。
集成測試:在運行(可能是不完整)的應用中保證軟體單元被結合後能正常操作的測試執行的階段
系統測試:當應用作為整體運行時的測試執行階段
軟體測試的步驟是什麼?
1)測試過程按4個步驟進行,即單元測試(UnitTesting)、集成測試(IntegratedTesting)、確認測試(ValidationTesting)和系統測試(SystemTesting)及發版測試。
2)開始是單元測試,集中對用源代碼實現的每一個程序單元進行測試,檢查各個程序模塊是否正確地實現了規定的功能。
3)集成測試把已測試過的模塊組裝起來,主要對與設計相關的軟體體系結構的構造進行測試。
4)確認測試則是要檢查已實現的軟體是否滿足了需求規格說明中確定了的各種需求,以及軟體配置是否完全、正確。
應該考慮進行如何測試的測試方法
黑盒測試(Blackboxtesting)——不考慮內部設計和代碼,根據需求和功能進行測試。
白盒測試(Whiteboxtesting)——根據應用軟體的代碼的內部邏輯,按照代碼的語句、分支、路徑和條件進行測試。
功能測試(functionaltesting)——對一個應用軟體的功能模塊進行黑盒測試。這種測試應當由測試燃搜搜人員進行。但這並不意味著程序員在推出軟體之前不進行代碼檢查。(這一原則適用於所有的測試階段。)
系統測試——針對全部需求說明進行黑盒測試,包括系統中所有的部件。
回歸測試(regressiontesting)——每當軟體經過了整理、修改、或者其環境發生變化,都重復進行測試。很難說需要進行多少次回歸測試,特別是是到了開發周期的最後階段。進行此種測試,特別適於使用自動測試工具。
負荷試驗(loadtesting)——在大負荷條件下對應用軟體進行測試。例如測試一個網站在不同負荷情況下的狀況,以確定在什麼情況下系統響應速度下降或是出現故障。
壓力測試(stresstesting)——經常可以與「負荷測試」或「性能測試」相互代替。這種測試是用來檢查系統在下列條件下的情況:在非正常的巨大負荷下、某些動作和輸入大量重復、輸入大數、對資料庫進行非常復雜的查詢,等等。
性能測試(performancetesting)——經常可以與「壓力測試」或「負荷測試」相互代替。理想的「性能測試」(也包括其他任何類型的測試)都應在質量保障和測試計劃的文檔終予以規定。
可用性測試(usabilitytesting)——是專為「對用戶友好」的特性進行測試。這是一種主觀的感覺,取決於最終用戶或顧客。可以進行用戶會見、檢查、對用戶會議錄像、或者使用其他技術。程序員和測試人員通常不參加可用性測試。
安裝/卸載測試(install/uninstalltesting)——對安裝/卸載進行測試(包括全部、部分、升級操作)。
安全測試(securitytesting)——測試系統在應付非授權的內部/外部訪問、故意的損壞時的防護情況。這需要精密復雜的測試技術。
兼容性測試(compatabilitytesting)——測試在特殊的硬體/軟體/操作系統/網路環境下的軟體表現。
α測試(alphatesting)——在開發一個應用軟體即將完成時所進行的測試。此時還允許有較小的設計修改。通常由最終用戶或其他人進行這種測試,而不是由程序員和測試人員來進行。
β測試(betatesting)——當開發和測試已基本完成,需要在正式發行之前最後尋找毛病而進行的測試。通常由最終用戶或其他人進行這種測試,而不是由程序員和測試人員來進行。
❸ 手機軟體測試有哪些方法常用的手機軟體測試方法
一、等價類分析法
等價類劃分方法針對手機狀態大致可以歸幾個大類:
1.按鍵類(等價法):有效輸入和無效輸入(有效輸入指UM和菜單指示;無效輸入指測試菜單功能此時沒有定義的按鍵和用戶動作);
2.外部中斷類(等價法):常用、不常用及無效
2.1.常用:來電和來消息(簡訊、彩讓做信、push消息);掀合蓋;側鍵;耳機&FM;情景模式;電量不足
2.2.不常用:充電;鬧鍾&記事本&關機時間&整點報時提示;Icon&動畫顯示;Icon&動畫刷新;編輯界面&pop顯示框輸入為空或滿;坦拆衡編輯界面&pop顯示框狀態輸入法默認&字元編碼默認;失效SIM卡;大容量等SIM卡兼容;排序;號碼識別御侍;
二、邊界值分析
例子1:
短消息發送功能的等價類劃分方法:.
三、錯誤猜測法
例子1:
利用手機鬧鍾重響的例子引入錯誤猜測法基本概念,講解錯誤猜測法的意義
未接來電29通,內存中規劃的分區一直分配被佔用。即使同一號碼也同樣佔用資源。假設此時第30通電話正好為來電號碼不顯示,即「來電號碼未知」或境外來電號碼隱藏時(國外保護個人隱私,自動開啟來電號碼隱藏功能),可能會出現BUG,實際情況證明,此時會出現Reset問題。
❹ 軟體測試——缺陷報告
測試人員發現缺陷——>記錄缺陷,並將缺陷告知開發人員
缺陷報告是測試人員和開發人員溝通的重要渠道
1、缺陷編號(defect id)
2、缺陷標題(summary)
3、缺陷的發現者(detected by)
4、發現缺陷的日期(detected on date)
5、發現缺陷的功能模塊(subject)
6、指派給(assigned to)
7、發現缺陷的版本(detected in release)
(1)說明:不僅指最後的發布版本,也指軟體開發過程中出現的「臨時版本」
(2)回歸測試:在新版本中對原來版本測試過的內容再重新測試一遍
原因:1、新功能對原有功能可能有影響
2、缺陷修改後也有可能對原有功能產生影響
為了提高回歸測試的效率,很多企業使用自動化工具做回歸測試
8、缺陷的狀態(status)最常見的考試題**
(1)說明:指明缺陷當前所需什麼處理困派和缺陷當前處於什麼處理狀況
(2)缺陷的處理過程:重點
步驟1:測試人員將缺陷報告提交給開發經理,
將缺陷報告狀態設置成:New(新的缺陷)
步驟2:開發經理驗證缺陷:
情況1:如果驗證是缺陷,將缺陷指派給相應的開發人員,
並將缺陷狀態設置成open
open:(打開的缺陷,被開發方汪滾賀承認的缺陷)
情況2:如果驗證不是缺陷,開發經理會拒絕此缺陷,將缺陷
狀態設置成:rejected。(一般要匯報給測試組長或
測試經理,有時會邀請開發人員參加,開討論會解決)
步驟3:開發人員要修改缺陷,修改完成後,將缺陷狀態設置成:fixed
fixed:(修改過的缺陷,即待返測的缺陷)
步驟4:測試人員返測開發人員更改過的缺陷
情況1:返測通過,將缺陷狀態設置成:closed
closed:(關閉的缺陷,可歸檔)
情況2:返測沒通過,將缺陷狀態設置成:reopen
reopen:(重新打開的缺陷)
開發人員繼續修改缺陷直到缺陷被返測成功為止。
9、缺陷的嚴重程度(severity) 【說明缺陷有多糟糕或者對軟體的影響有多大】
嚴重程度的級別:
(1)urgent:造成死機,系統崩潰等致命問題
(2)very high:非常嚴重的問題
(3)high:嚴重的問題
(4)medium:中等程度的問題
(5)low:小問題
發現問題:級別定義是泛泛的籠統的,容易引發爭議,需要制定詳細的標准
注意:每個級別的含義,不同企業、不同項目組都可能不同,需要在專門的
文檔中定義好細則,在缺陷報告中作為參考。
10、缺陷的優先順序(priority)
希望程序員在什麼時間內或者在程序的哪個版本中解決該缺陷(Bug)
優先備頌級的級別:
(1)urgent:立即修改,否則會影響開發或測試的進度
(2)very high:本版本中解決
(3)high: 下一版本中解決
(4)medium:發布之前解決
(5)low:盡量在發布之前解決
注意:對於每個級別的具體定義,不同公司不一定完全相同,
實際工作中要注意參考公司的文檔。
影響優先順序的因素:
(1)考慮缺陷的嚴重程度:一般是越嚴重,優先順序別越高
(也不是絕對的,有時嚴重級別低,但優先順序高,例如:界面錯字)
(2)缺陷影響的范圍:一般影響范圍越大,優先順序越高
(3)開發組的任務壓力:進度壓力越小,優先順序越高
(4)解決缺陷的成本(時間):成本越低,優先順序越高 (例如:改錯字)
11、缺陷的描述(description)
描述缺陷產生的操作過程,使程序員能重現缺陷。(缺陷報告不是必須
要遵守什麼寫法和規則,只要程序員能看明白能重現缺陷就可以)
1、缺陷報告的用途
(1)記錄缺陷(2)跟蹤管理缺陷
(3)可以對缺陷進行分類,並很容易實現對缺陷的總結,統計
2、怎樣識別缺陷?
(1)參考測試用例的預期結果,如果實際執行結果與預期結果不一致就是缺陷
(2)參考需求文檔-----與需求不符就是bug
(3)參考缺陷定義的五條
(4)與開發人員、產品人員、客戶溝通確定是否是缺陷
3、寫缺陷報告的注意事項
(1)一個報告只提交一個缺陷
(2)缺陷描述清晰、准確、易讀,使用最少、必須的步驟,保證缺陷可以再現
(3)對缺陷的嚴重性、優先順序的劃分准確、客觀
(4)在提交缺陷報告之前一定要認真審核,確保提交的缺陷是有效的,
而不是因為自己的疏忽或操作不正確早成的「假缺陷」
(5)不要為了引起開發人員的重視而誇大缺陷
(6)小的缺陷也要報告
(7)及時報告缺陷
(8)對於不可重現的缺陷也要報告
(9)不做任何評價
1、什麼是隨機缺陷:
不可重現的缺陷也叫隨機缺陷,按照指定的步驟執行時有時無。
隨機缺陷在提交時要明確說明這是不可重現的隨機缺陷。
盡量提供關於此缺陷的信息,包括提供截圖、錯誤消息、還有缺陷所在模塊
如果確定不了所在模塊,可以建議採用白盒測試確定。
2、缺陷的嚴重程度和優先順序是不是嚴格的正比關系?
答:不一定嚴格成正比關系。
例如:界面錯別字,嚴重級別低,但優先順序別高
3、缺陷的嚴重程度和優先順序確定之後,還可以改嗎?
答:嚴重程度一般不改;優先順序有時會改,一般是拖延處理
4、是不是所有已發現的缺陷,在發布時都會被修復?
答:在軟體發布之前,不是所有已經發現的缺陷都被修復了;對於
不予修復的缺陷,要通過全組的缺陷討論,權衡解決缺陷的
成本和不解決的風險。後期一般通過打補丁或升級的方式解決。
❺ 軟體測試的步驟
軟體測試的步驟如下:
1、根據項目、產品的需求提煉測試需求。
2、根據測試需求和項目的整體計劃,制定測試計劃,測試方案等,包括測試的時間節點安排,人力資源安排,測試策略等,並進行評審。
3、根據測試需求以及相關的設計文檔,編寫測試用例,即明確每個測試點的具體的操作步驟,預期結果等內容,並對用例進行評審。
4、准備測試環境和測試數據,包括測試系統部署的硬體環境和軟體環境。
拓展知識:
增強軟體使用可靠性纖指御,發現軟體存在的不足和差異,提高軟體質量。簡單地說,就是替用戶受過,測試的最終目的是確保最終交給用戶的產品的功能符合用戶的需求,把盡可能多的問題在產品交給用戶之前發現並改正。
❻ 在學習軟體測試,請幫忙描述一下下面圖中的BUG狀態流程圖。
這個是一個標準的測試缺陷管理流程圖:
測試人員【報告錯誤】--在缺陷管理平台上新建了一個BUG,測試bug狀態是【new】,研發人員收到BUG之後,(1)先確認BUG是否【已經報告?】,如果該BUG已經提交過,研發人員會將BUG打回,並提示重復BUG,此時的BUG狀態是【Declined Duplicated】,測試人員檢查BUG確實重復提交了,關閉該缺陷;(2)如果該BUG無重復提交,研發人員確認是否【是錯誤?】,如果是設計本就如此,研發會人為該BUG不是錯誤,將BUG打回,狀態是【Declined Not Bug】,測試人員檢查後關閉該缺陷;(3)如果該BUG研發確認是錯誤,研發會打開BUG進行修復,此時BUG狀態是【open】;(4)open的BUG修復,研發會檢查按照測試步驟是否【可以團稿重現?】,如果無法重現,研發將BUG打回,需要研發人員補充信息,測試狀態是【new more info】,測試人員補充BUG信息後,再提交到研發進行修復,直到研發能夠復現出該BUG;(5)如果測試步驟可以復現BUG,研發人員可以決定是否【現在修復?】,如果是立即修復,研發會將修改好的BUG設置為已解決,BUG修改後的狀態是【fixed】,測試拿到已解決的BUG進行驗證,確認是否【通過驗證?】,如果驗證通過,關閉該BUG,如果驗證不通過,重新打開該BUG;(6)如果研發人員決定不立即修復,研發人員決定是否【下版本修復?】,如果是,那麼將會在搜蔽下個版本進行修復,狀態是【Deferred next build】,如果不是下個版本修復,那麼會在下次的主線版本中進行修復,狀態是【Deferred next main release】,這2個缺陷的狀態都將是掛起,到期研發會自己世或州打開進行修復,修復的處理流程又跟之前的正常流程是一樣的了。
❼ 軟體測試種測試結果的五種狀態
為了保證測試工作科學、精確、全面、有序地進行,應該採取一邊開發一邊進行軟體測試的策略,使得開發工作與測試工作平行進行,這也就是俗話所說的「越早測試越好」的概念。
一套完整的軟體測試應該由五個階段組成:
1、測試計劃
首先,根據用戶需求報告中關於功能要求和性能指標的規格說明書,定義相應的測試需求報告,即制訂黑盒測試的最高標准,以後所有的測試工作都將圍繞著測試需求來進行,符合測試需求的應用程序即是合格的,反之即是不合格的;同時,還要適當選擇測試內容,合理安排測試人員、測試時間及測試資源等。
2、測試設計
將測試計劃階段制訂的測試需求分解、細化為若干個可執行的測試過程,並為每個測試過程選擇適當的測試用例(測試用例選擇的好壞將直接影響到測試結果的有效性)。
3、測試開發
建立可重復使用的自動測試過程。
4、測試執行
執行測試開發階段建立的自動測試過程,並對所發現的缺陷盯頌進行跟蹤管理。測試執行一般由單元測試、組合測試、集成測試、系統聯調及回歸測試等步驟組成,測試人員應本著科學負責的態度,一步一個腳印地進行測試。
5、測試評估
結合量化的測試覆蓋域及缺陷唯或跟蹤報告,對於應用軟體的質量和開發團隊的工作進度及工作效率進行綜合評價。
顯然,軟體測試只有嚴格按照步驟進行,才可能對應用程序的質量進行把關。然而,如果沒有一種優秀的測試工具的幫助,單純憑藉手工測試,不但將耗費大量凱山鄭的人力、物力和財力,而且有很多測試工作是難以實現甚至是無法實現的。
❽ 軟體測試的五個基本原則
軟體測試經過了幾十年的發展,已經提出了許多基本的測試原則來指導軟體測試。制定軟體測試的基本原則有助於提高測試工作的效率和質量,使測試人員能夠以最少的人力、物力和時間盡快發現軟體中的問題。測試人員應在測試原則的指導下開展測試工作。下面是軟體測試的五個基本原則。
1.測試應該基於客戶需求
所有測試工作都應基於滿足客戶的要求上,從客戶的角度來看,最嚴掘如重的錯誤是軟體不能滿足要求。有時候軟體產品的測試結果是完美的,但並不是客戶最終想要的產品,所以軟體產品的開發是失敗的,測試工作沒有意義。因此,測試應該根據客戶的需求配置環境,並根據客戶的使用習慣對結果進行測試和評估。
2.應該盡快進行測試
軟體錯誤存在於軟體生命周期的各個階段,所以測試要盡早進行,軟體測試要貫穿軟體生命周期的各個階段,這樣測試人員才能盡早發現和預防錯誤,降低錯誤修復的成本。盡早進行測試將有助於測試人員了解軟體產品的需求和設計,從而預測測試的難度和風險,制定完善的計劃和方案,提高測試效率。
3.詳盡的測試是不可能的
由於時間和資源的限制,不可能完全測試(各種輸入輸出的所有組合)。測試人員可以根據測試的風險和優先順序來確定測試的重點,從而控制測試的工作量,在測試成本、風險和收益之間取得平衡。
4.遵循足夠好原則
足夠好原則是指測試的投入和產出要適當權衡,形成一個充分的質量評價過程,這個過程是以測試成本為基礎的。測試不足不能保證軟體產品的質量,但是過度的測試投入會造成資源的浪費。隨著測試資源的增加,測試產出也隨之增加,但當投入達到一定比例後,測試效果並不會明顯增強。因此,測試的投入要根據實際需求和產品質量來考慮,最好能讓測試的投入和產出達到一個足夠好的狀態。
5.測試缺陷應符合二八定理
缺陷的二八定理也叫帕累托原理和缺陷聚類效應。一般80%的軟體缺陷集中在20%的模塊中櫻散春,缺陷分布不均勻。所以在測試的時候,要抓住主要矛盾。如果我們發現某些模塊比其他模塊有更多的缺陷,我們應該投入更多的人力和精力來脊耐測試這些模塊,以提高測試效率。
❾ 軟體測試是什麼
問題一:什麼是軟體測試? 軟體測試定義是:為了發現程序中的錯誤而執行程序的過程
它是幫助識別開發完成(中間或最終的版本)的計算機軟體(整體或部分)的正確度(correctness) 、完全度(pleteness)和質量(quality)的軟體過程;是SQA(software quality assurance)的重要子域。
軟體測試的目標:
(1)測試是為了發現程序中的錯誤而執行程序的過程;
(2)好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案;
(3)成功的測試是發現了至今為止尚未發現的錯誤的測試。
軟體測試的內容:
軟體測試主要工作內容是驗證(verification)和確認( validation ),下面分別給出其概念:
驗證(verification)是保證軟體正確地實現了一些特定功能的一系列活動,即保證軟體做了你所期望的事情。(Do the right thing)
1.確定軟體生存周期中的一個給定階段的產品是否達到前階段確立的需求的過程;
2.程序正確性的形式證明,即採用形式理論證明程序符號設一計規約規定的過程;
3.評市、審查、測試、檢查、審計等各類活動,或對某些項處理、服務或文件等是否和規定的需求相一致進行判斷和提出報告。
確認(validation)是一系列的活動和過程,目的是想證實在一個給定的外部環境中軟體的邏輯正確性。即保證軟體以正確的方式來做了這個事件(Do it right)
1.靜態確認,不在計算機上實際執行程序,通過人工或程序分析來證明軟體的正確性;
2.動態確認,通過執行程序做分析,測試程序的動態行為,以證實軟體是否存在問題。
軟體測試的對象不僅僅是程序測試,軟體測試應該包括整個軟體開發期問各個階段所產生的文檔,如需求規格說明、概要設計文檔、詳細設計文檔,當然軟體測試的主要對象還是源程序。
從不同的角度出發,軟彎如件測試可以劃分為不同的分類:
從是否關心軟體內部結構和具體實現的角度劃分
A.白盒測試
B.黑盒測試
C.灰盒測試
從是否執行程序的角度
A.靜態測試
B.動態測試。
從軟體開發的過程按階段劃分有
A.單元測試
B.集成測試
C.確認測試
D.驗收測試
E.系統測試
問題二:軟體測試主要做什麼工作? 顧名思義,主要工作就是測試軟體,但是測試前的測試需求、編寫測試計劃、編寫測試用例,測試後的編寫測試總結報態鬧拿告等,也是必須要做的。
測試軟體又為手動測試和自動測試,自動測試指用測試工具對軟體進行測試。
最後,軟體測試的定義是為了找出軟體中的bug而運行軟體的過程;
說了這些,你明白了吧。
問題三:軟體測試這個行業一般做什麼? 以下是軟體測試工程師的日常工作:
1. 書寫測試計劃
2. 審核測試計劃,未通過返回第一步
3. 書寫測試用例;
4. 審核測試用例,未通過返回第三步
5. 測試人員按照測試用例逐項進行測試活動,並且將測試結果填寫在測試報告上;(測試報告必須覆蓋所有測試用例)
6. 測試過程中發現bug,將bug填寫在bugzilla上發給集成部經理;(bug狀態NEW)
7. 集成部經理接到bugzilla發過來的bug
7.1 對於明顯的並且可以立刻解決的bug,將bug發給開發人員;(bug狀態ASSIGNED);
7.2 對於不是帆搭bug的提交,集成部經理通知測試設計人員和測試人員,對相應文檔進行修改; (bug狀態RESOLVED,決定設置為INVALID);
7.3 對於目前無法修改的,將這個bug放到下一輪次進行修改;(bug狀態RESOLVED,決定設置為REMIND)
8. 開發人員接到發過來的bug立刻修改;(bug狀態RESOLVED,決定設置為FIXED)
9. 測試人員接到bugzilla發過來的錯誤更改信息,應該逐項復測,填寫新的測試報告(測試報告必須覆蓋上一次中所有REOPENED的測試用例);
10. 如果復測有問題返回第六步(bug狀態REOPENED)
11. 否則關閉這項BUG(bug狀態CLOSED)
12. 本輪測試中測試用例中有95%一次性通過測試,結束測試任務;
13. 本輪測試中發現的錯誤有98%經過修改並且通過再次測試(即bug狀態CLOSED),返回第五步進行新的一輪測試;
14. 測試任務結束後書寫測試總結報告;
15. 正規測試結束進入非正規測試,首先是ALPHA測試,請公司里其他非技術人員以用戶角色使用系統。發現bug通知測試人員,測試人員以正規流程處理bug事件;
16. 然後是BETA測試,請用戶代表進行測試。發現bug通知測試人員,測試人員以正規流程處理bug事件。
問題四:軟體測試的重要性是什麼? 保證軟體的質量
問題五:什麼是軟體測試? 簡單的說他是軟體生產過程中的質量管理者,其不但要對軟體產品最後的功能、性能負責,而且從軟體的「需求分析」、「結構設計」階段以及文檔規范等諸多方面就開始對軟體的質量加以保障,使生產出來的軟體的功能達到設計之初的要求,讓用戶用上高質量的軟體。可見軟體測試工程師的重要性了,隨著我國加入WTO及國內軟體企業的日益成熟和壯大,軟體測試工程師在業界的地位已經變得越來越重要。
問題六:軟體測試的目的是什麼 現在很多人都發現了軟體測試這個前景待遇都很不錯的行業,那麼究竟有人多人知道自己每天工作的目的是什麼呢?作為一個軟體測試員,自己又怎樣的價值,自己做的工作為公司甚至為社會會帶來怎樣的影響和效果呢?這樣的問題你有沒有認真的思考過呢?從主觀的角度上這個問題是很難回答的,所以我們現在列舉一下我們經常聽到的對這個問題的回答。
軟體測試的目的是盡可能發現並改正被測試軟體中的錯誤,提高軟體的可靠性。
,這個定義聽起來很正確,但用它來指導測試會帶來很多問題。比如有的組織用發現的bug數來衡量測試人員的業績,其實這就是這種測試目的論在後面作祟,其結果如何呢:其一,有一些不夠敬業的測試人員會找來一些無關痛癢的bug來充數,結果許多時間會被浪費在這些無關痛癢的bug上(其實應該修復,何時修復,嚴重程度是什麼,優先順序是什麼,等等);其二,測試人員會花很大力氣設計一些復雜的測試用例去發現一些迄今尚未發現的缺陷,而不關心這些缺陷是否在實際用戶的使用過程當中是否會發生,從而浪費了大量的寶貴時間。究其根源,就是因為對測試目的的這種錯誤理解造成的,為什麼這么說呢?因為軟體里bug的數量是無從估計的,那麼如果測試的目的是為了找bug
,那麼測試工作將變成一項無法完成也無法衡量進度而且部分無效的工作(因為有些bug在實際的運行過程當中根本不會發生)。
測試的目的就是為了保證軟體質量
,這個定義也是看似正確,但實際上,混淆了測試和質量保證工作的邊界。軟體質量要素有很多,包括:
Understandability、Conciseness、Portability、Consistency、Maintainability、Testability、Usability、Structures、Efficiency、Security等等,所以,軟體質量保證和測試其實關注的方向是不同的。
使用人工或自動手段來運行或測定某個系統的過程,其目的在於檢驗它是否滿足規定的需求或是弄清預期結果與實際結果之間的差別。
所以,簡言之,測試的目的應該是驗證需求,
bug(預期結果與實際結果之間的差別)是這個過程中的產品而非目標。測試人員應該象工兵一樣,在大部隊(客戶)預期前進的方向上探雷、掃雷(bug)
,而不需要去關心那些根本沒有人會去碰的地雷。衡量一個測試人員應該去衡量他/她測試了多少需求(測試工作量)
問題七:軟體測試是什麼以及目的 軟體測試是軟體開發過程的重要組成部分,是用來確認一個程序的品質或性能是否符合開發之前所提出的一些要求。軟體測試就是在軟體投入運行前,對軟體需求分析、設計規格說明和編碼的最終復審,是軟體質量保證的關鍵步驟。軟體測試是為了發現錯誤而執行程序的過程。軟體測試在軟體生存期中橫跨兩個階段:通常在編寫出每一個模塊之後就對它做必要的測試(稱為單元測試)。編碼和單元測試屬於軟體生存期中的同一個階段。在結束這個階段後對軟體系統還要進行各種綜合測試,這是軟體生存期的另一個獨立階段,即測試階段。軟體測試的目的軟體測試的目的,第一是確認軟體的質量,其一方面是確認軟體做了你所期望的事情(Do the right thing),另一方面是確認軟體以正確的方式來做了這個事件(Do it right)。第二是提供信息,比如提供給開發人員或程序經理的反饋信息,為風險評估所准備的信息。第三軟體測試不僅是在測試軟體產品的本身,而且還包括軟體開發的過程。如果一個軟體產品開發完成之後發現了很多問題,這說明此軟體開發過程很可能是有缺陷的。因此軟體測試的第三個目的是保證整個軟體開發過程是高質量的。軟體質量是由幾個方面來衡量的:一、在正確的時間用正確的的方法把一個工作做正確(Doing the right things right at the right time.)。二、符合一些應用標準的要求,比如不同國家的用戶不同的操作習慣和要求,項目工程中的可維護性、可測試性等要求。三、質量本身就是軟體達到了最開始所設定的要求,而代碼的優美或精巧的技巧並不代表軟體的高質量(Quality is defined as conformance to requirements, not as 「goodness」 or 「elegance」.)。四、質量也代表著它符合客戶的需要(Quality also means 「meet customer needs」.)。作為軟體測試這個行業,最重要的一件事就是從客戶的需求出發,從客戶的角度去看產品,客戶會怎麼去使用這個產品,使用過程中會遇到什麼樣的問題。只有這些問題都解決了,軟體產品的質量才可以說是上去了。
問題八:軟體測試的工作流程是什麼?? 軟體測試的測試流程有1、制定測試計劃2、編輯測試用例3、執行測試用例4、發現並提交BUG
5、開發組修正BUG6、對已修正BUG進行返測7、修正完成的BUG將狀態置為已關閉,未正確修正的BUG重新激活,參考什麼是軟體測試和軟體測試原則note.you/...e=note
問題九:什麼是軟體測試 軟體測試(英語:software testing),描述一種用來促進鑒定軟體的正確性、完整性、安全性和質量的過程。換句話說,軟體測試是一種實際輸出與預期輸出間的審核或者比較過程。軟體測試的經典定義是:在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。
它的目的就只有一個,通過在系統上線前通過技術手段,盡可能找到軟體在不同維度上存在的缺陷,使開發團隊進行修改,以期在上線後,盡可能少的存在缺陷,提升軟體、項目的質量。
註:保證質量的手段有很多,而軟體測試是其中重要的手段之一。
問題十:軟體測試是做什麼的? 軟體測試就是利用測試工具按照測試方案和流程對產品進行功能和性能測試,甚至根據需要編寫不同的測試工具,設計和維護測試系統,對測試方案可能出現的問題進行分析和評估。執行測試用例後,需要跟蹤故障,以確保開發的產品適合需求。
使用人工或者自動手段來運行或測試某個供統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別. 它是幫助識別開發完成(中間或最終的版本)的計算機軟體(整體或部分)的正確度(correctness) 、完全度(pleteness)和質量(quality)的軟體過程;是SQA(software quality assurance)的重要子域。
Grenford J.Myers曾對軟體測試的目的提出過以下觀點: (1)測試是為了發現程序中的錯誤而執行程序的過程; (2)好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案; (3)成功的測試是發現了至今為止尚未發現的錯誤的測試。
然而,這種觀點指出測試是以查找錯誤為中心,而不是為了演示軟體的正確功能.但是只從字面意思理解,可能會產生誤導,認為發現錯誤是軟體測試的唯一目的,查找不出錯誤的測試就是沒有價值的測試,實際上並非如此!
(1)測試並不僅僅是為了找出錯誤.通過分析錯誤產生的原因和錯誤的發生趨勢,可以幫助項目管理者 發現當前軟體開發過程中的缺陷,以便及時改進;
(2)這種分析也能幫助測試人員設計出有針對性的測試方法,改善測試的效率和有效性;
(3)沒有發現錯誤的測試也是有價值的,完整的測試是評定軟體質量的一種方法 軟體測試完整分類,參見:軟體測試的完整分類
以上的都是官話!其實說白了,軟體測試就是在開發人員做出軟體投放市場前,盡可能早的找出軟體當中所存在的BUG!因為任何軟體在理論上來說都是存在問題的,都不是完美的!盡早的找出漏洞,公司的損失也就越低!這也就是軟體測試人員越來越受重視的原因!
其實軟體測試是一種相當乏味枯燥的工作,一般面公司都比較偏向稍微內向的人,另外測試人員還要具備相當的口才,方便與開發人員還有客戶交流!