如何驗(yàn)證程序是否完成,測試以及修復(fù)bug

大家好,我是IT修真院北京總院第21期的學(xué)員楊夢桐,今天這篇文章主要總結(jié)如何驗(yàn)證程序是否完成,測試以及修復(fù)bug

1. 背景介紹

在日常中,我們碼代碼都是按照需求來的,為了驗(yàn)證我們驗(yàn)證我們的工作成果符合我們的項(xiàng)目需求,那么驗(yàn)證程序是否完成、測試以及修復(fù)bug就成了我們工作中非常重要的流程。

2. 知識剖析

在實(shí)際的開發(fā)中,最重要的一點(diǎn)是,首先,確定程序是否完成,關(guān)于判斷程序已經(jīng)完成,經(jīng)過討論,我們想到了如下幾點(diǎn)

a. 從需求的角度看:滿足用戶的全部需求。這是最基本的一點(diǎn),如果開始了一個項(xiàng)目開發(fā),對整個項(xiàng)目進(jìn)行架構(gòu)和邏輯梳理之后,需要將所有的需求都完成。

b. 從程序的角度看:代碼不存在明顯bug,結(jié)構(gòu)明晰,邏輯通順,有一定的優(yōu)化。用戶使用時的優(yōu)化是必須要進(jìn)行考慮的,比如懶加載的應(yīng)用等。

c. 從UI圖的角度看:較為完美的還原了UI圖的設(shè)計。

d. 從后期版本維護(hù)迭代的角度看:注釋完備,穩(wěn)定性好,不加班的代碼就是好代碼。代碼穩(wěn)定性好,加班的情況就會顯著降低,注釋完備,一方面是為了讓自己返回過來看原來的代碼時可以快速的梳理思路,另一方面也是給合作開發(fā)增添了很多助力。

驗(yàn)證代碼完成,接下來的部分就是測試

測試是使用人工操作或者軟件自動運(yùn)行的方式來檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別的過程。

總結(jié)常用軟件測試的方法如下

a. 按照測試范圍,可以分為模塊測試和整體聯(lián)調(diào)。

b. 按照測試條件,可以分為正常操作情況測試和異常情況測試。

c. 按照測試的輸入范圍,可以分為全覆蓋測試和抽樣測試。

接下來我們來具體分析測試方式之間的區(qū)別

a. 模塊測試:針對設(shè)計中的一個一個模塊來進(jìn)行測試的,目的是保證每個模塊作為一個單元能正確運(yùn)行,所以模塊測試通常又被稱為單元測試。在這個測試步驟中所發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計的錯誤。

b. 整體聯(lián)調(diào):測試模塊間接口的正確性、各模塊間的數(shù)據(jù)流和控制流是否按照設(shè)計實(shí)現(xiàn)其功能、以及集成后整體功能的正確性。

除此之外,還有正常操作情況測試和異常情況測試。

a. 正常操作情況測試:根據(jù)正確的操作流程對單獨(dú)的模塊或整體進(jìn)行測試,確定被測對象可以良好運(yùn)行。

b. 異常情況測試:異常情況,可能會包括數(shù)據(jù)庫異常,系統(tǒng)異常,用戶異常操作等情況。它具有如下幾個特性。

aa. 成熟性:軟件產(chǎn)品要避免由軟件中錯誤而導(dǎo)致失效的能力。

bb. 容錯性:在軟件失效或者違反規(guī)定的接口的情況下,軟件產(chǎn)品維持規(guī)定的性能級別的能力。

cc. 易恢復(fù)性:在發(fā)生故障的情況下,軟件重建規(guī)定的性能級別并恢復(fù)受直接影響的數(shù)據(jù)的能力。

dd. 可靠性依從性:軟件產(chǎn)品依附于同可靠性相關(guān)的標(biāo)準(zhǔn)、約定或規(guī)定的能力

最后,還可區(qū)分為全覆蓋測試和抽樣測試。

a. 全覆蓋測試:對于被測對象全面,整體,多維度的測試,受限于時間和人力成本,除非被測對象級別很高,不然不會采用這種測試方式。

b. 抽樣測試:針對功能及模塊隨機(jī)抽取被測對象。

3. 常見問題及解決方案

經(jīng)過這么多測試方法,接下來需要面對的問題就是,如何debug。

而一個常用的方式就是:斷點(diǎn)調(diào)試。

用chrome瀏覽器打開頁面 → 按f12打開開發(fā)者工具 → 打開Sources → 打開你要調(diào)試的js代碼文件 → 在行號上單擊一下,這就是斷點(diǎn)調(diào)試。

打好斷點(diǎn),刷新頁面,點(diǎn)擊下一步,就可以很明確的看出來實(shí)際上的運(yùn)行過程,這是調(diào)試js代碼的一個十分明確的方式。

4. 擴(kuò)展思考

在這些問題之后,就是“如何盡量減少代碼bug。”

減少代碼的bug,最主要的是在敲代碼之前就明確自己編程的思路,捋順邏輯。

ppt :https://ptteng.github.io/PPT/PPT/js5http.html#/

視頻:https://v.qq.com/x/page/x0529cdyacs.html

問題討論

1. 有chrome自動斷點(diǎn)調(diào)試jquery代碼的現(xiàn)象

傳入的參數(shù)不合法,可能到導(dǎo)致 jquery 中的代碼執(zhí)行異常,如果開啟了“異常時自動斷點(diǎn)”,就有可能自動跳到j(luò)query里,可以設(shè)置blackbox script 的功能來忽略 jquery 中的斷點(diǎn)。

2. 抽樣測試的概念還是不夠理解

對整體項(xiàng)目隨機(jī)抽取任意模塊進(jìn)行功能和代碼的測試

3. ?代碼的容錯性是什么意思?

比如sessionstorage,localstorage,cookie的具體應(yīng)用,要考慮它們實(shí)際上在什么情況下進(jìn)行應(yīng)用,如何清除這幾種緩存

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容