如何提高測試用例編寫效率

如果希望可以進一步提高某個階段測試工作的效率,還可以考慮應用「設計測試過程」的方法。這裡所說的測試過程,指的是我們在執行測試時所設定的執行測試用例的先後順序。之所以這樣做,是因為可以充分的利用不同功能之間的耦合性,盡量通過一次操作來檢查盡量多的內容,從而降低已完成工作的無效性或低效性,最終提高某個階段的整體工作效率。不過,這項工作同樣要求操作者必須對被測的系統所涉及的所有業務以及這些業務之間的關係都非常熟悉才行。

如何區分測試用例的粒度

我們是不太可能在一個測試用例中包含所有測試需求,因為眾多的功能以及不同的路徑組合將使這樣一個測試用例像大象一般,完全不具有可行性。除非您的軟體所包含的功能真的又少又簡單,不過如果真的有這麼一個軟體,恐怕也沒有測試和發布的必要了。

當然,這也並不是要您走向另一個極端,為需求中定義的每個特性或功能都提供一個甚至多個測試用例。這裡的關鍵,是要尋找一個合適的度。

我們推薦的方法是:關注有效功能。

有效功能:就是指在被測應用所涉及的實際業務中,當用戶在手工狀態下進行工作時,整個業務流程中對用戶來說,具有實際意義那些功能。

如何評價一個軟體測試用例的好壞?

1、易用性。對於一個即熟悉測試工作,又熟悉被測應用的測試人員,應當可以花費很少的時間就可以理解測試用例中表達的測試思路,並可以很快的執行完這個測試用例。

2、易維護性。當開發過程中的某些因素影響了測試需求,測試用例的作者或其他測試設計人員,應該可以花費很少的時間就完成定位並維護所有相關測試用例的工作。

測試人員應具備的七種思維方式

作為軟體測試人員,應具備以下七種思維方式:逆向思維方式,組合思維方式,全局思維方式,兩極思維方式,簡單思維方式,比較思維方式,動起來,更精彩!

1、逆向思維方式

逆向思維在測試中用的很多,比如將根據結果逆推條件,從而得出輸入條件的等價類劃分

其實逆向思維在調試當中用到的也比較多,當發現缺陷時,進一步定位問題的所在,往往就是逆流而上,進行分析

☆ 逆向思維是相對的,就是按照與常規思路相反的方向進行思考,測試人員往往能夠運用它發現開發人員思維的漏洞

2、組合思維方式

☆ 很多東西單一的思考都沒有問題,當將相關的事物組合在一起卻能發現很多問題;如多進程並發,讓程序的複雜度上了一個台階,也讓程序的缺陷率隨之而增長

☆ 按照是否排序組合可以分為:排列(有序)和組合(無序);針對不同的應用,可以酌情考慮使用「排列」或者「組合」

☆ 為了充分利用組合思維而不致於讓自己的思維混亂,要注意「分維」,將相關的因素劃分到不同的維度上,然後再考慮其相關性

3、全局思維方式

☆ 事物往往存在多面性,當我們掌握了越多的層面,我們對它的認識就越清楚,越有利於我們掌握其本質,全局思維方式就是讓我們從多角度分析待測的系統;試著以不同角色去看系統,分析其是否能夠滿足需求

☆ 其實平常我們在軟體開發過程中,進行的各種評審,就是藉助全局思維的方式,讓更多的人參與思考,腦力激蕩,儘可能的實現全方位審查某個解決方案的正確性以及其他特性

4、兩極思維方式

☆ 邊界值分析是兩極思維方式的典範

☆ 為了看系統的穩定性,我們採用了壓力測試

☆ 兩極思維方式,是在極端的情況下,看是否存在缺陷?

☆ 注意是兩極,不是一極

☆ 測試人員做久了,往往容易走極端——職業病,不利於與人溝通

5、簡單思維方式

☆ 剝離一些非關鍵特徵,追逐事物的本質,讓事物簡單的只剩下「根本」

☆ 針對事物本質(解決問題的本質)的測試,讓我們不至於偏離方向

6、比較思維方式

☆ 認識事物時,人們往往都是通過和頭腦中的某些概念進行比較,找出相同、相異之處,或者歸類,從而將其加入大腦中的知識體系,可能的話,再建立好的搜索方式,以便以後使用

☆ 應用模式是「比較思維」很常見的例子,現在模式很火,有設計模式、體系結構模式、測試模式、等等,一些專家針對一些相關問題的共性找出來的解決方法,取完名字後,可以讓大家方便的復用

☆ 讓經驗在這裡發揮作用,測試中經驗很重要,比較思維是使用經驗的方式

7、動起來,更精彩

☆ 關注程序的運行時狀態

☆ 傳統的基於結構的程序可以更多的在代碼中反映將來程序的運行方式;而面向對象將代碼和運行時顯著分離

☆ 讓我們在關注代碼靜態結構(如類結構)的同時,也要謹慎關注其動態(對象交互網)表現

其實這些思維方式,大家都在有意識或者無意識的使用著,它們各自都有自己的妙處,將我們的思維發散,有意識的將他們用在問題的思考上,有時可以給我們一種「柳暗花明又一村」的感覺。

最後想說,只是知道這些原則意義不是很大,如果真能讓它們成為思考的血液,才能發揮它的真正價值。那真的需要很多的歷練,其實成為一名出色的測試人員,遠沒有那麼簡單,需要簡單,需要(不斷的學習+不斷的經歷+不斷的思考)。

測試新人答疑解惑之測試用例篇

編者按:本文主要回答了測試愛好者提出的一些關於測試方面的問題,希望能給大家提供幫助,共同進步。

