咨詢郵箱?咨詢郵箱:service@yitianxinda.com 咨詢熱線?咨詢熱線:18101296137 微博 微信
北京軟件開發(fā)敏捷軟件開發(fā)_北京軟件開發(fā)公司
發(fā)表日期:2016-05-23 10:38:01 ?? 文章編輯:yitianxinda ?? 瀏覽次數(shù):

  北京軟件開發(fā)敏捷軟件開發(fā)是從1990年代開始逐漸引起廣泛關注的一種新型軟件開發(fā)方法,是能夠應對快速變化的需求的一種軟件開發(fā)能力,它作為一種新型的開發(fā)模式,被越來越多地應用到軟件項目中。

  敏捷軟件測試指的是在敏捷軟件開發(fā)過程中跟質量相關的一系列活動,和傳統(tǒng)意義上的軟件測試有很多區(qū)別,因為敏捷軟件測試的概念一直比較模糊,所以經(jīng)常會有人走入誤區(qū),我曾經(jīng)在瀑布型的軟件開發(fā)模式下做過幾年的測試人員,所以在剛剛接觸敏捷項目的時候也曾有過一些誤解,但是在敏捷軟件開發(fā)團隊工作將近5年后,對很多問題有了新的認識,以下針對幾個常見的誤區(qū)和大家分享一下我的理解。

  不需要測試策略

  測試策略關注的是目標和方法,即怎樣在限定的時間內有效利用有限的資源達到提前制定的目標,一般制定測試策略時會首先明確測試目標,然后確定需要哪些測試類型,各種測試類型所占的大概比例,選擇測試框架,較后規(guī)劃一下軟件發(fā)布前需要經(jīng)歷哪些測試階段。

  很多人認為,敏捷軟件開發(fā)以用戶故事為單元,是不是集中精力在用戶故事測試就足夠了?是不是根本不需要考慮測試策略?

  其實這是一個很大的誤解,因為敏捷軟件開發(fā)通常都是迭代式的發(fā)布,周期比較短,資源非常有限,這就更需要我們統(tǒng)籌規(guī)劃,小到一個用戶故事,大到一個完整的用戶特性,都需要考慮怎么合理利用測試資源,所以敏捷項目是非常需要測試策略的。

  具體到實際項目中,通常團隊會在項目初期(迭代0)制定測試策略,明確目標(包括功能性需求的目標以及非功能性需求的目標),然后確定在開發(fā)階段需要添加哪些自動化測試(包括單元測試,接口測試,契約測試,集成測試,系統(tǒng)級別的UI的用戶場景測試),并規(guī)定這些測試的大概比率(符合測試金字塔),選擇自動化測試框架(比如XUnit)以及需要哪些手動測試(包括探索性測試,可用性測試等),還要規(guī)劃每個發(fā)布周期需要進行的測試階段(比如新功能測試,回歸測試等),之后測試策略會對敏捷團隊的開發(fā)及測試起到非常重要的指導作用,當然,每個團隊因為項目的不同策略也會不同。

  不需要測試文檔

  測試文檔通常包括測試計劃,測試用例,測試報告,測試缺陷等文檔以及相對應的可以指導測試的一部分需求文檔。

  很多人會認為,敏捷軟件測試是不需要文檔的,敏捷宣言中有一句“工作的軟件 高于 詳盡的文檔”,盡管敏捷宣言較后提到了“右項也有價值,我們更重視左項的價值”,但人們往往會忽視右項的內容,導致在很多剛開始實施敏捷開發(fā)的團隊中完全否定了測試文檔的作用。

  首先不可否認,在實際的敏捷項目中,確實很少見傳統(tǒng)意義上的正式的專門的需求文檔和測試文檔,但這并不代表敏捷項目沒有文檔,比如用戶故事本身就是需求的載體,用戶故事中的驗收條件就是敏捷測試文檔的一部分, 另外很多敏捷軟件項目都會采用BDD的方式進行開發(fā),將測試用例用業(yè)務人員能夠看懂的自然語言描述,并結合自動化實現(xiàn),形成一個融需求和測試為一體的文檔,而且為了應對敏捷軟件測試變化快文檔更新不及時導致的問題,很多敏捷項目都在使用Living document。

  純自動化測試 or 純手動測試

  有些剛接觸敏捷的人認為敏捷軟件開發(fā)發(fā)布周期很短, 測試人員根本沒有時間做手動測試, 所以應該采用純自動化測試。

  也有一些人認為,敏捷開發(fā)強調快速響應變化,如果投入成本在自動化測試上,那么肯定會導致維護自動化測試帶來的資源浪費,所以應該采用純手動測試。

  這是兩種極端的誤解,雖然這兩種觀點所考慮到的難點確實存在, 因為在敏捷軟件開發(fā)過程中, 迭代通常比較短,確實不會預留足夠多的時間來做手動測試, 所以必須要有足夠多的自動化測試來保障。

  然而因為測試代碼本身可能存在缺陷,而且有很多部分難以被自動化測試覆蓋(比如界面的測試,可用性測試,探索性測試等),所以敏捷測試也同樣離不開手動測試。

  至于關于自動化測試維護成本的顧慮,敏捷項目也確實存在變化比較多的特點,但通常變的都是比較接近用戶的部分,所以應該盡量減少用戶級別的依賴界面的自動化測試,而多增加一些不容易變化的底層的單元測試接口測試等。

  推薦敏捷測試以自動化測試為主,手動測試為輔。

  敏捷QA = 敏捷Tester

  在很多剛接觸敏捷實踐的團隊中,大家對敏捷QA的認識還停留在Tester的階段,認為只要用戶故事開發(fā)完成之后,QA去專職地做測試,發(fā)現(xiàn)缺陷就夠了。

  這是一個很大的誤解,首先QA(Quality Assurance/Analyst),不是單純意義的測試人員,通過這個角色的名稱我們可以看的出來敏捷QA強調的是質量保障和分析,而不單純是測試產品。

  在實際的項目中,敏捷QA通常會從需求分析階段就開始參與整個軟件開發(fā)過程,通過在不同階段和團隊中的不同角色合作,幫助整個團隊對質量達成共識,并通過在不同階段的確認和驗證做到缺陷預防,而不是等到軟件開發(fā)完成后再去發(fā)現(xiàn)缺陷,所以對于敏捷QA來說,其目標是軟件開發(fā)完成后能夠發(fā)現(xiàn)的缺陷越少越好,而對于Tester來說,發(fā)現(xiàn)越多的缺陷證明工作做得越優(yōu)秀。

  非功能性測試不重要

  非功能性測試指的是針對非功能性需求(軟件本身滿足用戶需求所必需的功能性需求以外的一些特性,比如安全,性能,可用性,兼容性等)的測試,通常包括安全測試,性能測試,可用性測試,兼容性測試等。

  在敏捷軟件項目中,需求被切割成了很小的單元,在切割的過程中,非功能性需求是較容易被人忽略的一部分,而這導致的問題就是非功能性測試經(jīng)常被團隊忽略,久而久之,就會形成這樣一個誤解,認為非功能性測試是不重要的。

  這個觀點非常不對,首先非功能性測試的重要性并不會因為軟件開發(fā)模式的不同而有所不同,尤其安全測試和性能測試的重要性正越來越多地被重視起來,因為很多產品必須考慮到用戶敏感信息的安全以及性能導致的用戶滿意度,在敏捷項目中由于軟件會盡早發(fā)布,如果這些非功能性需求出現(xiàn)問題,就會更早地造成影響,很可能在軟件剛步入市場就損失掉大多數(shù)的用戶。

  所以非功能性的測試和功能性測試同等重要,在實際的項目中,比較好的做法是將這些非功能性需求也加入到用戶故事的驗收條件中,在整個敏捷開發(fā)流程中對這些非功能性需求進行驗證。

  質量是QA的事兒

  受傳統(tǒng)觀念的影響,很多人還是會認為質量是QA的事兒,如果產品發(fā)布后質量不好是QA的問題,其他角色和質量沒有太大的關系。

  首先這種認識太高估了QA對質量的作用,軟件的質量是在軟件開發(fā)過程中逐步形成的, 從需求分析階段是否真正的了解到了客戶想要的功能,到開發(fā)階段是否增加了足夠多的自動化測試保障,是否寫了足夠健壯的產品代碼,到較后測試階段是否測試了功能引入后整個系統(tǒng)的可用性,不同用戶路徑是否能正常工作等等,這些都是軟件質量的組成部分。

  可以看得出來,在整個過程中,軟件的質量離不開敏捷團隊各種角色的付出,其中有業(yè)務分析人員對需求的準確把握,有開發(fā)人員對產品代碼的高標準實現(xiàn),對自動化測試覆蓋率的保障,還有QA在整個過程中對質量相關活動的實施和保障,包括需求分析階段從QA的視角對業(yè)務的補充,開發(fā)階段對自動化測試的審查,以及探索性測試可用性測試等對產品質量的進一步保障。

  所以在敏捷測試中更多時候我們會淡化角色的概念,強調團隊人人都為質量負責,這樣更有助于團隊的每一位成員都把質量作為非常重要的一部分,而不是依賴于某個人或者某個角色。

  開發(fā)可以寫測試,不再需要QA了

  因為敏捷團隊強調人人都為質量負責,開發(fā)人員會采用TDD等方式寫大量的自動化測試,那么是不是就不需要QA了?

  對于這個觀點,在社區(qū)有過很多激烈的討論,比如這篇文章《我們需要專職的QA嗎?》就曾經(jīng)引起了很大的爭議,其實個人認為這篇文章里提到的QA指的是Tester,具體兩者的區(qū)別可參考前面的觀點;拋開這個,作者的某些觀點其實是很有價值的,比如作者較后提到了質量不是測出來的,要通過軟件生命周期各個階段相關活動的保障,而這些活動都離不開QA的參與。

  首先需求分析階段,QA可以從不同的視角對于需求提出疑問,補充,修改,因為QA特有的技術背景,對于軟件的可用性等有更深入的理解,所以往往可以提出不同于業(yè)務分析師和開發(fā)人員的觀點;開發(fā)階段,QA也會審查開發(fā)人員寫的自動化測試,通過QA的專業(yè)測試背景幫助開發(fā)人員寫更有價值的測試,比如我們在項目中曾經(jīng)發(fā)現(xiàn)開發(fā)人員寫了很多沒有業(yè)務價值的測試;測試階段,探索性測試,可用性測試,安全測試,性能測試等都是QA們在做的事情。

  當然,如果業(yè)務分析師從各種視角把業(yè)務分析的透徹完美,開發(fā)人員可以寫非常有價值的測試,也可以做各種類型的手動測試,那么去掉專職QA也不是不可以,那樣的話不是不需要QA,而是人人都是QA。

  結論

  以上列出來的七點是剛剛接觸敏捷測試時很容易進入的誤區(qū),甚至有的觀點在一些已經(jīng)施行敏捷很長時間的團隊中仍然存在,這些觀點很容易導致敏捷測試走上彎路,以上是結合實際項目經(jīng)驗個人的一些思考,希望對大家有所幫助。

