国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

如何有效執(zhí)行測(cè)試

2017-12-11 14:16:21王雪松楊菲
電腦知識(shí)與技術(shù) 2017年31期
關(guān)鍵詞:歸納操作測(cè)試

王雪松 楊菲

摘要:作為有效的測(cè)試執(zhí)行,需要有策略、有目的地完成用戶可能完成的操作。既不被用例約束,也不因自己的喜惡而變得隨意。在發(fā)現(xiàn)故障后,我們還需要?dú)w納出故障的復(fù)現(xiàn)方法,以保證反饋給開發(fā)的是一個(gè)最佳的復(fù)現(xiàn)路徑。

關(guān)鍵詞:測(cè)試;歸納;故障;操作

中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)31-0251-03

1 問題的提出

用例執(zhí)行,其主要目是對(duì)功能進(jìn)行一個(gè)覆蓋測(cè)試,而不是著重于某一細(xì)節(jié),因此故障暴露程度受到一定限制。

自由測(cè)試,雖然強(qiáng)調(diào)故障暴露程度,但是由于操作過程較為隨意,存在測(cè)試覆蓋不全面的隱患。

我們需要如何把握好兩種測(cè)試方法,并在此基礎(chǔ)上完成有效測(cè)試呢?

2 解決思路

結(jié)合用例,而不限制于用例;自由執(zhí)行,而不隨意執(zhí)行。

我們以此開展測(cè)試,當(dāng)掌握好測(cè)試原理并對(duì)用例熟知后,就可以同時(shí)做好兩件事。

本文介紹了個(gè)人的測(cè)試執(zhí)行心得,并對(duì)尋找故障復(fù)現(xiàn)路徑的方法進(jìn)行一些介紹,為后續(xù)測(cè)試執(zhí)行人員提供參考。

3 實(shí)踐情況

3.1 執(zhí)行用例

如果是測(cè)試新人,那么很可能是從用例執(zhí)行開始學(xué)習(xí)測(cè)試的。

用例執(zhí)行是一種能很快熟悉測(cè)試業(yè)務(wù)的方式,我們可以從用例執(zhí)行開始一步一步成長(zhǎng)起來:

(1) 養(yǎng)成循序漸進(jìn)的測(cè)試習(xí)慣

執(zhí)行用例過程中,除了熟悉手機(jī)的各個(gè)功能,還可以對(duì)用例設(shè)計(jì)思路有所了解。

高質(zhì)量的用例其測(cè)試目的明確,測(cè)試步驟有序,通常從主要且常用的操作延伸至次要、不常用的操作。

這樣的思路可以幫助我們養(yǎng)成良好的測(cè)試習(xí)慣——先測(cè)基本功能,后關(guān)注細(xì)節(jié)。

無論哪一種類型的測(cè)試,最主要的、最常用的功能總是應(yīng)該放在首位測(cè)試。

因此,即便是基本的用例執(zhí)行工作,我們也可以養(yǎng)成一種循序漸進(jìn)的測(cè)試習(xí)慣,這對(duì)日后把握好測(cè)試節(jié)奏很有幫助。

(2) 從“使用”向“測(cè)試”過渡

作為新人,之前對(duì)測(cè)試的認(rèn)知可能還停留在“使用”階段。

使用和測(cè)試不同,使用一般只會(huì)涉及最常用的操作和數(shù)據(jù)。

而測(cè)試,強(qiáng)調(diào)目的性和策略性。

有經(jīng)驗(yàn)的測(cè)試人員總是更容易發(fā)現(xiàn)軟件缺陷,并且找到復(fù)現(xiàn)路徑。

因此,在用例執(zhí)行階段,我們可以跟著用例逐步從“使用”向“測(cè)試”過渡。

(3) 熟悉用例取值,掌握測(cè)試基本要領(lǐng)

我們可以通過執(zhí)行高質(zhì)量的用例,根據(jù)用例設(shè)計(jì)者的思路來掌握一些基本的“策略”和“目的”。

這些“策略”和“目的”可以來自于用例設(shè)計(jì)者的取值方法,比如來自于等價(jià)類法和邊界值法。

