敏捷測試相關(guān)面試題

準備換工作嗎?作為一個測試人員,今天赴面試現(xiàn)場,往往會被問到一系列有關(guān)敏捷測試的問題。即使是一個開發(fā)人員,同樣也免不了。

表情包.jpg

現(xiàn)在就幫忙大家做一些準備,這里列出最常見的34個敏捷測試面試的Q&A。

1 . 作為測試人員,面對需求不斷變更時應該采取什么措施或方法?

當需求不斷變化時,持續(xù)敏捷測試者應該采取以下方法 :
編寫通用測試計劃和測試用例,重點在于關(guān)注需求的意圖,而不是其確切的細節(jié)。
為了了解需求變更的范圍,與Product Owners (PO) 或著是業(yè)務分析員進行密切合作。
確保團隊明白需求變更所涉及到的風險,特別是在迭代后期階段。
如果你要進行功能測試自動化,最好等待,直到功能穩(wěn)定而且需求不再發(fā)生變化。
通過協(xié)商或者實行下一個迭代的更改,可以將需求變化控制在一個很小的幅度。

(對于測試者和開發(fā)者來說,產(chǎn)品經(jīng)理修改需求是常見的場景,這也就是為什么行業(yè)里面會有“”PM立字據(jù)“的傳說,有一種更好一點的解決方法可能是 探索式測試+自動化測試,或者是 本迭代新功能的探索式測試 和上一迭代穩(wěn)定功能的自動化腳本開發(fā)。探索式測試來發(fā)現(xiàn)新問題,自動化測試保證系統(tǒng)的老版本上沒有因為修改導致出現(xiàn)新的問題)

2 . 列舉出探索式測試(在敏捷中使用)和基于腳本的測試的利弊

1.png

3 . 解釋極限編程和Scrum的區(qū)別

3.png

(探索式測試并不僅僅使用,只是探索式測試和敏捷開發(fā)模式是天生的一對 )

4 . 什么是敘事詩(Epic)、用戶故事和任務?
敘事詩:客戶描述的、在Product Backlog中所列舉的軟件功能被稱作為敘事詩。敘事詩被分解為許多用戶故事。
用戶故事:用戶故事從用戶的角度來考慮問題,它定義了項目或業(yè)務功能,并按預期在特定的迭代被交付。
任務:進一步將用戶故事劃分成不同的任務。

5 . 解釋什么是重構(gòu)?

為了提高代碼的性能和可讀性,針對現(xiàn)有的代碼進行修改,這就是重構(gòu)。在重構(gòu)時,代碼的功能不變。
(也就是項目組要還的技術(shù)債。。。)

6 . 解釋如何用不同的團隊能力衡量迭代的速度?

通常,當計劃迭代時,迭代的速度通過基于歷史數(shù)據(jù)的專業(yè)判斷來進行度量。然而,用于計算迭代速度的數(shù)學公式:
完成故事點x 團隊的能力:如果你用每周40小時的百分比來衡量能力
完成故事點/團隊能力:如果你用工時來衡量能力

對于我們的情況,第二種方法是適用的。

7 . 說一下sprint backlog和product backlog的關(guān)鍵區(qū)別?

Product backlog包含一張全部需要功能的清單并且由PO編寫。
Sprint backlog是開發(fā)團隊擁有的Product backlog的一部分,并且將這些承諾放在迭代中。它是在迭代計劃會議(SprintPlanning Meeting)中所創(chuàng)建的。

8 . 在敏捷中提到的增量和迭代開發(fā)有什么不同?

迭代:迭代方法是一個連續(xù)軟件開發(fā)的過程,軟件開發(fā)周期重復(迭代&發(fā)布,sprint & releases),直到最終的產(chǎn)品實現(xiàn)。
版本1:迭代1, 2, …, n
......
版本n:迭代1, 2, …, n

