软件工程软件产品质量要求与评价_软件质量保证(Quality Assurance)中常见的活动...
質(zhì)量保證QA關(guān)注在軟件產(chǎn)品生成的整個(gè)過(guò)程,主要驗(yàn)證軟件產(chǎn)品開(kāi)發(fā)過(guò)程中相關(guān)實(shí)施過(guò)程的完整性、一致性和有效性,確保開(kāi)發(fā)活動(dòng)和測(cè)試活動(dòng)等遵循正確的過(guò)程,為軟件產(chǎn)品達(dá)到合適的質(zhì)量級(jí)別提供信心。為了實(shí)現(xiàn)過(guò)程的可重用性和持續(xù)改進(jìn),組織往往會(huì)把過(guò)程進(jìn)行標(biāo)準(zhǔn)化,例如:定義子過(guò)程、過(guò)程的里程碑點(diǎn)、過(guò)程的階段輸入和輸出、每個(gè)時(shí)間點(diǎn)需要完成的工作等。軟件產(chǎn)品隨著生命周期不斷增加和成型,想要修復(fù)其在早期引入的缺陷,時(shí)間和成本都將成倍增加。而質(zhì)量保證QA的基本假設(shè)是過(guò)程質(zhì)量決定了軟件產(chǎn)品質(zhì)量。當(dāng)過(guò)程正確開(kāi)展時(shí),確保過(guò)程的每個(gè)階段得到了良好的遵循,每個(gè)階段引入的缺陷盡量在本階段得到發(fā)現(xiàn)和修復(fù),最大程度的實(shí)現(xiàn)缺陷的階段遏制能力。同時(shí),在當(dāng)前階段發(fā)現(xiàn)和修復(fù)的缺陷,有助于后續(xù)階段的缺陷預(yù)防。另外,通過(guò)根本原因分析等技術(shù)消除在軟件工作產(chǎn)品中引入缺陷的根本原因,或者在適當(dāng)時(shí)候開(kāi)展回顧會(huì)議以總結(jié)經(jīng)驗(yàn)和教訓(xùn),都有助于過(guò)程改進(jìn),從而可以在將來(lái)更好的實(shí)現(xiàn)質(zhì)量保證。
對(duì)于軟件開(kāi)發(fā)項(xiàng)目而言,控制是十分重要的管理活動(dòng)。軟件質(zhì)量保證(Software Quality Insurance,SQA)是在軟件過(guò)程中的每一步都進(jìn)行的“保護(hù)性活動(dòng)”。SQA主要由基于非執(zhí)行的測(cè)試(也稱為評(píng)審)、基于執(zhí)行的測(cè)試(即通常所說(shuō)的測(cè)試)和程序正確性證明。軟件評(píng)審是最為重要的SQA活動(dòng)之一。它的作用是,在發(fā)現(xiàn)及改正錯(cuò)誤的成本相對(duì)較小時(shí)就及時(shí)發(fā)現(xiàn)并排除錯(cuò)誤。審查和走查是進(jìn)行正式技術(shù)評(píng)審的兩類具體方法。審查過(guò)程不僅步數(shù)比走審多,而且每個(gè)步驟都是正規(guī)的。由于在開(kāi)發(fā)大型軟件過(guò)程中所犯的錯(cuò)誤絕大數(shù)是規(guī)格說(shuō)明錯(cuò)誤或設(shè)計(jì)錯(cuò)誤,而正式的技術(shù)評(píng)審發(fā)現(xiàn)這兩類錯(cuò)誤的有效性高達(dá)75%,因此是非常有效的軟件質(zhì)量保證方法。軟件質(zhì)量保證滲透到需求、設(shè)計(jì)、編碼、發(fā)布、維護(hù)、配置管理、文檔的各個(gè)環(huán)節(jié),每一個(gè)環(huán)節(jié)工作做到位,都會(huì)減少軟件質(zhì)量風(fēng)險(xiǎn)。如果公司比較大,那么QA是一個(gè)專門的崗位,是區(qū)別于測(cè)試的,測(cè)試的重點(diǎn)是在找軟件BUG,而QA的重點(diǎn)是發(fā)現(xiàn)過(guò)程中的質(zhì)量問(wèn)題,尋求改進(jìn)方法和優(yōu)化流程,避免以后犯同類錯(cuò)誤。好的QA一定是一個(gè)資深的設(shè)計(jì)高手,否則只能做到文檔稽核、走走流程、意義不大。軟件質(zhì)量保證技術(shù),主要包括兩類方法:一是事后控制,以調(diào)試、測(cè)試、技術(shù)復(fù)審等以不出質(zhì)量缺陷為目的技術(shù)方法,其主要形式是找出缺陷所在;一種是事前控制,主要形似是以預(yù)防為主,通過(guò)標(biāo)準(zhǔn)化、過(guò)程管理等如CMM,ISO以控制質(zhì)量缺陷為目的的管理方法。以技術(shù)方法解決問(wèn)題有一定的局限性,而標(biāo)準(zhǔn)化的指定只能告訴做什么,而不是告訴怎么做,而相對(duì)于“事后活動(dòng)”,質(zhì)量保證中更重要的是“事先預(yù)防”。因此,軟件的質(zhì)量保證也應(yīng)該構(gòu)筑以用戶滿意為中心,能防患于未然的質(zhì)量保證體系。 盡管軟件質(zhì)量越來(lái)越受重視,也出現(xiàn)了不少旨在保證質(zhì)量、指導(dǎo)軟件開(kāi)發(fā)的標(biāo)準(zhǔn)和過(guò)程模型(如瀑布模型、RUP模型、CMM等),但這些標(biāo)準(zhǔn)、方法在軟件質(zhì)量保證上只提供了原則性的指導(dǎo),人們?cè)谡归_(kāi)軟件開(kāi)發(fā)時(shí)普遍感到缺乏得心應(yīng)手的工具。因此,順沿著軟件工程提出的思路和SCOR模型給我們的啟示,我們借用在生產(chǎn)質(zhì)量領(lǐng)域中成熟的質(zhì)量控制保證技術(shù)和管理觀念如QFD、FMEA等方法應(yīng)用到軟件產(chǎn)品中去。軟件質(zhì)量保證(SQA)是一種應(yīng)用于整個(gè)軟件過(guò)程的活動(dòng),SQA小組的職責(zé)是輔助軟件團(tuán)隊(duì)實(shí)現(xiàn)高質(zhì)量的軟件產(chǎn)品。其活動(dòng)內(nèi)容包括以下幾個(gè)方面。
①為項(xiàng)目準(zhǔn)備SQA計(jì)劃。
②參與開(kāi)發(fā)項(xiàng)目的軟件過(guò)程描述,而非負(fù)責(zé)開(kāi)發(fā)項(xiàng)目的軟件過(guò)程描述。
③評(píng)審各項(xiàng)軟件工程活動(dòng),以驗(yàn)證其是否符合定義的軟件過(guò)程。
④審核指定的軟件工作產(chǎn)品,以驗(yàn)證是否符合定義的軟件過(guò)程中的相應(yīng)部分。
⑤確保軟件工作及工作產(chǎn)品中出現(xiàn)的偏差已文檔化,并且按照文檔化的規(guī)程進(jìn)行了處理。
⑥記錄所有不符合規(guī)范的部分,并報(bào)告給高層管理者。
⑦協(xié)調(diào)變更控制和變更管理,并幫助收集和分析軟件度量信息。
軟件質(zhì)量不是SQA完全負(fù)責(zé),軟件開(kāi)發(fā)中有許多參與者負(fù)有保證軟件質(zhì)量的責(zé)任,包括軟件工程師、項(xiàng)目管理者、客戶、銷售人員和SQA的成員。SQA小組充當(dāng)客戶在公司內(nèi)部的代表,必須以客戶的觀點(diǎn)來(lái)看待軟件。SQA小組的職責(zé)是輔助軟件工程小組得到高質(zhì)量的最終產(chǎn)品,為此制定了一組有關(guān)質(zhì)量保證中的計(jì)劃、監(jiān)督、記錄、分析及報(bào)告的SQA活動(dòng),這些活動(dòng)由一個(gè)獨(dú)立的SQA小組執(zhí)行(或推動(dòng))。軟件工程師采用可靠的技術(shù)方法和措施,進(jìn)行正式的技術(shù)評(píng)審,執(zhí)行計(jì)劃周密的軟件測(cè)試來(lái)考慮質(zhì)量問(wèn)題,這不是SQA的工作。軟件測(cè)試與軟件質(zhì)量(QA)的區(qū)別
質(zhì)量保證(QA):主要工作是通過(guò)預(yù)防,檢查與改進(jìn)來(lái)保證軟件質(zhì)量。它所關(guān)注的是軟件質(zhì)量的檢查與測(cè)量。著眼軟件開(kāi)發(fā)活動(dòng)中的過(guò)程、步驟及產(chǎn)物,而不是對(duì)軟件進(jìn)行剖析進(jìn)而找出問(wèn)題。
軟件測(cè)試:測(cè)試關(guān)心的不是過(guò)程的活動(dòng),而是對(duì)過(guò)程的產(chǎn)物以及開(kāi)發(fā)出的軟件進(jìn)行剖析。測(cè)試人員要“執(zhí)行”軟件,對(duì)過(guò)程中的產(chǎn)物——開(kāi)發(fā)文檔和源代碼進(jìn)行走查,運(yùn)行,以找出問(wèn)題,報(bào)告質(zhì)量。測(cè)試人員也必須假設(shè)軟件存在問(wèn)題,所以所做的操作都是為了找出更多的問(wèn)題,而不僅僅驗(yàn)證每一件事是正確的。通過(guò)質(zhì)量控制和質(zhì)量保證活動(dòng),發(fā)現(xiàn)質(zhì)量工作中的薄弱環(huán)節(jié)和存在問(wèn)題,再采取針對(duì)性的質(zhì)量改進(jìn)措施,進(jìn)入新一輪的質(zhì)量管理PDCA循環(huán),以不斷獲得質(zhì)量管理的成效。
軟件測(cè)試模型是什么?
0)瀑布模型
What is the Waterfall Model?Waterfall model is a sequential model divided into different phases of software development activity. Each stage is designed for performing the specific activity during the SDLC phase. Testing phase in waterfall model starts only after implementation of the system is done.
Testing is done within the SDLC.
1) V模型
僅僅把測(cè)試過(guò)程作為在需求分析、系統(tǒng)設(shè)計(jì)及編碼之后的一個(gè)階段 ;
忽視了測(cè)試對(duì)需求分析,系統(tǒng)設(shè)計(jì)的驗(yàn)證,一直到后期的驗(yàn)收測(cè)試才被發(fā)現(xiàn)。(缺陷)
What is V- Model?V- model is an extension of the waterfall model. It is pronounced as the "vee" model. Unlike the waterfall model, In V-model, there is a corresponding testing phase for each software development phase. Testing in V-model is done in parallel to SDLC stage.
Testing is done as a subproject of SDLC.
2) W模型
測(cè)試和開(kāi)發(fā)活動(dòng)也保持著一種線性的前后關(guān)系,上一階段完全結(jié)束,才可正式開(kāi)始下一個(gè)階段工作。這樣就無(wú)法支持迭代的開(kāi)發(fā)模型。(缺陷)
測(cè)試的活動(dòng)與軟件開(kāi)發(fā)同步進(jìn)行;測(cè)試的對(duì)象不僅僅是程序,還包括需求和設(shè)計(jì); 盡早發(fā)現(xiàn)軟件缺陷可降低軟件開(kāi)發(fā)的成本。(優(yōu)點(diǎn))
Paul Herzlich introduced the W-Model. In W Model, those testing activities are covered which are skipped in V Model.The ‘W’ model illustrates that the Testing starts from day one of the of the project initiation.
If you see the below picture, 1st “V” shows all the phases of SDLC and 2nd “V” validates the each phase. In 1st “V”, every activity is shadowed by a test activity. The purpose of the test activity specifically is to determine whether the objectives of that activity have been met and the deliverable meets its requirements. W-Model presents a standard development life-cycle with every development stage mirrored by a test activity. On the left hand side, typically, the deliverable of a development activity (for example, write requirements) is accompanied by a test activity test the requirements and so on.Fig 1: W ModelFig 2: W ModelConclusion– V model only shows dynamic test cycles, but W models gives a broader view of testing. the connection between the various test stages and the basis for the test is clear with W Model (which is not clear in V model).
3) X模型
X模型也是對(duì)V模型的改進(jìn),X模型提出針對(duì)單獨(dú)的程序片段進(jìn)行相互分離的編碼和測(cè)試,此后通過(guò)頻繁的交接,通過(guò)集成最終合成為可執(zhí)行的程序。
X模型的左邊描述的是針對(duì)單獨(dú)程序片段所進(jìn)行的相互分離的編碼和測(cè)試,此后將進(jìn)行頻繁的交接,通過(guò)集成最終成為可執(zhí)行的程序,然后再對(duì)這些可執(zhí) 行程序進(jìn)行測(cè)試。己通過(guò)集成測(cè)試的成品可以進(jìn)行封裝并提交給用戶,也可以作為更大規(guī)模和范圍內(nèi)集成的一部分。多根并行的曲線表示變更可以在各個(gè)部分發(fā)生。 由圖中可見(jiàn),X模型還定位了探索性測(cè)試,這是不進(jìn)行事先計(jì)劃的特殊類型的測(cè)試,這一方式往往能幫助有經(jīng)驗(yàn)的測(cè)試人員在測(cè)試計(jì)劃之外發(fā)現(xiàn)更多的軟件錯(cuò)誤。但 這樣可能對(duì)測(cè)試造成人力、物力和財(cái)力的浪費(fèi),對(duì)測(cè)試員的熟練程度要求比較高。
4) H模型
H模型中, 軟件測(cè)試過(guò)程活動(dòng)完全獨(dú)立,貫穿于整個(gè)產(chǎn)品的周期,與其他流程并發(fā)地進(jìn)行,某個(gè)測(cè)試點(diǎn)準(zhǔn)備就緒時(shí),就可以從測(cè)試準(zhǔn)備階段進(jìn)行到測(cè)試執(zhí)行階段。軟件測(cè)試可以盡早的進(jìn)行,并且可以根據(jù)被測(cè)物的不同而分層次進(jìn)行。
H模型測(cè)試活動(dòng)獨(dú)立存在,貫穿整個(gè)產(chǎn)品周期這個(gè)示意圖演示了在整個(gè)生產(chǎn)周期中某個(gè)層次上的一次測(cè)試“微循環(huán)”。圖中標(biāo)注的其它流程可以是任意的開(kāi)發(fā)流程,例如設(shè)計(jì)流程或者編碼流程。也就是說(shuō), 只要測(cè)試條件成熟了,測(cè)試準(zhǔn)備活動(dòng)完成了,測(cè)試執(zhí)行活動(dòng)就可以進(jìn)行了。
H模型揭示了一個(gè)原理:軟件測(cè)試是一個(gè)獨(dú)立的流程,貫穿產(chǎn)品整個(gè)生命周期,與其他流程并發(fā)地進(jìn)行。H模型指出軟件測(cè)試要盡早準(zhǔn)備, 盡早執(zhí)行。不同的測(cè)試活動(dòng)可以是按照某個(gè)次序先后進(jìn)行的,但也可能是反復(fù)的,只要某個(gè)測(cè)試達(dá)到準(zhǔn)備就緒點(diǎn),測(cè)試執(zhí)行活動(dòng)就可以開(kāi)展
H模型示意圖
H模型的優(yōu)點(diǎn):
>開(kāi)發(fā)的H模型揭示了軟件測(cè)試除測(cè)試執(zhí)行外,還有很多工作;
>軟件測(cè)試完全獨(dú)立,貫穿整個(gè)生命周期,且與其他流程并發(fā)進(jìn)行;
>軟件測(cè)試活動(dòng)可以盡早準(zhǔn)備、盡早執(zhí)行,具有很強(qiáng)的靈活性;
>軟件測(cè)試可以根據(jù)被測(cè)物的不同而分層次、分階段、分次序的執(zhí)行,同時(shí)也是可以被迭代的。
H模型的缺點(diǎn):
>管理型要求高:由于模型很靈活,必須要定義清晰的規(guī)則和管理制度,否則測(cè)試過(guò)程將非常難以管理和控制;
>技能要求高:H模型要求能夠很好的定義每個(gè)迭代的規(guī)模,不能太大也不能太小;
>測(cè)試就緒點(diǎn)分析困難:測(cè)試很多時(shí)候,你并不知道測(cè)試準(zhǔn)備到什么時(shí)候是合適的,就緒點(diǎn)在哪里,就緒點(diǎn)的標(biāo)準(zhǔn)是什么,這就對(duì)后續(xù)的測(cè)試執(zhí)行的啟動(dòng)帶來(lái)很大困難;
>對(duì)于整個(gè)項(xiàng)目組的人員要求非常高:在很好的規(guī)范制度下,大家都能高效的工作,否則容易混亂。例如:你分了一個(gè)小的迭代,但是因?yàn)槿藛T技能不足,使得無(wú)法有效完成,那么整個(gè)項(xiàng)目就會(huì)受到很大的干擾。
驗(yàn)證與確認(rèn)過(guò)程使用能夠定位缺陷并便于以后改正的測(cè)試技術(shù)直接處理軟件產(chǎn)品質(zhì)量問(wèn)題。 驗(yàn)證與確認(rèn)過(guò)程確定某一開(kāi)發(fā)和維護(hù)括動(dòng)的產(chǎn)品是否符合活動(dòng)的需求,尾終的軟件產(chǎn)品是否達(dá)到其意圖并滿足用戶需求。驗(yàn)證過(guò)程試圖確保活動(dòng)的輸出產(chǎn)品已經(jīng)被正確制造,即活動(dòng)的輸出產(chǎn)品滿足前面活動(dòng)施加的規(guī)范說(shuō)明;確認(rèn)過(guò)程則試圖確保建造了正確的產(chǎn)品,即產(chǎn)品滿足其特定的目的。
評(píng)審與審計(jì)過(guò)程包括:管理評(píng)審、技術(shù)評(píng)審、檢查、走查、審計(jì)等。管理評(píng)審的目的是監(jiān)控進(jìn)展,決定計(jì)劃和進(jìn)度的狀態(tài),確認(rèn)需求及其系統(tǒng)分配,或評(píng)價(jià)用于達(dá)到目標(biāo)適應(yīng)性的管理方法的有效性。它們支持有關(guān)軟件項(xiàng)目期間需求的變更和其他變更活動(dòng)。
技術(shù)評(píng)審的目的是評(píng)價(jià)軟件產(chǎn)品。以確定其對(duì)使用意圖的適合性,目標(biāo)是識(shí)別規(guī)范說(shuō)明和標(biāo)準(zhǔn)的差異,并向管理提供證據(jù),以表明產(chǎn)品是否滿足規(guī)范說(shuō)明并遵從標(biāo)準(zhǔn),而且可以控制變更。檢查的目的是檢測(cè)和識(shí)別軟件產(chǎn)品異常。一次檢查通常針對(duì)產(chǎn)品的一個(gè)相對(duì)小的部分。發(fā)現(xiàn)的任何異常都要記錄到文檔中,并提交。軟件審計(jì)的目的是提供軟件產(chǎn)品和過(guò)程對(duì)于可應(yīng)用的規(guī)則、標(biāo)準(zhǔn)、指南、計(jì)劃和流程的遵從性的獨(dú)立評(píng)價(jià)。審計(jì)是正式組織的活動(dòng),識(shí)別違例情況,并產(chǎn)生一個(gè)報(bào)告,采取更正性行動(dòng)。
相關(guān)資料:
鄭文強(qiáng)Tester:質(zhì)量保證QA與質(zhì)量控制QC?zhuanlan.zhihu.com謳歌:淺談如何保證軟件質(zhì)量目標(biāo)【專題】?zhuanlan.zhihu.comJerryWang:SAP成都研究院姚瑤:軟件質(zhì)量保證工作的變遷?zhuanlan.zhihu.com譚老師:淺談質(zhì)量管理體系——質(zhì)量保證(QA)篇?zhuanlan.zhihu.com怎么把質(zhì)量保證(QA)的工作做好??www.zhihu.com李育英:軟件測(cè)試專業(yè)術(shù)語(yǔ)分享~?zhuanlan.zhihu.com質(zhì)量保證與質(zhì)量控制的概念和區(qū)別是什么?特別是在環(huán)境監(jiān)測(cè)領(lǐng)域內(nèi)。?www.zhihu.com微信號(hào)zlrqbj3:如何打造一流的質(zhì)量保證部門??zhuanlan.zhihu.com軟件質(zhì)量保證的實(shí)踐?www.sohu.com軟件質(zhì)量保證_百度百科?baike.baidu.comV Model to W Model | W Model in SDLC Simplified?softwaretestingtimes.com總結(jié)
以上是生活随笔為你收集整理的软件工程软件产品质量要求与评价_软件质量保证(Quality Assurance)中常见的活动...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 柴油车加了车仆上坡冒黑烟?
- 下一篇: R标志是什么牌子车多少钱?