試想一下,為什么同樣編輯一條短消息,有的人會(huì)發(fā)現(xiàn)問題,有的人沒有發(fā)現(xiàn)問題呢?

取值不同,輸入的數(shù)據(jù)不同,得到的結(jié)果完全不一樣。

這些最有代表性的取值,用例中都能體現(xiàn)。

所以,在新入職的時(shí)候,執(zhí)行一下用例,是快速成長(zhǎng)起來的好方法。

3.2 拋開用例

不少測(cè)試書籍中提到:測(cè)試需要排除隨意性。

隨意的測(cè)試,主要是擔(dān)心無法覆蓋基本功能,因受到測(cè)試人員的經(jīng)驗(yàn)不足、性格因素等影響而遺漏某些操作。

但是,我們?cè)跍y(cè)試中也往往發(fā)現(xiàn),自由測(cè)試發(fā)現(xiàn)的故障會(huì)更多。

有沒有方法可以既不隨意也能自由發(fā)揮呢?

(1) 循序漸進(jìn),把握測(cè)試節(jié)奏

其實(shí),在我們熟悉了某個(gè)模塊后,在對(duì)整個(gè)測(cè)試用例熟悉后、在擁有完整的測(cè)試思路后,自由而不隨意的測(cè)試是可以實(shí)現(xiàn)的。

比如,在某個(gè)XXX項(xiàng)目中,需要針對(duì)通話模塊進(jìn)行測(cè)試,用例通常會(huì)包含這樣幾方面:

① 語音電話

② 附加業(yè)務(wù)

③ 電話菜單

在每一個(gè)功能點(diǎn)下,用例再逐步展開,如語音通話又包括主叫和被叫,附加業(yè)務(wù)又需要考慮呼叫轉(zhuǎn)移、呼叫限制等等。

高質(zhì)量的用例會(huì)循序漸進(jìn),先對(duì)主要功能進(jìn)行驗(yàn)證,后查看細(xì)節(jié)或者并發(fā)操作。

那么自由測(cè)試也可以按此思路執(zhí)行:先測(cè)基本功能和常用操作,再逐步擴(kuò)展用例加入并發(fā)測(cè)試,層層深入。

借此,我們可以很好地把握自由測(cè)試的節(jié)奏,而不是漫無目的地執(zhí)行某一個(gè)細(xì)節(jié)操作,最終覆蓋不到全局。

(2) 組合用例,減少操作步驟

自由測(cè)試可以自行發(fā)揮,將多條用例銜接操作。

比如,這里有五條通話模塊的用例:

用例一:測(cè)試機(jī)在待機(jī)輸入固話號(hào)碼并呼出,對(duì)方接聽。

用例二:測(cè)試機(jī)呼叫固話,對(duì)方接聽,測(cè)試機(jī)按end鍵掛斷通話。

用例三:測(cè)試機(jī)呼叫固話,對(duì)方接聽,進(jìn)入message模塊,發(fā)送短信。

用例四:測(cè)試機(jī)呼叫固話,對(duì)方接聽,通話過程中有鬧鐘到時(shí)。

用例五:測(cè)試機(jī)呼叫固話,對(duì)方接聽,通話過程中有收到短信,進(jìn)入查看。

作為測(cè)試新人,需要按部就班執(zhí)行五條用例。

但是作為熟悉該模塊和用例的人員來說(比如我們的流水線模塊測(cè)試專家),可以通過一次操作執(zhí)行五條用例,而所做的只是改變一下順序:

用例一:

步驟1:設(shè)置一個(gè)2分鐘后的鬧鐘。

步驟2:測(cè)試機(jī)回到待機(jī),呼叫固話,固話接聽。

步驟3:進(jìn)入message模塊,發(fā)送短信給自己。

步驟4:收到自己發(fā)送的短信,進(jìn)入查看。

步驟5:之前設(shè)置的鬧鐘到時(shí)。

步驟6:固話側(cè)掛斷通話。

這樣操作,不僅壓縮了用例,而且串行的操作比單一的操作更容易發(fā)現(xiàn)問題。

(當(dāng)然,這些只是作為我們執(zhí)行人員的自由操作步驟。作為指導(dǎo)測(cè)試的用例來說可能并不適合按此編寫,無法體現(xiàn)其循序漸進(jìn)的測(cè)試思路,也可能因其耦合度過高在早期版本無法執(zhí)行等。)