網友來信中提到的問題如下,都是和測試用例相關:

1、做測試已快一年了,感覺學到很多.但是很迷茫。

迷茫的問題是:會寫測試用例了,但是寫的測試用例總覺得不全面會有遺漏

2、關於幻燈片播放模塊不知道該用什麼樣的思路來寫模塊,希望我能給些建議

這兩個問題我的回復如下:

人無完人,測試用例不可能全都能想到,這個需要靠經驗的積累。如何在寫測試用例時,減少遺漏呢,這裡有幾個方法供參考:

1)測試用例要覆蓋用戶需求或者產品需求

2)如果是升級產品,可以參考以前編寫過該產品的測試用例,通過了解別人寫用例的經驗來擴展測試點,在看別人寫的用例可能會讓你想出新的用例點

3)測試用例進行評審,讓大家幫你檢查一下測試點有哪些地方有遺漏或者你沒有想到的測試點

4)收集遺漏的測試點進行總結;辦法是:每次產品上線後,多收集統計用戶反饋的問題,看是否是自己沒有發現的,補充總結用例,每次寫用例時多考慮考慮這些方面

5)對於遺漏的測試點或沒有想到的測試用例點,要有個好的觀點和心態去看待,不要因為自己的用例寫的不全就覺得很丟人、覺得自身能力差;只要多多思考.總結找到方法應對,慢慢的你的測試用例就會遺漏的很少了。

6)測試用例即使想全了.也要把測試用例按照重要級別分3類:

主要業務流程、主要功能、擴展功能;

分成這幾類是為了便於在執行時先測試優先順序別高的用例,在測試不重要的用例,好早一些發現嚴重問題。

關於幻燈片播放的測試用例,我沒有這方面的測試經驗,對方也沒有給出具體的需求,不過我可以提供幾個思考點,希望會對你有幫助:

1)幻燈片播放的流程測試點:

用戶登錄-》正確創建幻燈片-》查看創建的幻燈片圖片顯示

2)主要功能測試點:

創建幻燈片支持的幻燈片圖片樣式:JPG等等,可否正確支持

幻燈片圖片樣式顯示是否正確

修改幻燈片,修改幻燈片後查看顯示

刪除幻燈片,刪除幻燈片後查看顯示

幻燈片播放順序等等等等

3)功能擴展測試點:

創建不支持的圖片格式

上傳的圖片大小超過指定大小

各種瀏覽器下幻燈片顯示的樣式

沒有創建幻燈片時初始文字顯示等等等等

我暫時能提供這幾個思路,具體要根據需求和產品業務去寫測試用例中的測試點。

如何證明或者度量測試工作的有效性

度量是改進過程的有效途徑之一。通過對測試過程的度量,可以使測試過程規範化、可視化;對度量數據的分析,可以測量出測試過程的有效性及存在的問題,明確測試過程的改進方向,從而保證軟體的質量。因此,對軟體測試過程的度量研究具有十分重要的意義。那麼,如何證明或者度量測試工作的有效性?

下面來對這個問題,談談我的看法:如證明測試工作的有效性。

1)我們要看到我們所做的工作的存在

相信大家都經歷過,自己雖然做了很多的工作,但領導卻看不到。比如你一天中在不停的測試,反覆的測試,但經理卻以為你這一天浪費掉了。為什麼? 因為看沒有看到可以看見的測試用例,沒有看到你提交的大量的缺陷。

改進:把你做的工作具體化,量化。

你無論是按照計劃測試,還是自由測試,那麼做了多少測試執行就要寫多少測試用例,發現了問題就要及時提交缺陷。即使你完全按照已有的用例測試,也沒有發現缺陷,那麼你要體現你的進度和你新增加了那些測試數據,這是你工作能力的體現。你做了多少工作,下班前報告給領導吧,讓他知道你做了這些事情。

2)我們要看到我們所做工作是否有意義。

你在一個不是測試重點的地方花費了很多時間並且沒有任何收穫,顯然你這次測試是沒有意義的。

改進:測試前要很好的理解測試計劃和 測試策略,測試方案,一定保證測試進度和測試重點。

3)要證明我們的測試工作是否完全。

測試覆蓋是一個不可能完全做好的工作,需求覆蓋,用例覆蓋,功能點覆蓋等。我們可以把已有的需求點來覆蓋,但我們無法理解另外的我們所不知道的需求;我們可以寫用例,但我們知道測試數據很難找全;我們可以測試看得見的功能,但那些看不見的呢?

改進:簡單的說,要建立一套有效的管理模型。

4)保證我們所做工作的效率。

效率就是最短的時間處理最多的事情。這一點很難有標準。你能說一天執行10個用例的就比執行20個用例的效率低嗎?

改進:加強測試人員自身的能力提高,可以有效的提高效率,減少無效的工作。例如,對一個經驗豐富的測試人,他可以輕易的想到最可能多的測試數據,他可以最快的定位缺陷。

5)如何來度量我們的測試工作。

我們誰都不能證明我們繁忙了一段時間的工作做的到底有多好或者多爛,我們只能用數據說話,數據是公平的,是沒有情緒的。

改進:在測試準備階段,我們就要定義一些標準,來限定或者指導測試的進行。比如多少的用例通過率可以說明系統的健壯程度;同樣還有需求覆蓋率,嚴重缺陷比率,缺陷單日出現率,失敗用例分布,缺陷分布等。我們後期更是可以利用這些數據來做測試過程的優化工作。數據統籌工作,對於測試來說是非常有意義的。

總之,最有效的測試工作就是用最少的工作時間,最高的工作效率,最低的測試風險來完成了測試工作。

– End –