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

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

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

  不需要測(cè)試策略

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

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

  其實(shí)這是一個(gè)很大的誤解,因?yàn)槊艚蒈浖_發(fā)通常都是迭代式的發(fā)布,周期比較短,資源非常有限,這就更需要我們統(tǒng)籌規(guī)劃,小到一個(gè)用戶故事,大到一個(gè)完整的用戶特性,都需要考慮怎么合理利用測(cè)試資源,所以敏捷項(xiàng)目是非常需要測(cè)試策略的。

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

  不需要測(cè)試文檔

  測(cè)試文檔通常包括測(cè)試計(jì)劃,測(cè)試用例,測(cè)試報(bào)告,測(cè)試缺陷等文檔以及相對(duì)應(yīng)的可以指導(dǎo)測(cè)試的一部分需求文檔。

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

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

  純自動(dòng)化測(cè)試 or 純手動(dòng)測(cè)試

  有些剛接觸敏捷的人認(rèn)為敏捷軟件開發(fā)發(fā)布周期很短, 測(cè)試人員根本沒(méi)有時(shí)間做手動(dòng)測(cè)試, 所以應(yīng)該采用純自動(dòng)化測(cè)試。

  也有一些人認(rèn)為,敏捷開發(fā)強(qiáng)調(diào)快速響應(yīng)變化,如果投入成本在自動(dòng)化測(cè)試上,那么肯定會(huì)導(dǎo)致維護(hù)自動(dòng)化測(cè)試帶來(lái)的資源浪費(fèi),所以應(yīng)該采用純手動(dòng)測(cè)試。

  這是兩種極端的誤解,雖然這兩種觀點(diǎn)所考慮到的難點(diǎn)確實(shí)存在, 因?yàn)樵诿艚蒈浖_發(fā)過(guò)程中, 迭代通常比較短,確實(shí)不會(huì)預(yù)留足夠多的時(shí)間來(lái)做手動(dòng)測(cè)試, 所以必須要有足夠多的自動(dòng)化測(cè)試來(lái)保障。

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

  至于關(guān)于自動(dòng)化測(cè)試維護(hù)成本的顧慮,敏捷項(xiàng)目也確實(shí)存在變化比較多的特點(diǎn),但通常變的都是比較接近用戶的部分,所以應(yīng)該盡量減少用戶級(jí)別的依賴界面的自動(dòng)化測(cè)試,而多增加一些不容易變化的底層的單元測(cè)試接口測(cè)試等。

  推薦敏捷測(cè)試以自動(dòng)化測(cè)試為主,手動(dòng)測(cè)試為輔。

  敏捷QA = 敏捷Tester

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

  這是一個(gè)很大的誤解,首先QA(Quality Assurance/Analyst),不是單純意義的測(cè)試人員,通過(guò)這個(gè)角色的名稱我們可以看的出來(lái)敏捷QA強(qiáng)調(diào)的是質(zhì)量保障和分析,而不單純是測(cè)試產(chǎn)品。

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

  非功能性測(cè)試不重要

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

  在敏捷軟件項(xiàng)目中,需求被切割成了很小的單元,在切割的過(guò)程中,非功能性需求是較容易被人忽略的一部分,而這導(dǎo)致的問(wèn)題就是非功能性測(cè)試經(jīng)常被團(tuán)隊(duì)忽略,久而久之,就會(huì)形成這樣一個(gè)誤解,認(rèn)為非功能性測(cè)試是不重要的。

  這個(gè)觀點(diǎn)非常不對(duì),首先非功能性測(cè)試的重要性并不會(huì)因?yàn)檐浖_發(fā)模式的不同而有所不同,尤其安全測(cè)試和性能測(cè)試的重要性正越來(lái)越多地被重視起來(lái),因?yàn)楹芏喈a(chǎn)品必須考慮到用戶敏感信息的安全以及性能導(dǎo)致的用戶滿意度,在敏捷項(xiàng)目中由于軟件會(huì)盡早發(fā)布,如果這些非功能性需求出現(xiàn)問(wèn)題,就會(huì)更早地造成影響,很可能在軟件剛步入市場(chǎng)就損失掉大多數(shù)的用戶。

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

  質(zhì)量是QA的事兒

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

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

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

  所以在敏捷測(cè)試中更多時(shí)候我們會(huì)淡化角色的概念,強(qiáng)調(diào)團(tuán)隊(duì)人人都為質(zhì)量負(fù)責(zé),這樣更有助于團(tuán)隊(duì)的每一位成員都把質(zhì)量作為非常重要的一部分,而不是依賴于某個(gè)人或者某個(gè)角色。

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

  因?yàn)槊艚輬F(tuán)隊(duì)強(qiáng)調(diào)人人都為質(zhì)量負(fù)責(zé),開發(fā)人員會(huì)采用TDD等方式寫大量的自動(dòng)化測(cè)試,那么是不是就不需要QA了?

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

  首先需求分析階段,QA可以從不同的視角對(duì)于需求提出疑問(wèn),補(bǔ)充,修改,因?yàn)镼A特有的技術(shù)背景,對(duì)于軟件的可用性等有更深入的理解,所以往往可以提出不同于業(yè)務(wù)分析師和開發(fā)人員的觀點(diǎn);開發(fā)階段,QA也會(huì)審查開發(fā)人員寫的自動(dòng)化測(cè)試,通過(guò)QA的專業(yè)測(cè)試背景幫助開發(fā)人員寫更有價(jià)值的測(cè)試,比如我們?cè)陧?xiàng)目中曾經(jīng)發(fā)現(xiàn)開發(fā)人員寫了很多沒(méi)有業(yè)務(wù)價(jià)值的測(cè)試;測(cè)試階段,探索性測(cè)試,可用性測(cè)試,安全測(cè)試,性能測(cè)試等都是QA們?cè)谧龅氖虑椤?/span>

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

  結(jié)論

  以上列出來(lái)的七點(diǎn)是剛剛接觸敏捷測(cè)試時(shí)很容易進(jìn)入的誤區(qū),甚至有的觀點(diǎn)在一些已經(jīng)施行敏捷很長(zhǎng)時(shí)間的團(tuán)隊(duì)中仍然存在,這些觀點(diǎn)很容易導(dǎo)致敏捷測(cè)試走上彎路,以上是結(jié)合實(shí)際項(xiàng)目經(jīng)驗(yàn)個(gè)人的一些思考,希望對(duì)大家有所幫助。

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