使用簡(jiǎn)單示例進(jìn)行軟件驗(yàn)證和確認(rèn)
驗(yàn)證和確認(rèn)是兩個(gè)不同的過(guò)程,通常用于軟件開發(fā)、工程和制造等各個(gè)領(lǐng)域。它們都用于確保軟件滿足其預(yù)期用途,但它們實(shí)現(xiàn)的方式不同。
確認(rèn)
驗(yàn)證是檢查軟件是否符合其規(guī)格的過(guò)程。它回答了以下問(wèn)題:“我們是否正確構(gòu)建了產(chǎn)品?”這意味著根據(jù)項(xiàng)目開始時(shí)定義的要求檢查軟件是否按預(yù)期運(yùn)行。驗(yàn)證通常通過(guò)靜態(tài)測(cè)試完成,這意味著軟件實(shí)際上并未執(zhí)行。相反,代碼經(jīng)過(guò)審查、檢查或遍歷以確保其符合規(guī)格。
驗(yàn)證
驗(yàn)證是檢查軟件是否滿足用戶需求的過(guò)程。它回答了以下問(wèn)題:“我們是否在構(gòu)建正確的產(chǎn)品?”這意味著檢查軟件是否真正有用并滿足使用者的期望。驗(yàn)證通常通過(guò)動(dòng)態(tài)測(cè)試完成,這意味著軟件實(shí)際上是用真實(shí)數(shù)據(jù)執(zhí)行和測(cè)試的。
以下是一些典型的驗(yàn)證和確認(rèn)示例:
· 驗(yàn)證:檢查軟件程序的代碼,以確保其遵循正確的語(yǔ)法,并且所有功能均正確實(shí)現(xiàn)
· 驗(yàn)證:使用真實(shí)數(shù)據(jù)測(cè)試軟件程序,以確保其產(chǎn)生正確的結(jié)果
· 驗(yàn)證:審查軟件系統(tǒng)的設(shè)計(jì)文檔,以確保其完整性和準(zhǔn)確性
· 驗(yàn)證:進(jìn)行用戶驗(yàn)收測(cè)試 (UAT),以確保軟件系統(tǒng)滿足用戶的需求
何時(shí)使用
傳統(tǒng)上,驗(yàn)證應(yīng)在軟件開發(fā)過(guò)程的早期進(jìn)行,而確認(rèn)應(yīng)在后期進(jìn)行。這是因?yàn)轵?yàn)證有助于及早發(fā)現(xiàn)和修復(fù)錯(cuò)誤,從長(zhǎng)遠(yuǎn)來(lái)看可以節(jié)省時(shí)間和金錢。確認(rèn)也很重要,但它可以在軟件基本完成后進(jìn)行,因?yàn)樗婕皩?shí)際測(cè)試和反饋。
另一種方法是盡早開始驗(yàn)證和確認(rèn)并進(jìn)行迭代。只要有可能,就可以在小規(guī)模、增量式驗(yàn)證步驟之后進(jìn)行驗(yàn)證。驗(yàn)證和確認(rèn)之間的這種迭代可以在整個(gè)開發(fā)階段使用。這種方法背后的原因是,驗(yàn)證和確認(rèn)都可能有助于盡早發(fā)現(xiàn)和修復(fù)錯(cuò)誤。
天氣預(yù)報(bào)應(yīng)用程序
假設(shè)有一組軟件工程師正在開發(fā)一款天氣預(yù)報(bào)應(yīng)用。他們有一個(gè)規(guī)范,其中規(guī)定:“應(yīng)用應(yīng)準(zhǔn)確顯示當(dāng)前溫度和未來(lái) 5 天的天氣預(yù)報(bào)?!痹跍y(cè)試階段,他們會(huì)一絲不茍地審查代碼、檢查算法,并確保應(yīng)用確實(shí)按照他們的規(guī)范正確顯示溫度和預(yù)報(bào)數(shù)據(jù)。如果一切都符合規(guī)范,則應(yīng)用通過(guò)驗(yàn)證,因?yàn)樗现付ǖ臉?biāo)準(zhǔn)。
現(xiàn)在,讓我們將焦點(diǎn)轉(zhuǎn)移到這款天氣應(yīng)用的用戶身上。他們下載應(yīng)用、開始使用并提供反饋。一些用戶報(bào)告說(shuō),雖然溫度和預(yù)報(bào)準(zhǔn)確,但他們發(fā)現(xiàn)用戶界面混亂且難以操作。其他人則建議該應(yīng)用應(yīng)提供更詳細(xì)的每小時(shí)預(yù)報(bào)。這些反饋與用戶體驗(yàn)和用戶滿意度有關(guān),而不是具體的技術(shù)規(guī)格。
驗(yàn)證可確認(rèn)應(yīng)用滿足與溫度和預(yù)報(bào)準(zhǔn)確性相關(guān)的技術(shù)要求,但驗(yàn)證會(huì)發(fā)現(xiàn)用戶界面和用戶需求方面的問(wèn)題。應(yīng)用可能會(huì)通過(guò)驗(yàn)證,但驗(yàn)證失敗,因?yàn)樗荒芡耆珴M足用戶的真實(shí)需求和期望。這凸顯出驗(yàn)證側(cè)重于產(chǎn)品是否滿足用戶的實(shí)際需求和期望,而這些需求和期望可能并不總是與初始技術(shù)規(guī)格相符。
社交媒體應(yīng)用程序
假設(shè)您正在開發(fā)一款新的社交媒體應(yīng)用。驗(yàn)證過(guò)程將涉及確保該應(yīng)用滿足指定的要求,例如創(chuàng)建和分享帖子、發(fā)送消息和添加好友的能力。這可以通過(guò)審查應(yīng)用的代碼、測(cè)試其功能并將其與需求文檔進(jìn)行比較來(lái)完成。
驗(yàn)證過(guò)程將涉及確保應(yīng)用滿足用戶的需求。這可以通過(guò)進(jìn)行用戶訪談、調(diào)查和可用性測(cè)試來(lái)完成。例如,您可以詢問(wèn)用戶他們希望如何分享帖子,或者他們希望在應(yīng)用中添加哪些功能。
在這個(gè)例子中,驗(yàn)證將確保應(yīng)用程序在技術(shù)上是合理的,而確認(rèn)將確保它是用戶友好的并且滿足用戶的需求。
在線支付處理應(yīng)用程序
一個(gè)軟件工程師團(tuán)隊(duì)正在開發(fā)一款在線支付處理應(yīng)用。為了進(jìn)行驗(yàn)證,他們將驗(yàn)證處理付款、計(jì)算交易費(fèi)用和處理貨幣兌換的代碼是否已根據(jù)應(yīng)用的設(shè)計(jì)規(guī)范正確實(shí)施。他們還將通過(guò)驗(yàn)證加密協(xié)議、訪問(wèn)控制和身份驗(yàn)證機(jī)制是否正確集成,確保應(yīng)用符合行業(yè)安全標(biāo)準(zhǔn),如支付卡行業(yè)數(shù)據(jù)安全標(biāo)準(zhǔn) (PCI DSS)。他們還將確認(rèn)用戶界面是否按預(yù)期運(yùn)行,包括驗(yàn)證支付表單是否收集必要信息以及錯(cuò)誤消息是否正確顯示。
為了驗(yàn)證在線支付處理軟件,他們會(huì)將其用于實(shí)際支付交易。一種情況是處理真實(shí)的支付交易,以確認(rèn)該軟件可以無(wú)錯(cuò)誤地處理各種類型的支付,包括信用卡、數(shù)字錢包和國(guó)際交易。另一種情況是評(píng)估用戶體驗(yàn),檢查用戶是否可以輕松瀏覽應(yīng)用程序、付款并無(wú)問(wèn)題地收到確認(rèn)。
使用 fMRI 預(yù)測(cè)大腦活動(dòng)
開發(fā)了一款神經(jīng)信息學(xué)軟件應(yīng)用程序,用于根據(jù)功能性磁共振成像 (fMRI) 數(shù)據(jù)預(yù)測(cè)大腦活動(dòng)。驗(yàn)證將驗(yàn)證用于預(yù)處理 fMRI 數(shù)據(jù)的算法(例如噪聲消除和運(yùn)動(dòng)校正)是否正確轉(zhuǎn)換為代碼。您還將確保用戶界面按規(guī)定運(yùn)行,并且數(shù)據(jù)輸入和輸出格式符合定義的標(biāo)準(zhǔn),例如腦成像數(shù)據(jù)結(jié)構(gòu) (BIDS)。
驗(yàn)證會(huì)將軟件生成的預(yù)測(cè)大腦活動(dòng)模式與 fMRI 掃描中觀察到的實(shí)際大腦活動(dòng)進(jìn)行比較。此外,您還可以將軟件的預(yù)測(cè)與使用既定方法或地面實(shí)況數(shù)據(jù)獲得的結(jié)果進(jìn)行比較,以評(píng)估其準(zhǔn)確性。在這種情況下,驗(yàn)證可確保軟件運(yùn)行時(shí)沒(méi)有內(nèi)部錯(cuò)誤,如已驗(yàn)證的一樣。它還確保軟件可靠而準(zhǔn)確地執(zhí)行其基于 fMRI 數(shù)據(jù)預(yù)測(cè)大腦活動(dòng)的主要功能。此步驟有助于確定該軟件是否可以用于科學(xué)或臨床目的。
預(yù)測(cè) RNA 分子的二級(jí)結(jié)構(gòu)
假設(shè)您是一位生物信息學(xué)家,正在開發(fā)一種預(yù)測(cè) RNA 分子二級(jí)結(jié)構(gòu)的軟件工具。您的軟件以 RNA 序列作為輸入,并預(yù)測(cè)最可能的折疊模式。為了進(jìn)行驗(yàn)證,您需要驗(yàn)證您的 RNA 二級(jí)結(jié)構(gòu)預(yù)測(cè)軟件是否使用科學(xué)文獻(xiàn)中描述的算法準(zhǔn)確計(jì)算自由能值。您將軟件的實(shí)現(xiàn)與已發(fā)布的算法進(jìn)行比較,并驗(yàn)證代碼是否精確遵循預(yù)期的數(shù)學(xué)程序。
在這種情況下,驗(yàn)證可確保您的軟件正確執(zhí)行預(yù)期的計(jì)算并準(zhǔn)確遵循算法邏輯。
為了驗(yàn)證您的 RNA 二級(jí)結(jié)構(gòu)預(yù)測(cè)軟件,您需要在具有已知二級(jí)結(jié)構(gòu)的多種真實(shí) RNA 序列上運(yùn)行該軟件。然后,您需要將軟件的預(yù)測(cè)與實(shí)驗(yàn)數(shù)據(jù)或其他可信賴的參考工具進(jìn)行比較,以檢查它是否提供具有生物學(xué)意義的結(jié)果,以及其準(zhǔn)確性是否足以達(dá)到預(yù)期目的。
會(huì)議室里的燈開關(guān)
以會(huì)議室中的燈開關(guān)為例。驗(yàn)證會(huì)詢問(wèn)照明是否符合要求。要求可能會(huì)指出“投影儀屏幕前的燈可以獨(dú)立于房間中的其他燈進(jìn)行控制”。如果寫下了要求,而燈無(wú)法獨(dú)立控制,則照明無(wú)法通過(guò)驗(yàn)證。這是因?yàn)閷?shí)施不符合要求。
驗(yàn)證會(huì)詢問(wèn)用戶是否對(duì)照明滿意。這是一個(gè)比較主觀的問(wèn)題,用單一指標(biāo)來(lái)衡量滿意度并不總是那么容易。例如,即使燈光可以獨(dú)立控制,如果燈光太亮或太暗,用戶仍可能不滿意。
總結(jié)
驗(yàn)證通常是一項(xiàng)技術(shù)性更強(qiáng)的活動(dòng),需要使用有關(guān)軟件工件、要求和規(guī)范的知識(shí)。驗(yàn)證通常依賴于領(lǐng)域知識(shí),即軟件所針對(duì)的應(yīng)用程序的知識(shí)。例如,醫(yī)療設(shè)備軟件的驗(yàn)證需要醫(yī)療保健專業(yè)人員、臨床醫(yī)生和患者的知識(shí)。
需要注意的是,驗(yàn)證和確認(rèn)并不相互排斥。事實(shí)上,它們是互補(bǔ)的過(guò)程。驗(yàn)證確保軟件構(gòu)建正確,而確認(rèn)確保軟件有用。通過(guò)結(jié)合驗(yàn)證和確認(rèn),我們可以更有信心我們的產(chǎn)品會(huì)讓客戶滿意。