單元測試由誰來做最合適

2021-03-19 18:19:52 字數 2029 閱讀 4240

1樓:手機使用者

為什麼要進行單元測試? 單元測試保證區域性**的質量 單元測試在隔離的前提下,分別對各個**單元進行測試,能夠達到其他測試不可能達到的測試完整性,從而保證了區域性**的質量。只有區域性**的質量得到了保證,軟體產品的質量才可能得到保證。

單元測試改良專案**的整體結構 要對**進行單元測試,最起碼的前提是**能夠隔離,也就是說,要具有一定的可測性,因此,單元測試是一種有效的約束機制,這種機制將有效地改良**的整體結構。例如,如果把業務**直接寫在介面類中,將很難進行單元測試,隨意的不合理的緊耦合也會造成難於測試,單元測試使這些不好的特性得於及時發現,從而很容易進行修正。可測性是高質量**的首要特性,不具有可測性,也就無法衡量**的正確性,有了可測性,也就基本上保證了**的可擴充套件性、可複用性。

單元測試降低測試、維護升級的成本 錯誤越早發現,修復的代價越小,另一方面,如果**經過了充分的單元測試,整合測試和系統測試就只需要關注設計方面的問題。自動迴歸測試也大量降低升級維護成本。 使開發過程適應頻繁變化的需求 單元測試自然地使開發流程變得「敏捷」,這是因為,整體結構良好的**具有較好的可擴充套件性,自動迴歸測試又能保證修改不會引入新的錯誤,因此可以適應頻繁變動的需求,降低系統分析、架構設計和後期測試的壓力。

單元測試有助於提升程式設計師的能力 對程式設計師來說,單元測試有利於養成縝密的思維習慣,及提高設計能力。 由誰進行測試?開發部門還是測試部門?

應該由開發部門進行單元測試! 由測試部門進行單元測試的問題 代價高:反覆的重新理解**需要大量的時間,反覆的溝通也需要大量的成本。

人手不足:進行單元測試的人員需要具備編碼能力,很多軟體企業的測試部門都沒有足夠的人手。 耽誤了測試部門對其他測試的準備工作:

編碼階段,測試部門要為整合測試、系統測試等做好準備,如果測試部門陷在單元測試的「泥潭」裡,很可能影響這些準備工作。 由開發部門進行單元測試的問題 擔心影響開發進度:這是現實問題,但自動化的單元測試工具可以解決這個問題。

程式設計師不習慣做單元測試:這種習慣是可以理解的,但並不難改變,實際上,程式設計師寫程式時都是要進行測試除錯的,只不過通常比較零散和隨意而已。 測試自己編寫的**,難於保證測試的效果:

測試自己寫的**,通常會只測試正常的輸入,因此難於保證測試的完整性,但自動化的單元測試工具,可以統計白盒覆蓋,甚至提供用於找出遺漏的測試用例的工具,達到很高的測試完整性。只要達到了足夠的測試完整性,那麼,無論誰測試,效果都是一樣的。 無論由哪個部門做單元測試,都要面對一些問題,但開發部門所面對的問題可以藉助工具來解決,而由測試部門進行單元測試,要麼無法真正實施,要麼代價昂貴。

由測試部門進行單元測試為什麼成本昂貴? 需多次重複理解程式 測試人員進行單元測試時必須理解程式功能甚至**邏輯;充分的單元測試通常會發現很多細小的錯誤,程式設計師修改**時,又要再次理解程式。理解程式是很耗費時間的。

反覆溝通需要大量時間成本 單元測試發現的錯誤一般是小bug,但數量可能很多,修改錯誤一般由程式設計師進行,測試人員還要確認,這些反覆溝通也需要很多的時間。 不利於發揮單元測試對**結構的約束機制 如果等編碼基本完成再由測試部門進行單元測試,也就不能及時發揮單元測試對**整體結構的約束效果,測試部門拿到**時,往往會發現難於測試。 耽誤測試部門對其他測試的準備工作:

編碼階段,測試部門要為整合測試、系統測試等做好準備,如果測試部門陷在單元測試的「泥潭」裡,很可能影響這些準備工作。 基於以上理由,即使測試部門人手充裕,僅僅從效益來考慮,也不應該由測試部門進行單元測試。如果測試部門本來就人力不充裕(進行單元測試的人員需具備編碼能力),勉強由測試部門進行單元測試,結果往往是----沒有結果。

由開發部門進行單元測試能保證測試效果嗎? 程式設計師測試自己編寫的**,往往只考慮「正常狀況」,這當然會影響測試效果。但如果所用的單元測試工具能夠統計各種白盒覆蓋率,就能檢查測試效果。

當然,只做到這一點還是不夠的,因為白盒覆蓋具有逾後逾難的特點,達到一定的覆蓋率後,覆蓋率的提升會很困難。如果測試工具功能足夠強大,能提供工具幫助使用者快速地設計測試用例,達到完整的白盒覆蓋,那麼測試效果就能得到完全的保證。 實際上,如果沒有充分的統計資料,沒有達到足夠的測試完整性,那麼由誰做單元測試,效果都不能保證。

進行單元測試,關鍵是要達到比較高的輸入覆蓋,這樣,無論由誰測試,效果都是一樣的。

pythonunittest單元測試框架中如何對

首先pyunit不像junit一樣支援引數化測試。不過不是不能實現,只是pyunit的作者想讓 這個東西變得儘量簡單。所以不去實現。當然這個pyhon語言足夠動態,你可以自己去實現 外部輸入引數測試。import unittest class parametrizedtestcase unittes...

股東會議應該由誰來主持

首次股東會會議由出資最多的股東召集和主持,依法行使職權。以後的股東會會議,公司設立董事會的,由董事會召集,董事長主持 董事長不能履行職務或者不履行職務的,由副董事長主持 副董事長不能履行或者不履行職務的,由半數以上董事共同推舉一名董事主持。公司不設董事會的,股東會會議由執行董事召集和主持。董事會或者...

歷史是由誰書寫的,當今的歷史由誰來書寫??誰有資格寫呢?

歷史是人民書寫的,一切成就歸功於人民。一 人民是歷史的創造者,是真正的英雄。中國人民是中國歷史上的真正英雄的必然結論。波瀾壯闊的中華民族發展史是中國人民書寫的!博大精深的中華文明是中國人民創造的!歷久彌新的中華民族精神是中國人民培育的!中華民族迎來了從站起來 富起來到強起來的偉大飛躍是中國人民奮鬥出...