增量:增量開發(fā)將系統(tǒng)功能劃分成若干個開發(fā)或部分。在每個增量開發(fā)中,從需求到部署之間的環(huán)節(jié),由不同部門負責不同部分的功能,能夠合并在一起運行。
(其實,在今天的開發(fā)模型中。。。增量和迭代已經(jīng)沒有那么明顯的分界線,我更愿意理解為一種學術(shù)上的人為分類 )

9 . 解釋敏捷中的spike和第0個迭代(Zero Sprint),其目的是什么?

迭代0:在開始第一次迭代之前,它被引入來做一些研究。通常這個迭代在項目啟動時,用于開發(fā)環(huán)境的設置、準備Product backlog等。
Spikes:Spikes被用來表示研究、探索、設計甚至原型等活動的原型(簡陋而快速的實現(xiàn))。在迭代之間,可以采取spikes來應對與工作相關(guān)的任何技術(shù)或者設計問題。Spikes分為技術(shù)Spikes和功能Spikes兩種類型。

(迭代0 更多的工作就是需求分析/定義:形成Product backlog,架構(gòu)設計、數(shù)據(jù)庫設計等 )

10 . 什么是TDD?

TDD,測試驅(qū)動開發(fā),也被稱作為測試驅(qū)動設計。在“測試驅(qū)動開發(fā)”這種實踐中,開發(fā)者首先編寫一個描述新功能或者改進的自動化測試用例(測試腳本/測試代碼),然后編寫一些零碎的代碼來運行該測試,然后重新確定新代碼以滿足可接受的標準。
(TDD是包含兩部分:ATDD與UTDD。
ATDD(Acceptance Test Driven Development):驗收驅(qū)動測試開發(fā),首先BA或者QA編寫驗收測試用例,然后Dev通過驗收測試來理解需求和驗收條件,并編寫實現(xiàn)代碼直到驗收測試用例通過。
由于驗收方法和類型也是多種多樣的,所以根據(jù)驗收方法和類型的不同,ATDD其實是包含BDD(Behavior Driven Development)、EDD(Example Driven Development),F(xiàn)DD(Feature Driven Development)、CDCD(Consumer Driven Contract Development)等各種的實踐方法。
比如以軟件的行為為驗收標準,這個是BDD;如果以特定的實例數(shù)據(jù)為驗收標準,這個是EDD;如果以Web Service API消費者提出API契約來驅(qū)動API提供者開發(fā)API,這個是CDCD等。所以ATDD的具體實現(xiàn)需要結(jié)合項目的實際情況來選用適合的驗收測試方法與類型。
UTDD(Unit Test Driven Development):單元驅(qū)動測試開發(fā),首先Dev編寫單元測試用例,然后編寫實現(xiàn)代碼直到單元測試通過。這個就是現(xiàn)在很多人所謂的TDD、實踐的TDD、喜歡的TDD、抱怨的TDD,但是它卻只是真正意義上TDD的一部分而已。)

11 . 原型和線框圖(wireframes)被廣泛用于什么的一部分?

原型和線框圖都是原型,被廣泛用作經(jīng)驗設計的一部分。

12 . 解釋什么是應用二進制接口?

在不同的系統(tǒng)平臺和環(huán)境中,以二進制形式定義應用程序可移植性要求的API規(guī)范稱為應用程序二進制接口。

13 . 解釋敏捷中的燃盡圖,包括burn-up chart 和 burn-down chart?

為了跟蹤項目進度的開始和結(jié)束,使用這些圖表。
burn-up chart(燃起圖):它顯示了隨著時間的推移,故事開發(fā)的進展狀態(tài)。
burn-down chart(燃盡圖):顯示還有多少工作要做。

4.png

14 . 解釋什么是Scrum ban?

Scrum ban是一個基于Scrum和看板的軟件開發(fā)模式。它專門為需要頻繁維護的項目而設計,經(jīng)常會遭遇預料不到的用戶故事和程序錯誤。使用這些方法,團隊的工作流程將以每個用戶故事或編程錯誤的最小完成時間為導向。

15 . 什么是故事點/投入/標度(points/efforts/ scales)?

