Raluca Gagea在軟件測試行業(yè)工作了5年,至今仍熱愛著它。 Raluca初是在一個(gè)公司開發(fā)一個(gè)計(jì)費(fèi)和客戶服務(wù)平臺中負(fù)責(zé)各種測試活動(dòng),她由此獲得了測試經(jīng)驗(yàn)。這引發(fā)了她對需求、測試分析、測試用例設(shè)計(jì)的興趣。 獲得必要的信心和質(zhì)量驅(qū)動(dòng)的一組動(dòng)作后,她開始在一家外包公司工作,在那她一直參與各種項(xiàng)目,現(xiàn)在已經(jīng)聚集了測試服務(wù)元素的不少新經(jīng)驗(yàn)。 過去的一年,她在一家信用卡處理公司職,她試著實(shí)施各種測試過程,包括親身卷入許多測試階段。 一步一步地,她正邁進(jìn)開發(fā)過程的測試管理角色。 除了她項(xiàng)目的相關(guān)活動(dòng), Raluca也很樂意協(xié)助公司內(nèi)部的一些研究組(一個(gè)是測試分析&設(shè)計(jì)組,一個(gè)是測試管理組)以及針對這些主題的其他培訓(xùn)活動(dòng)。 在這里,我們可以分享我們的經(jīng)驗(yàn),共同學(xué)習(xí),并指導(dǎo)新。 |
每推出一個(gè)產(chǎn)品,我發(fā)現(xiàn)測試用例設(shè)計(jì)問題越來越具有挑戰(zhàn)性,但我已經(jīng)學(xué)會了如何區(qū)分神話與現(xiàn)實(shí)之間的差異。我曾經(jīng)遇到的主要的神話都與測試用例的無益,難度,業(yè)務(wù)類型間的不兼容,測試人員的個(gè)人資料或開發(fā)進(jìn)程相關(guān)。這是神話。
不幸的是,我發(fā)現(xiàn),與測試用例及需求的可跟蹤性相關(guān)的一切,僅被視作被一個(gè)正式推出過程強(qiáng)制實(shí)行的強(qiáng)制性過程,但它不被認(rèn)為像實(shí)際上那樣有價(jià)值。這導(dǎo)致了低效率,無知和“匆忙”測試。這是現(xiàn)實(shí)。
本文中,我想和大家分享我關(guān)于可以使測試用例設(shè)計(jì)觀念非凡的Soft Touch的意見。
何時(shí)適合開始考慮測試用例?
測試用例不僅僅是用來測試各種flow的一些句子。
測試用例是我們通過衡量需求覆蓋范圍及它們在開發(fā)過程中的每一點(diǎn)的狀態(tài)推出產(chǎn)品時(shí)證明信心的方法——要求是否被足夠多的測試用例覆蓋,某一點(diǎn)上的測試執(zhí)行狀態(tài)是否像期望的或計(jì)劃的那樣。
有了這個(gè)重大的責(zé)任,測試用例需要我們的一點(diǎn)幫助,以便終能夠向我們證明正確的事情。
他們需要在我們第一次接觸 “未來的產(chǎn)品”時(shí)被考慮在內(nèi),而不是一切緒時(shí)。 這意味著我們必須用我們收集的每條信息聯(lián)系他們。首先看看第一次接觸。
我們收到一些業(yè)務(wù)需求,也許不是終需求,也許在我們與客戶首次互動(dòng)……
▪他們是可測試的嗎?
如果是的話,那么我們可以繼續(xù)。如果不是,那么我們需要提出問題。
▪他們是終產(chǎn)品或業(yè)務(wù)的關(guān)鍵功能嗎?
如果是的話,我們要看哪種需要的測試集?我們?nèi)绾蝺?yōu)先考慮他們?改變花在審查測試用例、執(zhí)行它們、跟蹤執(zhí)行狀態(tài)、然后恢復(fù)初始優(yōu)先級上的精力的優(yōu)先級的幾率有多大?
▪如何構(gòu)造需求文檔?
比方說,我們收到用例模型。我們的第一反應(yīng)會是用佳測試場景及備選流,有可能還是使用擁有大量步驟的獨(dú)立設(shè)計(jì)風(fēng)格(這意味著每個(gè)測試用例可以單獨(dú)被執(zhí)行而不依賴于其它測試用例)去構(gòu)建基于由行為驅(qū)動(dòng)的功能流的測試用例。這并沒有錯(cuò),但我們?nèi)匀恍枰紤]一些其他因素,例如:
▪對于對客戶并不那么重要但其他場景運(yùn)行卻需要的關(guān)鍵功能,我們應(yīng)該分別對待,用較高優(yōu)先級而不是佳測試場景加以標(biāo)記。
▪由一個(gè)行動(dòng)者執(zhí)行的每個(gè)功能流都有需要操作的必要中間層。這意味著我們需要考慮他們的測試——特殊測試用例集,或另一種設(shè)計(jì)風(fēng)格或更詳細(xì)的編寫風(fēng)格。這意味著我們一定要考慮一些技巧去選擇有代表性的測試用例——至少一些等價(jià)類劃分及其邊界值。
▪測試用例中有終端到終端的flow可能意味著我們的測試用例有較高冗余度及如果初期常見的步驟之一不工作時(shí)阻擋整個(gè)執(zhí)行的高風(fēng)險(xiǎn)。分裂功能組件中終端到終端的flow或許可以更好地工作。
▪回歸測試 - 在獨(dú)立的測試用例上更容易做到,而不是在級聯(lián)的測試用例上。
▪我們可能想要或需要自動(dòng)化flow的某些部分,因?yàn)樗麄冎械囊恍┎荒苓M(jìn)行自動(dòng)化。這無疑表明了一個(gè)有時(shí)采用級聯(lián)方式的詳細(xì)的編寫風(fēng)格?紤]到終端到終端的flow的初始結(jié)構(gòu),我們一定會寫出另一個(gè)可以進(jìn)行自動(dòng)化的測試用例——另一項(xiàng)工作,包含目前其他測試用例中的相同信息,再一次造成了冗余。
▪有人考慮過非功能性的需求嗎?他們不可能被包含在我們剛剛收到的用例模型里,所以我們需要確保我們有一個(gè)他們的測試用例結(jié)構(gòu)。