(3) 以自由測(cè)試完成用例執(zhí)行

如果能做到以上兩點(diǎn),此時(shí)就可以拋開用例,以自己最習(xí)慣、且效率最高的方式去自由執(zhí)行。

在整個(gè)執(zhí)行過程中,我們有目的、有策略。我們的自由操作融入了每一條測(cè)試用例,要達(dá)到自由而不隨意的測(cè)試目的就變得簡(jiǎn)單了。

最后,只需要根據(jù)實(shí)際測(cè)試結(jié)果反饋用例執(zhí)行情況,整個(gè)用例執(zhí)行過程變得高效。

3.3 超越用例

功能覆蓋和故障發(fā)現(xiàn)是不同的兩個(gè)概念。

因此,要發(fā)現(xiàn)更多故障,肯定要超出用例的范圍。

(1) 關(guān)注用例遺漏的取值

不可否認(rèn),再完善的用例也總會(huì)存在遺漏,一些細(xì)節(jié)和不常用的操作可能沒有寫為用例。

比如,在輸入法測(cè)試中,用例對(duì)字符個(gè)數(shù)的測(cè)試著重點(diǎn)可能是:

0 字符

滿額字符

1/2滿額字符

(這里單指輸入法模塊,不涉及短消息等其他模塊)

如果按此分類,有沒有遺漏其他重要的值?

至少有以下幾個(gè)重要值被遺漏:

① 單行

② 滿行

③ 滿屏

這三個(gè)重要的取值如果用例沒有涉及的話,就需要引起我們重視了。

單行,涉及滿一行后光標(biāo)的跳轉(zhuǎn),增加一個(gè)字就換行,減少一個(gè)字就還原到一行。此時(shí)光標(biāo)在行前行后的切換也是關(guān)注點(diǎn)。

滿行,滿行和滿額不同,滿行需要考驗(yàn)最大行數(shù)的處理。并不是滿足了滿額的條件就同時(shí)能滿足滿行的條件,因?yàn)槲覀兛梢灾苯虞斎胍粋€(gè)回車符產(chǎn)生一行。那么,原本只能輸入100個(gè)字符(3~4行)的界面就需要接受100行的考驗(yàn)。作為用戶不易操作的功能,這里可作為一個(gè)擴(kuò)展。

滿屏,比起滿行的操作來,這是一個(gè)用戶很容易遇到的問題。滿屏的問題就在于滾動(dòng)條的切換。多一個(gè)字會(huì)產(chǎn)生滾動(dòng)條,少一個(gè)會(huì)消失,這里的關(guān)注點(diǎn)可能在于滾動(dòng)條的切換情況等等。

(2) 模擬測(cè)試環(huán)境

為什么外場(chǎng)測(cè)試總是能發(fā)現(xiàn)很多家里無法發(fā)現(xiàn)的問題呢?

網(wǎng)絡(luò)的復(fù)雜是一個(gè)重要的原因。

在外場(chǎng)某處特殊的網(wǎng)絡(luò)環(huán)境下,經(jīng)常會(huì)看到無法連接網(wǎng)絡(luò)、無法打電話、無法發(fā)消息等故障反饋。

在家里,可能無法模擬那么多特殊的網(wǎng)絡(luò)環(huán)境。但是可以嘗試多種狀態(tài)的切換對(duì)手機(jī)的考驗(yàn),如有網(wǎng)、無網(wǎng)、找網(wǎng)、錯(cuò)誤網(wǎng)絡(luò)這樣的情況我們?cè)谵k公室內(nèi)就可以模擬。

最容易出現(xiàn)故障的網(wǎng)絡(luò)狀態(tài)可能是不停切換的網(wǎng)絡(luò)狀態(tài),從有網(wǎng)——無網(wǎng)——有網(wǎng),如此不停地循環(huán)切換。

測(cè)試中可以累積一些小技巧來創(chuàng)造這樣的網(wǎng)絡(luò)環(huán)境,比如通話中將手機(jī)放進(jìn)一個(gè)金屬茶葉罐,這樣就模擬了有網(wǎng)——掉網(wǎng)——無網(wǎng)的情況。再將手機(jī)從茶葉罐中取出,則又模擬了無網(wǎng)——重新找網(wǎng)——有網(wǎng)。