它用來討論沒有分配時間的故事的難度。最常見的標度是斐波那契序列(1, 2, 3, 5, 8,13,...,100),不過有些團隊使用線性標度(1, 2, 3, 4 ...),2的次方(1, 2, 4, 8 ......)和衣服尺寸標度(XS,S,M,L,XL)

16 . 解釋什么是曳光彈(Tracer Bullet)?

曳光彈是當前架構(gòu)的Spikes,是當前最好的一套實踐,是當前生產(chǎn)質(zhì)量代碼的技術(shù)集合。它不是一段扔掉的代碼,但可能僅僅是一個粗糙的功能實現(xiàn).

17 . 什么是測試Stub?

測試Stub是一個少量代碼的模塊,它可以替代被測系統(tǒng)中未開發(fā)或完全開發(fā)的組件。測試Stub被設計成通過產(chǎn)生特定的已知的輸出并且替代實際的組件這樣一種方式。

6.png

18 .統(tǒng)一過程(Rational Unified Process)和Scrum方法有什么區(qū)別?

1.png

19 . 為什么持續(xù)集成對敏捷很重要?
持續(xù)集成對于敏捷來說很重要,因為以下原因:
● 通過發(fā)現(xiàn)缺陷或集成錯誤,可以幫助保持及時發(fā)布產(chǎn)品。
● 由于頻繁的敏捷代碼交付,通常每個迭代(sprint)是2-3周,穩(wěn)定的構(gòu)建質(zhì)量是必須的,并且持續(xù)集成確保做到這一點
● 幫助維護代碼庫的高質(zhì)量狀態(tài)(bug很少)
● 如果開發(fā)工作使用自動構(gòu)建和合并功能,則持續(xù)集成有助于檢查工作分支對主干的影響。

20 . 在敏捷過程中進行了哪些測試?
在敏捷過程中,主要的測試活動是自動化單元測試和探索式測試。
但是,根據(jù)項目的需求,測試人員可以在被測應用(Application Under Test,AUT)上執(zhí)行功能測試和非功能性測試。

21 .解釋敏捷中的速度(Velocity)是什么?
速度是一種度量,是根據(jù)在迭代中所完成的用戶故事相關(guān)的各種努力來估算出來的。它計算出在敏捷的一個迭代中可以完成多少工作,以及完成一個項目需要多少時間。

22 . 優(yōu)秀的敏捷測試人員應該具備哪些素質(zhì)?
優(yōu)秀的敏捷測試人員應該具備以下素質(zhì):
● 能夠很快地理解需求
● 敏捷測試人員應該了解敏捷原則和概念
● 隨著需求不斷變化,測試人員應該了解其中的風險
● 基于需求,敏捷測試人員應該能夠?qū)ぷ鬟M行優(yōu)先級排序
● 業(yè)務伙伴、開發(fā)人員和測試人員之間的持續(xù)溝通是必須的

23 . 誰都參與了敏捷團隊?
在敏捷中,兩個主要的領導者是:
● Scrum Master: 協(xié)調(diào)敏捷項目流程所需的絕大部分輸入和輸出
● 開發(fā)經(jīng)理: 他們雇傭合適的人,并與團隊一起培養(yǎng)他們。

24 . 詳細地描述Scrum Master 這個角色起什么作用?
Scrum Master的主要職責包括
● 了解需求并將其轉(zhuǎn)換為可工作的軟件
● 監(jiān)控和跟蹤
● 報告和溝通
● 過程檢查大師
● 質(zhì)量大師
● 克服障礙
● 解決沖突
● 保護團隊和績效反饋
● 領導所有會議,消除障礙

25 . 提到敏捷的質(zhì)量策略是什么?
敏捷質(zhì)量策略是:
● 重構(gòu)
● 非單一的(Non-solo)開發(fā)模式 (團隊共同開發(fā)模式)
● 靜態(tài)和動態(tài)代碼分析
● 復審和審查
● 迭代(sprint)演示
● 全員(all hands)演示
● 輕量型的里程碑評審
● 短的反饋周期
● 標準和指導方針

