教培機(jī)構(gòu)入駐教育寶平臺(tái)、搭建私域流量運(yùn)營系統(tǒng)及官網(wǎng)
錄播課程和知識(shí)付費(fèi)機(jī)構(gòu)入駐教育寶網(wǎng)課平臺(tái)
公立私立幼兒園、中小學(xué)、職業(yè)學(xué)校入駐教育寶學(xué)校庫
研學(xué)、周末活動(dòng)、冬夏令營機(jī)構(gòu)入駐研學(xué)活動(dòng)子平臺(tái)
軟件測試(英文名:Software Testing),描述一種用來促進(jìn)鑒定軟件的正確性、完整性、安全性和質(zhì)量的過程。其經(jīng)典定義為:在規(guī)定的條件下對程序進(jìn)行操作,以發(fā)現(xiàn)程序錯(cuò)誤,衡量軟件質(zhì)量,并對其是否能滿足設(shè)計(jì)要求進(jìn)行評估的過程。換句話說,軟件測試是一種實(shí)際輸出與預(yù)期輸出之間的審核或者比較過程。
一、測試?yán)碚?/font>
軟件測試是使用人工操作或者軟件自動(dòng)運(yùn)行的方式來檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別的過程。
它是幫助識(shí)別開發(fā)完成(中間或最終的版本)的計(jì)算機(jī)軟件(整體或部分)的正確度(correctness) 、完全度(completeness)和質(zhì)量(quality)的軟件過程;是SQA(software quality assurance)的重要子域。
Glenford J.Myers曾對軟件測試的目的提出過以下觀點(diǎn):
(1)測試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程。
(2)好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測試方案。
(3)成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測試。
(4)測試并不僅僅是為了找出錯(cuò)誤。通過分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的發(fā)生趨勢,可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前軟件開發(fā)過程中的缺陷,以便及時(shí)改進(jìn)。
(5)這種分析也能幫助測試人員設(shè)計(jì)出有針對性的測試方法,改善測試的效率和有效性。
(6)沒有發(fā)現(xiàn)錯(cuò)誤的測試也是有價(jià)值的,完整的測試是評定軟件質(zhì)量的一種方法。
(7)另外,根據(jù)測試目的的不同,還有回歸測試、壓力測試、性能測試等,分別為了檢驗(yàn)修改或優(yōu)化過程是否引發(fā)新的問題、軟件所能達(dá)到處理能力和是否達(dá)到預(yù)期的處理能力等。
二、測試原則
1,測試應(yīng)該盡早進(jìn)行,*好在需求階段就開始介入,因?yàn)?嚴(yán)重的錯(cuò)誤不外乎是系統(tǒng)不能滿足用戶的需求。
2,程序員應(yīng)該避免檢查自己的程序,軟件測試應(yīng)該由第三方來負(fù)責(zé)。
3,設(shè)計(jì)測試用例時(shí)應(yīng)考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下還要制造極端狀態(tài)和意外狀態(tài),如網(wǎng)絡(luò)異常中斷、電源斷電等。
4,應(yīng)該充分注意測試中的群集現(xiàn)象。
5,對錯(cuò)誤結(jié)果要進(jìn)行一個(gè)確認(rèn)過程。一般由A測試出來的錯(cuò)誤,一定要由B來確認(rèn)。嚴(yán)重的錯(cuò)誤可以召開評審會(huì)議進(jìn)行討論和分析,對測試結(jié)果要進(jìn)行嚴(yán)格地確認(rèn),是否真的存在這個(gè)問題以及嚴(yán)重程度等。
6,制定嚴(yán)格的測試計(jì)劃。一定要制定測試計(jì)劃,并且要有指導(dǎo)性。測試時(shí)間安排盡量寬松,不要希望在極短的時(shí)間內(nèi)完成一個(gè)高水平的測試。
7,妥善保存測試計(jì)劃、測試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。
三、軟件測試誤區(qū)
(1)誤區(qū)之一:軟件開發(fā)完成后進(jìn)行軟件測試
人們一般認(rèn)為,軟件項(xiàng)目要經(jīng)過以下幾個(gè)階段:需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),軟件編碼,軟件測試,軟件發(fā)布。據(jù)此,認(rèn)為軟件測試只是軟件編碼后的一個(gè)過程。這是不了解軟件測試周期的錯(cuò)誤認(rèn)識(shí)。軟件測試是一個(gè)系列過程活動(dòng),包括軟件測試需求分析,測試計(jì)劃設(shè)計(jì),測試用例設(shè)計(jì),執(zhí)行測試。因此,軟件測試貫穿于軟件項(xiàng)目的整個(gè)生命過程。在軟件項(xiàng)目的每一個(gè)階段都要進(jìn)行不同目的和內(nèi)容的測試活動(dòng),以保證各個(gè)階段的正確性。軟件測試的對象不僅僅是軟件代碼,還包括軟件需求文檔和設(shè)計(jì)文檔。軟件開發(fā)與軟件測試應(yīng)該是交互進(jìn)行的,例如,單元編碼需要單元測試,模塊組合階段需要集成測試。如果等到軟件編碼結(jié)束后才進(jìn)行測試,那么,測試的時(shí)間將會(huì)很短,測試的覆蓋面將很不全面,測試的效果也將大打折扣。更嚴(yán)重的是如果此時(shí)發(fā)現(xiàn)了軟件需求階段或概要設(shè)計(jì)階段的錯(cuò)誤,如果要修復(fù)該類錯(cuò)誤,將會(huì)耗費(fèi)大量的時(shí)間和人力。
(2)誤區(qū)之二:軟件發(fā)布后如果發(fā)現(xiàn)質(zhì)量問題,那是軟件測試人員的錯(cuò)
這種認(rèn)識(shí)很打擊軟件測試人員的積極性。軟件中的錯(cuò)誤可能來自軟件項(xiàng)目中的各個(gè)過程,軟件測試只能確認(rèn)軟件存在錯(cuò)誤,不能保證軟件沒有錯(cuò)誤,因?yàn)閺母旧现v,軟件測試不可能發(fā)現(xiàn)全部的錯(cuò)誤。從軟件開發(fā)的角度看,軟件的高質(zhì)量不是軟件測試人員測出來的,是靠軟件生命周期的各個(gè)過程中設(shè)計(jì)出來的。出現(xiàn)軟件錯(cuò)誤,不能簡單地歸結(jié)為某一個(gè)人的責(zé)任,有些錯(cuò)誤的產(chǎn)生可能不是技術(shù)原因,可能來自于混亂的項(xiàng)目管理。應(yīng)該分析軟件項(xiàng)目的各個(gè)過程,從過程改進(jìn)方面尋找產(chǎn)生錯(cuò)誤的原因和改進(jìn)的措施。
(3)誤區(qū)之三:軟件測試要求不高,隨便找個(gè)人做都行
很多人都認(rèn)為軟件測試就是安裝和運(yùn)行程序,點(diǎn)點(diǎn)鼠標(biāo),按按鍵盤的工作。這是由于不了解軟件測試的具體技術(shù)和方法造成的。隨著軟件工程學(xué)的發(fā)展和軟件項(xiàng)目管理經(jīng)驗(yàn)的提高,軟件測試已經(jīng)形成了一個(gè)獨(dú)立的技術(shù),演變成一個(gè)具有巨大市場需求的行業(yè)。軟件測試技術(shù)不斷更新和完善,新工具,新流程,新測試設(shè)計(jì)方法都在不斷更新,需要掌握和學(xué)習(xí)很多測試知識(shí)。所以,具有編程經(jīng)驗(yàn)的程序員不一定是一名優(yōu)秀的測試工程師。軟件測試包括測試技術(shù)和管理兩個(gè)方面,完全掌握這兩個(gè)方面的內(nèi)容,需要很多測試實(shí)踐經(jīng)驗(yàn)和不斷學(xué)習(xí)的精神。
(4)誤區(qū)之四:軟件測試是測試人員的事情,與程序員無關(guān)
開發(fā)和測試是相輔相成的過程,需要軟件測試人員、程序員和系統(tǒng)分析師等保持密切的聯(lián)系,需要更多的交流和協(xié)調(diào),以便提高測試效率。另外,對于單元測試主要應(yīng)該由程序員完成,必要時(shí)測試人員可以幫助設(shè)計(jì)測試樣例。對于測試中發(fā)現(xiàn)的軟件錯(cuò)誤,很多需要程序員通過修改編碼才能修復(fù)。程序員可以通過有目的的分析軟件錯(cuò)誤的類型、數(shù)量,找出產(chǎn)生錯(cuò)誤的位置和原因,以便在今后的編程中避免同樣的錯(cuò)誤,積累編程經(jīng)驗(yàn),提高編程能力。
(5)誤區(qū)之五:項(xiàng)目進(jìn)度吃緊時(shí)少做些測試,時(shí)間富裕時(shí)多做測試
這是不重視軟件測試的表現(xiàn),也是軟件項(xiàng)目過程管理混亂的表現(xiàn),必然會(huì)降低軟件測試的質(zhì)量。一個(gè)軟件項(xiàng)目的順利實(shí)現(xiàn)需要有合理的項(xiàng)目進(jìn)度計(jì)劃,其中包括合理的測試計(jì)劃,對項(xiàng)目實(shí)施過程中的任何問題,都要有風(fēng)險(xiǎn)分析和相應(yīng)的對策,不要因?yàn)殚_發(fā)進(jìn)度的延期而簡單的縮短測試時(shí)間、人力和資源。因?yàn)榭s短測試時(shí)間帶來的測試不完整,對項(xiàng)目質(zhì)量的下降引起的潛在風(fēng)險(xiǎn),往往造成更大的浪費(fèi)??朔@種現(xiàn)象的*好辦法是加強(qiáng)軟件過程的計(jì)劃和控制,包括軟件測試計(jì)劃、測試設(shè)計(jì)、測試執(zhí)行、測試度量和測試控制。
(6)誤區(qū)之六:軟件測試是沒有前途的工作,只有程序員才是軟件高手
由于我國軟件整體開發(fā)能力比較低,軟件過程很不規(guī)范,很多軟件項(xiàng)目的開發(fā)都還停留在“作坊式”和“壘雞窩”階段。項(xiàng)目的成功往往靠個(gè)別全能程序員決定,他們負(fù)責(zé)總體設(shè)計(jì)和程序詳細(xì)設(shè)計(jì),認(rèn)為軟件開發(fā)就是編寫代碼,給人的印象往往是程序員是真正的牛人,具有很高的地位和待遇。因此,在這種環(huán)境下,軟件測試很不受重視,軟件測試人員的地位和待遇自然就很低了,甚至軟件測試變得可有可無。隨著市場對軟件質(zhì)量的不斷提高,軟件測試將變得越來越重要,相應(yīng)的軟件測試人員的地位和待遇將會(huì)逐漸提高。在軟件過程比較規(guī)范的大公司,軟件測試人員的數(shù)量和待遇與程序員沒有多大差別,優(yōu)秀測試人員的待遇甚至比程序員還要高。軟件測試將會(huì)成為一個(gè)具有很大發(fā)展前景的行業(yè),軟件測試大有前途,市場需要更多具有豐富測試技術(shù)和管理經(jīng)驗(yàn)的測試人員,他們同樣是軟件專家。
*文章內(nèi)容和圖片均來源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪除。
點(diǎn)贊
收藏
稍后學(xué)習(xí)規(guī)劃師會(huì)與您聯(lián)系,請保證手機(jī)暢通