敏捷團(tuán)隊(duì)需要專職QA么地消?

敏捷QA對(duì)職業(yè)發(fā)展的擔(dān)憂

最近和組內(nèi)的QA聊起以后的職業(yè)發(fā)展炉峰,發(fā)現(xiàn)一個(gè)有意思的事情,有說(shuō)想轉(zhuǎn)BA的脉执,有說(shuō)想轉(zhuǎn)開發(fā)的疼阔,有說(shuō)想轉(zhuǎn)型作PM的,還有想以后往咨詢方向發(fā)展的半夷。很少有說(shuō)想在團(tuán)隊(duì)里面繼續(xù)作QA的婆廊。QA這個(gè)角色難道就這么沒(méi)有吸引力么?為什么都想轉(zhuǎn)型或者自己出去單干呢巫橄?和組里幾個(gè)QA聊了之后淘邻,發(fā)現(xiàn)主要因素在于對(duì)QA職業(yè)發(fā)展的擔(dān)憂,覺(jué)得敏捷團(tuán)隊(duì)對(duì)專職QA的需求并不大湘换。

記得我剛工作的時(shí)候還是有獨(dú)立測(cè)試團(tuán)隊(duì)的宾舅,那個(gè)時(shí)候分工很明確,我就負(fù)責(zé)windows mobile(現(xiàn)在叫windows phone)上應(yīng)用的自動(dòng)化測(cè)試彩倚,我的這個(gè)職位叫做SDET筹我,說(shuō)通俗點(diǎn)就是自動(dòng)化測(cè)試工程師。我們這個(gè)團(tuán)隊(duì)大概有10人帆离,測(cè)試完畢后將結(jié)果匯報(bào)給測(cè)試經(jīng)理蔬蕊。由于產(chǎn)品復(fù)雜,需要大量的測(cè)試工程師以保證產(chǎn)品能順利發(fā)布盯质。隨著更多功能的加入袁串,測(cè)試團(tuán)隊(duì)的人數(shù)也在增加,這段時(shí)間是QA最有價(jià)值感的時(shí)候呼巷,產(chǎn)品的發(fā)布最終都由你來(lái)把關(guān)囱修,你可以根據(jù)興趣來(lái)選擇以后做一個(gè)性能測(cè)試或者安全測(cè)試工程師等等,有明確的發(fā)展路線王悍。

但現(xiàn)在越來(lái)越多的公司選擇了敏捷轉(zhuǎn)型破镰,適應(yīng)變化和快速交付可工作的軟件成為了團(tuán)隊(duì)的關(guān)注點(diǎn)。從開發(fā)和用戶的角度看压储,他們會(huì)很樂(lè)意接受這個(gè)變化鲜漩,客戶可以不斷看到新功能,開發(fā)可以把精力從繁瑣的文檔和流程上釋放出來(lái)集惋,發(fā)揮想象和創(chuàng)意來(lái)提供更好的解決方案孕似。可對(duì)于QA來(lái)說(shuō)刮刑,敏捷帶來(lái)了什么好處呢喉祭?之前定期有一個(gè)可測(cè)的穩(wěn)定版本养渴,詳細(xì)的需求文檔就是我們參考的對(duì)象。現(xiàn)在要對(duì)一個(gè)不斷變化著的對(duì)象來(lái)進(jìn)行驗(yàn)證泛烙,也沒(méi)有一大段時(shí)間來(lái)設(shè)計(jì)自動(dòng)化框架理卑。我們?cè)趺磥?lái)保證質(zhì)量呢?

敏捷QA的測(cè)試職責(zé)

在敏捷的團(tuán)隊(duì)中蔽氨,質(zhì)量是由團(tuán)隊(duì)所有人來(lái)保證的藐唠,我剛開始聽到這句話就像聽到敏捷宣言一樣,知道這有道理鹉究,但具體怎么做呢宇立?如果質(zhì)量是團(tuán)隊(duì)的責(zé)任,那么專職的QA干什么呢坊饶?

首先我們來(lái)看在敏捷團(tuán)隊(duì)經(jīng)常用來(lái)保證測(cè)試用例達(dá)到平衡狀態(tài)的測(cè)試金字塔泄伪,簡(jiǎn)單來(lái)說(shuō)我們可以把更多的測(cè)試放在單元和服務(wù)級(jí)別殴蓬,因?yàn)檫@些用例更易維護(hù)和執(zhí)行匿级,運(yùn)行效率也更高,可以參照Martin FowlerTestPyramid染厅。

在這個(gè)框架下痘绎,很容易讓人產(chǎn)生這樣的誤解。