26 . 在開發(fā)敏捷項目時,屏幕截圖工具,有什么推薦?
在開發(fā)敏捷項目時,您可以使用類似工具:
● BugDigger
● ?BugShooting
● ?qTrace
● Snagit
● ?Bonfire
● ?Usersnap
(每次看到這個,總覺得是做工具的廠商在做軟廣)

27 . 在整個項目中保持一致的迭代周期,有什么好處?
好處是:
● 它幫助團隊客觀地衡量進展
● 它提供了一種測量團隊速度的一致方法
● 它有助于建立一致的交付模式

28 . 如果一個時間段計劃的任務優(yōu)先級需要再排序,誰應該做這件事?
如果一個時間段(time-box,可以看作一個迭代)計劃需要重新排序(優(yōu)先級排序),應該由整個團隊、PO和開發(fā)人員來考慮。

29 .提到燃盡圖應該強調(diào)什么?
燃盡圖顯示了在時間段(迭代)結(jié)束之前需要完成的剩余工作。

30 .提到Scrum和敏捷之間的區(qū)別是什么?
● Scrum: 在Scrum中,sprint是開發(fā)的基本單位。每一個sprint后面都有一個計劃會議,在這個會議中,sprint的任務被確定和估計。在每個sprint中,團隊創(chuàng)建產(chǎn)品的部分功能特性
● 敏捷: 在敏捷中,每次迭代都涉及到一個團隊,他們致力于完整的軟件開發(fā)生命周期,包括計劃、設計、編碼、需求分析、單元測試,以及當向項目干系人演示產(chǎn)品時所做的的驗收測試。
簡而言之,敏捷是實踐,scrum是遵循這一實踐的過程。

31 .提到敏捷軟件開發(fā)中所涉及的挑戰(zhàn)是什么?
敏捷軟件開發(fā)中涉及的挑戰(zhàn)包括:
● 需要更多的測試和客戶的參與
● 對管理的影響超過了開發(fā)人員
● 每個特性都需要在移動到下一個迭代之前完成
● 所有代碼都必須正常工作,以確保應用程序處于工作狀態(tài)
● 需要更多的計劃

32 .什么時候不使用敏捷?
在使用敏捷方法之前,您必須提出以下問題:
● 功能可以拆分嗎?
● 客戶在那里嗎(客戶可以和我們一起工作嗎)?
● 需求很靈活嗎?
● 時間限制真的很緊嗎?
● 團隊技能足夠強嗎?

33 . 解釋你如何以一種簡單的方式來實施scrum?
這些技巧可以幫助你在項目中實施scrum。
● 待辦事項(backlog)(按對客戶的價值)排好序
● 了解產(chǎn)品待辦事項各項的大小
● 闡明sprint的需求和持續(xù)時間,以完成迭代backlog
● 估算團隊sprint工作量,然后將需求分解為任務
● 協(xié)作工作區(qū):一個所有團隊討論的中心,包括計劃、路線圖、關(guān)鍵日期、功能的草圖、問題、日志、狀態(tài)報告等等。
● Sprint:確保在一段時間內(nèi)完成一部分功能,然后繼續(xù)下一個。除非沒有其他選擇,否則sprint不應該中止
● 參加每日的站立會議: 在會議上值得提一下,上次會議取得了什么成果?在下次會議前取得了什么成果?有沒有阻礙我們前進的障礙?
● 使用燃盡圖表來跟蹤每天的進度。從燃盡圖中,可以評估是在正常跑道上(正常狀態(tài))、還是在后面跑。
● 在進入下一個迭代之前完成每個特性;
● 在sprint結(jié)束的時候,召開一個sprint(迭代)回顧會議,展示sprint中的實現(xiàn)或交付。

34 . 解釋產(chǎn)品路線圖是什么意思?
產(chǎn)品路線圖是指創(chuàng)建產(chǎn)品遠景的產(chǎn)品特性的整體視圖。

譯自:Top 34 Agile Testing Interview Questions & Answers

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容