通過類似的小技巧,我們可以模擬一些簡(jiǎn)單的網(wǎng)絡(luò)弱信號(hào)和切換,以此在辦公室里就進(jìn)行一次“小型場(chǎng)測(cè)”。

另外,我們還可以擴(kuò)展網(wǎng)絡(luò)狀態(tài)切換的概念、嘗試結(jié)合邊界值法并入并發(fā)測(cè)試,在網(wǎng)絡(luò)切換的一瞬間執(zhí)行某一操作,比如:來電后進(jìn)入無信號(hào)區(qū)域,掉網(wǎng)的同時(shí)按接聽或者掛斷等等。類似操作,往往都是小概率故障復(fù)現(xiàn)的關(guān)鍵。

(3) 注重用戶習(xí)慣

注重用戶的習(xí)慣,經(jīng)常把自己當(dāng)成一個(gè)用戶,以用戶的習(xí)慣去使用手機(jī)。

有的用戶喜歡沒事滑蓋、盒蓋,這是一種用戶習(xí)慣。

有的用戶喜歡經(jīng)常在觸摸屏上來回劃線,這也是一種用戶習(xí)慣。

用戶的習(xí)慣千奇百怪,這里我們能代表的用戶可能只是我們自己,那就以我們自己的習(xí)慣去使用手機(jī),而不僅僅作為一個(gè)測(cè)試人員。

按此設(shè)想,我們的測(cè)試思路是否又有所拓寬呢?

可以借此把用戶可能遇到而用例設(shè)計(jì)者難以想到的問題挖掘出來。

(4) 反其道而行

這種方法和剛才說的以用戶習(xí)慣測(cè)試的方式是完全相反的。

以用戶使用習(xí)慣出發(fā)的測(cè)試,就是把自己當(dāng)做用戶,所思所想均為用戶可能的操作。

而完全相反的操作方法就是努力尋求自己或者一般用戶不易執(zhí)行、而開發(fā)人員也容易忽略的操作。

舉一個(gè)例子,在E520項(xiàng)目的測(cè)試中,曾經(jīng)發(fā)現(xiàn)這樣一個(gè)故障:

步驟1:用立體聲藍(lán)牙耳機(jī)播放音樂。

步驟2:音樂播放界面鬧鐘到時(shí)。

步驟3:鬧鐘到時(shí)界面直接按藍(lán)牙耳機(jī)的上一曲/下一曲功能。

操作結(jié)果:測(cè)試機(jī)MMI被異常調(diào)起,測(cè)試機(jī)死機(jī)。

作為用戶的使用習(xí)慣,在鬧鐘到時(shí)后常見的操作是:關(guān)閉鬧鐘,按下延時(shí)開關(guān),或者不執(zhí)行任何操作。

開發(fā)人員除了考慮正常操作外也會(huì)加入一些并發(fā)事件的考慮:比如來電、來鬧鐘、低電等等。

那么有什么是用戶不易使用而開發(fā)人員也容易忽略的呢?

這里,可以把自己想象成一個(gè)笨拙的、怪異的用戶,去操作一些不能以常理推斷的操作。

在這個(gè)故障中,普通用戶既然已經(jīng)知曉音樂播放器被掛起,也就不會(huì)去繼續(xù)操作此時(shí)毫無意義可言的藍(lán)牙耳機(jī)了。而另一方面,開發(fā)也難以想象音樂播放器被掛起后,還有人會(huì)去操作藍(lán)牙耳機(jī)。

我們就把自己想象成這樣一個(gè)怪異的用戶,別人越不喜歡的操作我們?cè)饺ゲ僮?,最終得以發(fā)現(xiàn)這個(gè)故障。

類似反其道而行的測(cè)試思路,通常會(huì)放在主要功能測(cè)試之后,作為對(duì)用例遺漏點(diǎn)的一個(gè)覆蓋。

(5) 關(guān)注測(cè)試疲勞

測(cè)試疲勞一般產(chǎn)生在長(zhǎng)時(shí)間測(cè)試同一功能后,現(xiàn)象是興趣下降、故障暴露能力降低等等。