1. 開發(fā)負(fù)責(zé)單元測(cè)試肖粮,不需要QA參與

跟組里的開發(fā)討論過(guò)“是否需要QA參與到審查單元測(cè)試覆蓋率”的問(wèn)題孤页,開發(fā)通常會(huì)覺(jué)得用處不大,因?yàn)橛袑iT的工具比如:Cobertura涩馆, Jacoco, Istanbul等行施。這些工具的檢查范圍通常包括

行覆蓋率(line coverage):是否每一行都執(zhí)行了?

函數(shù)覆蓋率(function coverage):是否每個(gè)函數(shù)都調(diào)用了魂那?

分支覆蓋率(branch coverage):是否每個(gè)if代碼塊都執(zhí)行了蛾号?

語(yǔ)句覆蓋率(statement coverage):是否每個(gè)語(yǔ)句都執(zhí)行了?

而QA的檢查可以彌補(bǔ)單純的代碼級(jí)別的覆蓋涯雅。比如異常處理和邊界值的情況鲜结,代碼級(jí)別的覆蓋會(huì)檢查語(yǔ)句是否執(zhí)行了,但是不能檢查這段邏輯是不是寫了活逆。下面列舉出幾種常用的檢查方法:

等價(jià)類:把程序的輸入域(所有可能的輸入數(shù)據(jù))劃分成若干部分精刷,然后從每個(gè)部分中選取少數(shù)有代表性的數(shù)據(jù)作為測(cè)試用例。每一類的代表性數(shù)據(jù)在測(cè)試中的作用等價(jià)于這一類中其他值蔗候。

邊界值:邊界值分析法是對(duì)等價(jià)類劃分的補(bǔ)充怒允,它是對(duì)輸入或輸出的邊界值進(jìn)行測(cè)試的一種測(cè)試方法。我們這里所指的“邊界值”是相對(duì)于“輸入等價(jià)類”和“輸出等價(jià)類”而言的锈遥,稍高于其邊界或低于其邊界的一些特殊情況纫事。

決策表:在一些數(shù)據(jù)處理問(wèn)題當(dāng)中仰美,某些操作的實(shí)施依賴于多個(gè)邏輯條件的組合,即:針對(duì)不同邏輯條件的組合值儿礼,分別執(zhí)行不同的操作咖杂,判定表很適合于處理這類問(wèn)題。

因果圖:是一種利用圖解法分析輸入的各種組合情況蚊夫,從而設(shè)計(jì)測(cè)試用例的方法诉字,它適合于檢查程序輸入條件的各種組合情況。

有的QA會(huì)發(fā)現(xiàn)這些通常是用在黑盒測(cè)試?yán)锏姆椒ㄖ祝鋵?shí)把這些覆蓋盡可能的在單元或者服務(wù)級(jí)別來(lái)實(shí)現(xiàn)是一種既有效率壤圃,結(jié)果反饋又快,又可以直接作為回歸測(cè)試的一種很好的途徑琅轧。

在項(xiàng)目的實(shí)踐中我們可以看到QA參與到單元測(cè)試的審查有以下好處:

QA可以審查單元測(cè)試的覆蓋率伍绳,來(lái)調(diào)整單元測(cè)試以及后續(xù)接口測(cè)試和回歸測(cè)試的覆蓋率。之前做的項(xiàng)目都是開發(fā)獨(dú)自寫單元測(cè)試和接口測(cè)試乍桂,QA也獨(dú)自寫自動(dòng)化回歸測(cè)試冲杀,后來(lái)發(fā)現(xiàn)有很多的重復(fù)覆蓋,這也是種浪費(fèi)睹酌。如果能結(jié)對(duì)來(lái)做單元測(cè)試权谁,是種更高效的方式。

QA可以更清楚代碼對(duì)各個(gè)模塊的影響憋沿,這樣可以有針對(duì)性的設(shè)計(jì)回歸測(cè)試旺芽,比如之前項(xiàng)目有個(gè)小的改動(dòng),QA沒(méi)能在很短的時(shí)間進(jìn)行回歸測(cè)試辐啄,導(dǎo)致產(chǎn)品發(fā)布后遇到了問(wèn)題采章。有人會(huì)說(shuō)自動(dòng)化覆蓋所有回歸測(cè)試不就行了么?理論上是這樣的壶辜,但現(xiàn)實(shí)中有很多限制悯舟,只能通過(guò)手動(dòng)驗(yàn)證來(lái)完成回歸測(cè)試。這種情況下士复,精確定位回歸測(cè)試的范圍變得尤為重要了图谷。