相關文章推薦
從頭開始構建網(wǎng)站并托管和維護或改造舊網(wǎng)站需要聘請一支擁有技能和專業(yè)知識的團隊。如果您不想進一步擴大團隊,不想經(jīng)歷招聘大手筆,或者想降低離岸成本,北京軟件開發(fā)外包...
物聯(lián)網(wǎng) ( IoT ) 概念首次出現(xiàn)時,曾有大膽預測稱,到 2020 年,物聯(lián)網(wǎng)連接設備數(shù)量將達到 500 億甚至數(shù)萬億。這些極高的估值引發(fā)了炒作,但最終被證明...
下一代工業(yè)進步被稱為工業(yè)4.0,旨在將傳統(tǒng)行業(yè)(如自動化)互聯(lián)互通并實現(xiàn)計算機化。工業(yè)4.0的目標是使工廠變得更加智能,提高適應性和資源效率,以及改善工廠之間供...
企業(yè)需要強大且可靠的在線形象才能取得成功。Magento 已成為領先的電子商務平臺,為各種規(guī)模的企業(yè)提供強大的功能和定制選項。對于希望通過基于 Magento ...
近幾年最大的發(fā)展趨勢之一是移動應用程序加密。正如我們最近所寫,主要的消息應用程序正在朝著為用戶提供端到端加密默認設置的方向發(fā)展——這是有充分理由的。隨著公眾開始...
通過與北京軟件公司?合作,企業(yè)可以獲得所需的熟練開發(fā)人員,以加速創(chuàng)新和發(fā)展。北京軟件公司 可以通過提供成熟的開發(fā)人員和定制解決方案來幫助企業(yè)彌補開發(fā)人員短缺的差距并實現(xiàn)業(yè)務增長。...
物聯(lián)網(wǎng) ( IoT ) 概念首次出現(xiàn)時,曾有大膽預測稱,到 2020 年,物聯(lián)網(wǎng)連接設備數(shù)量將達到 500 億甚至數(shù)萬億。這些極高的估值引發(fā)了炒作,但最終被證明...
  現(xiàn)在智能手機的普遍流行,帶動了整個北京APP軟件開發(fā)行業(yè),北京APP開發(fā)行業(yè)在信息服務很快占據(jù)了一定的影響力。智能手機的軟件部分就是由各個APP組建而成,北京APP軟件開發(fā)成...
北京軟件開發(fā)測試驅動開發(fā)...
作為 北京軟件公司 軟件開發(fā)人員,您希望您的潛在客戶和合作伙伴對您的公司充滿信心。您是否知道軟件開發(fā)托管協(xié)議可以幫助將信任注入到本地或軟件即服務(SaaS)應用程序的購買...
無疑重要加害了消耗者的權益。 電信運營商材干不偷用戶的流量嗎? 無須諱言,背后里它還偷呢!難道非要總理再次點名,進修北京軟件拓荒公司。題目是運營商不只收費高貴,明顯...
軟件開發(fā)公司在項目開發(fā)實施中關系數(shù)據(jù)庫用于保存信息或數(shù)據(jù)...
?