再優(yōu)秀的測(cè)試人員都無法完全避免測(cè)試疲勞。

所以,在測(cè)試中,我們需要關(guān)注當(dāng)前階段是否已經(jīng)存在疲勞測(cè)試的問題。疲勞測(cè)試的結(jié)果是投入大量時(shí)間和人力,卻只收獲到很小的成果。

這里,通常采用的方法就是交換測(cè)試模塊。交換測(cè)試模塊后,我們會(huì)著手一個(gè)全新模塊的測(cè)試,測(cè)試興趣會(huì)有所提高。而其他測(cè)試人員接手自己原來的模塊,這可以引入新視角,從而發(fā)現(xiàn)很多原來自己沒有發(fā)現(xiàn)的問題。

當(dāng)然,交換模塊也會(huì)存在一些問題:比如交換模塊后測(cè)試人員需要重新熟悉新模塊,這需要一定的時(shí)間,另外也可能存在故障重復(fù)提交等問題。

作為測(cè)試執(zhí)行人員,除了配合主測(cè)的策略外,此時(shí)也需要告知自己的困難,大家攜手把測(cè)試疲勞期過渡好。

3.4 擅于總結(jié)故障復(fù)現(xiàn)路徑

從故障的發(fā)現(xiàn)到復(fù)現(xiàn)可能并不是一帆風(fēng)順的,因?yàn)楹芏喙收虾茈y一次找到復(fù)現(xiàn)路徑。關(guān)于這一類非復(fù)現(xiàn)故障,我們往往需要重復(fù)測(cè)試。

下面介紹一下總結(jié)故障復(fù)現(xiàn)路徑的幾個(gè)常用方法:

(1) 復(fù)現(xiàn)路徑的回溯

最簡(jiǎn)單的做法就是重復(fù)前一次操作,即發(fā)現(xiàn)故障時(shí)執(zhí)行過什么操作,如法炮制重復(fù)一遍。

這個(gè)操作可發(fā)現(xiàn)大部分步驟較少、且較易復(fù)現(xiàn)的故障路徑。

而對(duì)于操作過于復(fù)雜、重復(fù)執(zhí)行后還是無法復(fù)現(xiàn)的問題,我們就會(huì)懷疑自己是否遺漏了某一個(gè)重要的操作步驟。

那么此時(shí),我們需要做的就是——擴(kuò)展復(fù)現(xiàn)路徑。

(2) 擴(kuò)展復(fù)現(xiàn)路徑

擴(kuò)展復(fù)現(xiàn)路徑,主要是在第一次發(fā)現(xiàn)故障的基礎(chǔ)上,考慮之前可能操作過的步驟。

這里,我們可以結(jié)合以往的測(cè)試經(jīng)驗(yàn),選擇可能執(zhí)行過的且容易波及的操作來執(zhí)行。

比如,在短消息測(cè)試中發(fā)現(xiàn)了收到消息中含有亂碼,那么在簡(jiǎn)單編寫和發(fā)送的基礎(chǔ)上,可以擴(kuò)展的步驟可能是:

發(fā)送字符可能到達(dá)某一個(gè)特定值(比如空/滿1條/滿多條/全滿);

發(fā)送字符可能含有特殊字符(比如漢字、西歐字符等等);

接收方號(hào)碼可能為不同網(wǎng)絡(luò)號(hào)碼。

當(dāng)然,擴(kuò)展這些步驟的前提仍是基礎(chǔ)步驟沒有錯(cuò)誤。只有基礎(chǔ)步驟正確的情況下,我們后續(xù)的擴(kuò)展才是有效的。

(3) 走出經(jīng)驗(yàn)的死角

如果在擴(kuò)展路徑后,仍然無法復(fù)現(xiàn)故障,那么我們需要開始考慮基本操作步驟是否正確。

就如上面所說的,擴(kuò)展復(fù)現(xiàn)路徑必須在基本操作無誤的情況下進(jìn)行,如果基本操作已經(jīng)被出錯(cuò),那么后續(xù)的操作肯定只會(huì)離真正的路徑越來越遠(yuǎn)了。