QA對(duì)系統(tǒng)構(gòu)架、開發(fā)語(yǔ)言能有一個(gè)學(xué)習(xí)的過(guò)程阱洪,這有利于自動(dòng)化回歸測(cè)試的搭建便贵。

2. 開發(fā)更適合設(shè)計(jì)自動(dòng)化測(cè)試框架和接口測(cè)試,因?yàn)樗麄儗懘a更有效率

如果說(shuō)自動(dòng)化測(cè)試和接口測(cè)試的目的是比誰(shuí)寫代碼的效率更高冗荸,那么的確這些事情應(yīng)該由開發(fā)去做承璃,但是作為QA,參與其中的作用在于分析需求以及從客戶的角度來(lái)設(shè)計(jì)用例蚌本。

敏捷團(tuán)隊(duì)越來(lái)越多的應(yīng)用行為驅(qū)動(dòng)開發(fā)(BDD)來(lái)覆蓋基于服務(wù)和UI的測(cè)試盔粹。

1隘梨、QA會(huì)和PO,BA舷嗡,DEV轴猎,UX一起合作,分析軟件的需求进萄,然后將這些需求寫成用戶故事捻脖。開發(fā)者負(fù)責(zé)填充這些故事的內(nèi)容,測(cè)試者負(fù)責(zé)檢驗(yàn)這些故事的結(jié)果中鼠。通常可婶,會(huì)使用一個(gè)故事的模板來(lái)對(duì)故事進(jìn)行描述。

故事的模板:

As a 角色

I want 特征

so that 利益

比如:

As a?mobile App user

I want?to recharge the Mobile phone number with credit card

so that?I can have fee to give a call

2援雇、每一個(gè)story有可能會(huì)有不同的場(chǎng)景矛渴,可以用下面的模板來(lái)描述在什么環(huán)境下發(fā)生了什么事情,結(jié)果如何惫搏。

Given [上下文]

And [更多的上下文]

When [事件]

Then [結(jié)果]

And

比如:

Scenario:?Recharge with Credit card successfully

Given?I logged into the Mobile App

When?I go to Recharge page

Then?I can see the recharge option listed

And?I can see the Mobile phone number input box listed

When?I input the phone number

And?I select the recharge option as “Credit card”

And?I input the Credit card number

And?I click the Recharge Button

Then?I can see the “Recharge successfully” message shows

3具温、QA會(huì)和DEV一起合作來(lái)實(shí)現(xiàn)這些story的自動(dòng)化測(cè)試,常用的工具:

Cucumber (Ruby framework)

SpecFlow (.NET framework)

Behave (Python framework)

JBehave (Java framework)

JBehave Web (Java framework with Selenium integration)

Lettuce (Python framework)

Concordion (Java framework)

3. 開發(fā)交互進(jìn)行基于UI的測(cè)試就行了晶府,不需要專門的QA進(jìn)行測(cè)試

如果說(shuō)基于UI的測(cè)試就是執(zhí)行測(cè)試用例桂躏,那么的確不需要專職QA來(lái)做钻趋,但是在敏捷的團(tuán)隊(duì)中基于UI的測(cè)試大部分是以探索性測(cè)試來(lái)完成的川陆。怎么設(shè)計(jì)好的探索性測(cè)試用例才是專職QA的價(jià)值所在。

有人說(shuō)探索性測(cè)試就是手動(dòng)測(cè)試蛮位,有的說(shuō)是隨機(jī)測(cè)試较沪,有的說(shuō)就是把自己當(dāng)用戶來(lái)使用軟件的測(cè)試。

什么是探索性測(cè)試失仁?下面是wikipedia上面的定義:

Exploratory testing?is an approach to?software testing?that is concisely described as simultaneous learning,?test design?and test execution.?Cem Kaner, who coined the term in 1984,[1] defines exploratory testing as “a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the quality of his/her work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project.

看完這個(gè)解釋更迷惑了尸曼,探索性測(cè)試到底是什么東西?

舉個(gè)簡(jiǎn)單的例子萄焦,我們聚餐的時(shí)候有時(shí)候會(huì)玩猜數(shù)字的游戲控轿,主持會(huì)寫下一個(gè)數(shù)字,大家輪流猜拂封,主持會(huì)提示大了或者小了茬射。那么下一個(gè)人會(huì)根據(jù)這個(gè)提示來(lái)繼續(xù)猜,直到有人猜中這個(gè)數(shù)字冒签。這其實(shí)就是探索測(cè)試的原理在抛,每次都會(huì)根據(jù)之前的結(jié)果來(lái)設(shè)計(jì)下次的數(shù)字,那個(gè)被猜數(shù)字就是defect萧恕,每一次猜測(cè)都是測(cè)試用例刚梭。如果你想用最少的次數(shù)來(lái)猜中這個(gè)數(shù)字肠阱,就需要有高效的方法,探索測(cè)試也是如此朴读。