我們可以得到這樣的啟示,很多故障由于我們自己先入為主的錯(cuò)誤定位,而忽略了其實(shí)際操作步驟。在尋找故障復(fù)現(xiàn)方法的時(shí)候,又受到經(jīng)驗(yàn)的影響,只操作我們認(rèn)為重要的步驟。

所以此時(shí),我們需要走出這個(gè)死角,以新的角度去認(rèn)識(shí)故障。

不妨推翻以往一切的假設(shè),從不可能出發(fā),執(zhí)行我們之前從未認(rèn)為有必要的操作,它的結(jié)果可能是出人意料的。

(4) 復(fù)現(xiàn)路徑的提煉

當(dāng)能百分百復(fù)現(xiàn)故障后,那么說明故障復(fù)現(xiàn)步驟是完整的。

這個(gè)時(shí)候,需要對(duì)故障的復(fù)現(xiàn)路徑進(jìn)行一個(gè)提煉,保證反饋給開發(fā)人員的是一個(gè)最精簡(jiǎn)、最有效的步驟。

關(guān)于復(fù)現(xiàn)路徑的提煉,通常有最常用的兩種:

步驟遞減:在復(fù)現(xiàn)故障的基礎(chǔ)上一步一步減少操作步驟。比如之前需要進(jìn)行三個(gè)不同的并發(fā)操作才能復(fù)現(xiàn)該故障,那么可以減少到兩步,觀察是否復(fù)現(xiàn),最后把故障定位在唯一一個(gè)必須的操作步驟中。

步驟遞增:根據(jù)測(cè)試經(jīng)驗(yàn),分析操作步驟和故障的關(guān)聯(lián)性,將所有操作列出,只挑選最有關(guān)聯(lián)的幾個(gè)步驟操作。如果不復(fù)現(xiàn),再依次按關(guān)聯(lián)的大小增加操作步驟直至故障復(fù)現(xiàn)。

4 效果評(píng)價(jià)

本文結(jié)合用例執(zhí)行和自由測(cè)試的心得談及有效執(zhí)行測(cè)試的方法。

對(duì)于測(cè)試初學(xué)者來說,可以通過用例執(zhí)行來掌握測(cè)試思路,而對(duì)于有經(jīng)驗(yàn)的測(cè)試人員來說則可以結(jié)合用例做好有目的的自由測(cè)試。

而關(guān)于復(fù)現(xiàn)故障的方法,本文進(jìn)行了一些梳理,可供測(cè)試人員參考,以達(dá)到有效測(cè)試的目的。

5 推廣建議

本文介紹了個(gè)人的測(cè)試執(zhí)行心得,并對(duì)歸納故障復(fù)現(xiàn)路徑的方法進(jìn)行一些介紹,為后續(xù)測(cè)試執(zhí)行人員提供參考。

猜你喜歡
歸納操作測(cè)試
幽默大測(cè)試
幽默大師(2020年11期)2020-11-26 06:12:12
“攝問”測(cè)試
“攝問”測(cè)試
“攝問”測(cè)試
學(xué)習(xí)遷移理論在高中物理教學(xué)中的應(yīng)用
高考復(fù)習(xí)基因分離定律題型的歸納與探究
淺談小學(xué)英語學(xué)習(xí)習(xí)慣的培養(yǎng)
關(guān)于數(shù)控機(jī)床操作中防碰撞措施的探討及分析
泌尿外科手術(shù)及操作致輸尿管損傷臨床分析
淺談低年級(jí)數(shù)學(xué)教學(xué)中的操作能力
東方教育(2016年17期)2016-11-23 10:27:25
大丰市| 禹城市| 通江县| 巴马| 古蔺县| 宜宾市| 彭泽县| 台南市| 安仁县| 桦南县| 巍山| 盐山县| 政和县| 岳阳县| 辽宁省| 隆回县| 兴安县| 都匀市| 射洪县| 沾益县| 大埔区| 屯留县| 静海县| 香港| 宣化县| 海林市| 延庆县| 蒲江县| 南澳县| 凤城市| 家居| 桑植县| 固安县| 张家界市| 肇东市| 博白县| 宜良县| 墨竹工卡县| 密山市| 桐乡市| 寻乌县|