敏捷QA存在的價(jià)值

以上簡(jiǎn)單的描述了在敏捷團(tuán)隊(duì)中屹徘,QA在測(cè)試中的職責(zé):

審查單元測(cè)試的覆蓋率

和開發(fā)結(jié)對(duì)搭建基于服務(wù)和UI的測(cè)試

探索性測(cè)試

其實(shí)QA還有很多面向客戶的職責(zé),比如需求澄清以及產(chǎn)品演示衅金,會(huì)在后續(xù)的文章去討論缘回。

隨著敏捷的項(xiàng)目越來(lái)越多,對(duì)QA的需求不是越來(lái)越少典挑,而是越來(lái)越高酥宴,QA需要像一個(gè)好的家庭主婦一樣,能里能外您觉,在團(tuán)隊(duì)內(nèi)部能更好的平衡測(cè)試設(shè)計(jì)拙寡,在外部能更好的體現(xiàn)產(chǎn)品價(jià)值。在一個(gè)快速變化的時(shí)代琳水,在持續(xù)快速交付的情況下保證質(zhì)量是一件很困難的事情肆糕,解決這個(gè)問(wèn)題就是QA存在的價(jià)值。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末在孝,一起剝皮案震驚了整個(gè)濱河市诚啃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌私沮,老刑警劉巖始赎,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異仔燕,居然都是意外死亡造垛,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門晰搀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)五辽,“玉大人,你說(shuō)我怎么就攤上這事外恕「硕海” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵鳞疲,是天一觀的道長(zhǎng)罪郊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)建丧,這世上最難降的妖魔是什么排龄? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上橄维,老公的妹妹穿的比我還像新娘尺铣。我一直安慰自己,他們只是感情好争舞,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布凛忿。 她就那樣靜靜地躺著,像睡著了一般竞川。 火紅的嫁衣襯著肌膚如雪店溢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天委乌,我揣著相機(jī)與錄音床牧,去河邊找鬼。 笑死遭贸,一個(gè)胖子當(dāng)著我的面吹牛戈咳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播壕吹,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼著蛙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了耳贬?” 一聲冷哼從身側(cè)響起踏堡,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎咒劲,沒(méi)想到半個(gè)月后顷蟆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缎患,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年慕的,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挤渔。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖风题,靈堂內(nèi)的尸體忽然破棺而出判导,到底是詐尸還是另有隱情,我是刑警寧澤沛硅,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布眼刃,位于F島的核電站,受9級(jí)特大地震影響摇肌,放射性物質(zhì)發(fā)生泄漏擂红。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一围小、第九天 我趴在偏房一處隱蔽的房頂上張望昵骤。 院中可真熱鬧树碱,春花似錦、人聲如沸变秦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蹦玫。三九已至赎婚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間樱溉,已是汗流浹背挣输。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留福贞,地道東北人歧焦。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像肚医,于是被迫代替她去往敵國(guó)和親绢馍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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

  • 敏捷QA對(duì)職業(yè)發(fā)展的擔(dān)憂 最近和組內(nèi)的QA聊起以后的職業(yè)發(fā)展,發(fā)現(xiàn)一個(gè)有意思的事情你稚,有說(shuō)想轉(zhuǎn)BA的瓷耙,有說(shuō)想轉(zhuǎn)開發(fā)的...
    ThoughtWorks閱讀 1,311評(píng)論 2 14
  • 本文首發(fā)于【林子的空間[https://www.bylinzi.com/2013/02/01/agile-qa/]...
    BY林子閱讀 1,089評(píng)論 0 3
  • 這篇文章主要總結(jié)了我對(duì)于敏捷項(xiàng)目中總體測(cè)試策略的理解,主要來(lái)自于工作上的實(shí)踐和思考刁赖。 測(cè)試策略的定義 先看下維基百...
    做測(cè)試的DanteYu閱讀 5,755評(píng)論 4 33
  • 失戀是什么感覺(jué)搁痛,就是你害怕想起和她在一起的一切時(shí)光,到時(shí)候淚水肆意宇弛,情緒時(shí)空鸡典,固然害怕想起,但又害怕自己忘記枪芒,并且...
    范鑫閱讀 193評(píng)論 1 0
  • 隨手畫畫彻况,入門,但我想我還是可以的舅踪。只要堅(jiān)持纽甘,什么事都能做成的吧,fighting!
    聽說(shuō)春還在閱讀 203評(píng)論 3 2