騰訊老鳥談軟件測試的完整流程

前言:測試的過程并不是固定的灵份,要靈活的變化

其實測試的過程并不是固定的仁堪,它只是一種規(guī)范,也可以把它當作一種指導(dǎo)填渠。但是真實的產(chǎn)品測試和項目測試中弦聂,一定是要靈活運用的,甚至是在不斷的根據(jù)實際情況變化氛什。我在其他平臺莺葫、app上討論軟件測試時,經(jīng)常提到:項目測試和 產(chǎn)品測試一定是不一樣的枪眉。

  產(chǎn)品測試一定有非常完整的發(fā)版計劃捺檬,有充足的的時間,有充足的資源進行協(xié)調(diào)贸铜,即使因為一些特殊的原因未能按時完成發(fā)版計劃堡纬,也可以進行延期。所以產(chǎn)品測試都會盡量的去進行完成的全級別測試蒿秦。

  項目測試一般時間都非常緊烤镐,資源有限,發(fā)生意外的情況很多棍鳖,任務(wù)時間都是被極度壓縮炮叶。到目前為止我經(jīng)歷過大大小小幾十個項目,沒有一個是能按計劃時間充足的上線渡处。所以項目測試一般會大量的精簡測試過程镜悉,甚至為了按時上線做出一些犧牲,犧牲掉一些不重要的功能医瘫,來優(yōu)先保證 重點功能侣肄、常用功能。

  一登下、文檔評審

  首先是需求文檔

在系統(tǒng)開始開發(fā)之前茫孔,產(chǎn)品經(jīng)理會根據(jù)收集到的用戶意見和最終方案編寫需求文檔,編寫完成后被芳,要進行需求文檔評審缰贝;說是評審,實際上主要是需求講解畔濒。給開發(fā)們講解業(yè)務(wù)知識剩晴、我們要做什么東西、為什么這么做、要做成什么樣子赞弥。從這個環(huán)節(jié)開始毅整,測試人員就應(yīng)該介入進來。

  因為需求文檔是測試人員測試的唯一標準绽左!

將來做測試的時候悼嫉,如果開發(fā)做出來的東西和需求文檔里寫的、畫的不一樣拼窥,都屬于BUG戏蔑!如果開發(fā)說是需求改了或者說是產(chǎn)品經(jīng)理說的,那么抱歉鲁纠,請修改需求文檔总棵!所以,嚴格來說改含,測試人員在測試時只認文檔不認人情龄。可能有人會說捍壤,那這樣測試人員就沒必要參加評審了骤视,直接等文檔就行。

  測試人員參加需求文檔的評審的必要性:

  1.測試人員也需要了解和學(xué)習(xí)相關(guān)的業(yè)務(wù)知識鹃觉。

  2.測試人員需要知道產(chǎn)品最終的上線目標是什么尚胞,來判斷什么時候能達到交付的程度。

  3.測試人員可以憑借經(jīng)驗對需求文檔中的部分設(shè)計提出不同的意見帜慢。

  4.測試人員可以憑借經(jīng)驗對需求文檔中沒有涉及到的一些異常情況和特殊場景進行討論。

  然后是開發(fā)文檔

  需求文檔定型之后唯卖,開發(fā)經(jīng)理會根據(jù)需求文檔來編寫開發(fā)文檔粱玲。

  開發(fā)文檔的內(nèi)容大概包括:開發(fā)模型、代碼架構(gòu)拜轨、代碼規(guī)范抽减、接口規(guī)范、數(shù)據(jù)庫設(shè)計…

為什么測試要參加開發(fā)文檔的評審橄碾?其實主要是去聽測試人員需要了解系統(tǒng)的基本架構(gòu)和實現(xiàn)原理卵沉,方便分析問題原因:

  · 測試人員需要了解數(shù)據(jù)庫表結(jié)構(gòu),對后續(xù)的測試很有必要法牲。

  · 測試人員可以提出一些規(guī)范性的要求史汗,便于后面的測試。(比如要求前端人員盡量給所有前端組件加上id或name屬性拒垃,方便自動化測試時定位元素)停撞。

  · 測試人員可以發(fā)現(xiàn)代碼中缺少對某些異常場景的邏輯判斷。

  最后是測試計劃

測試計劃是測試人員的工作量預(yù)估,也是將來測試人工作考核績效的重要依據(jù)戈毒。

  測試計劃的內(nèi)容包括:測試范圍是什么艰猬、分為哪些階段、什么時間點完成什么埋市、測試的具體內(nèi)容列表(流程冠桃、功能、接口)道宅、測試資源的成本(人/天)等等食听。

  測試計劃是測試人員的工作守則和規(guī)范。

  但是產(chǎn)品的誕生過程中培己,免不了出現(xiàn)各種各樣的特殊情況碳蛋,所以實際的測試可能會跟測試計劃有所出入。

所以測試報告中需要寫明與測試計劃產(chǎn)生偏差的原因省咨,并計算變差量肃弟,分析偏差的風(fēng)險。

  最終的測試過程和測試結(jié)果還是以 測試報告 為準零蓉。

  二笤受、單元測試(又稱組件測試 component testing)

單元測試其實在平時比較少做,并不是因為它不重要敌蜂,因為單元測試就是代碼級別的測試箩兽。組件測試(也稱為單元或模塊測試)關(guān)注在可單獨測試的組件。組件測試的目標包括:

  1.降低風(fēng)險

  2.驗證組件的功能和 非功能行為是否符合設(shè)計和規(guī)定

  3.建立對組件質(zhì)量的信心

  4.發(fā)現(xiàn)組件中的缺陷

  5.防止缺陷遺漏到更高的測試級別

  簡單的舉個例子章喉,現(xiàn)在開發(fā)做了一個新增的方法汗贫。

  單元測試就是要寫一個測試類或測試方法,調(diào)用開發(fā)的新增方法(新增肯定還要傳值)秸脱,并且在調(diào)用過程中模擬一些異常情況或者傳輸錯誤的值落包。所以單元測試一般由開發(fā)人員來完成,測試人員也可以去做摊唇,但是首先測試人員需要有一定的編碼能力并搭建開發(fā)環(huán)境咐蝇,其次測試人員需要去理解和分析開發(fā)的相關(guān)代碼,甚至是要了解和學(xué)習(xí)相關(guān)架構(gòu)巷查。

  現(xiàn)在成熟的開發(fā)框架已經(jīng)自帶的很多測試的組件和工具有序,以Springboot為例,可以直接導(dǎo)入測試依賴包岛请。

  <dependency>

  ? ? <groupId>org.springframework.boot</groupId>

  ? ? <artifactId>spring-boot-starter-test</artifactId>

  ? ? <scope>test</scope>

  </dependency>

  使用idea自動創(chuàng)建測試類,也可以自己手動創(chuàng)建:

  寫測試類

  @RunWith(SpringRunner.class)

  @SpringBootTest

  public class TestImpl2Test {

  @Autowired

  @Qualifier(“testImpl2”)

  ITestServer iTestServer;

  @Test

  public void test(){

  iTestServer.showClassName();

  }

  }

  綜上所述旭寿,由開發(fā)人員來進行單元測試,要更加便捷和高效髓需,更節(jié)約成本许师,幾乎是舉手之勞。而且能培養(yǎng)開發(fā)自測的良好習(xí)慣,關(guān)注代碼質(zhì)量的重要性微渠。

  三搭幻、敏捷測試(Agile testing)(可選)

  在開發(fā)人員進行開發(fā)的這個階段,測試人員無法對產(chǎn)品直接進行測試逞盆,工作任務(wù)較輕可以安排測試人員進行測試用例的編寫檀蹋。

對于一些緊急的項目,可以引進敏捷測試云芦。敏捷測試是最近幾年比較流行的測試方法俯逾,也擁有了眾多的擁護者。還引出了一個測試思想——測試驅(qū)動開發(fā)(TDD )這個概念有時間我單拎出來寫舅逸。

  敏捷測試的最大特點是高頻率的快速迭代桌肴,幾乎是一天一個迭代版本,甚至是一天多個版本琉历。

  敏捷測試是遵循敏捷宣言的一種測試實踐:

  1.強調(diào)從客戶的角度坠七,即從使用系統(tǒng)的用戶角度,來測試系統(tǒng)旗笔。

  2.重點關(guān)注持續(xù)迭代地測試新開發(fā)的功能彪置,而不再強調(diào)傳統(tǒng)測試過程中嚴格的測試階段。

  3.建議盡早開始測試蝇恶,一旦系統(tǒng)某個層面可測拳魁,比如提供了模塊功能,就要開始模塊層面的單元測試撮弧,同時隨著測試深入潘懊,持續(xù)進行回歸測試保證之前測試過內(nèi)容的正確性。

  這種高頻率的迭代測試贿衍,可以極大地提升產(chǎn)品成型的速度卦尊,bug能在最短時間內(nèi)被處理。

這種測試非成喑考驗測試人員的抗壓、責(zé)任心忿薇、領(lǐng)導(dǎo)力和溝通協(xié)調(diào)能力裙椭。

  但是敏捷測試也有很多的缺點,在這里我只談自己的感受署浩,如果有不對的地方可以留言和我討論:

  測試人員工作壓力大揉燃,休息時間少,幾乎沒有喘息的時間筋栋。

  不同版本的bug管理比較混亂炊汤,驗證起來需要梳理清楚,最好是借助專業(yè)的管理工具。

  bug反復(fù)性高抢腐,可能在短時間內(nèi)甚至不會出現(xiàn)bug逐步下降的正常趨勢姑曙,而是產(chǎn)生較大的波動。

  開發(fā)無法按照bug等級來確定工作優(yōu)先級迈倍,因為可能在改一個中等bug伤靠,突然來了嚴重bug,也得等上一個bug改完的啼染。

需求改動頻繁宴合,可能昨天做的功能或者做一半的功能突然就舍棄掉了。所以我們正常的測試中一般不會去做敏捷測試迹鹅,但是有些公司比較推崇卦洽。

  四、集成測試(integration testing)斜棚、系統(tǒng)測試(system testing)

  集成測試的重點就是測試各模塊的接口阀蒂,也就是組件或系統(tǒng)之間的交互。

  集成測試側(cè)重于集成測試的目標包括:

  1.減少風(fēng)險

  2.驗證接口的功能和非功能行為是否符合設(shè)計和規(guī)定

  3.建立對接口質(zhì)量的信心

  4.發(fā)現(xiàn)缺陷( 可能存在于接口本身打肝,也可能存在于組件或系統(tǒng)內(nèi)部

  5.防止缺陷遺漏到更高的測試級別

  與組件測試一樣脂新,在某些情況下,自動化集成的回歸測試可以增強信心粗梭,因為即使產(chǎn)品有變更

  也不會破壞已有的接口争便、組件或系統(tǒng) 。

  系統(tǒng)測試側(cè)重于整個系統(tǒng)或產(chǎn)品的行為和能力断医,通常會考慮系統(tǒng)可開展的端到端任務(wù)和開展這些任務(wù)時所展現(xiàn)的非功能行為滞乙。

  系統(tǒng)測試的目標包括:

  1.減少風(fēng)險。

  2.驗證系統(tǒng)的功能和非功能行為是否按照設(shè)計和指定的要求進行驗證系統(tǒng)的功能和非功能行為是否按照設(shè)計和指定的要求進行鉴嗤。

  3.確認已完成系統(tǒng)成且系統(tǒng)按預(yù)期工作確認已完成系統(tǒng)成且系統(tǒng)按預(yù)期工作斩启。

  4.建立對整個系統(tǒng)質(zhì)量的信心建立對整個系統(tǒng)質(zhì)量的信心。

  5.發(fā)現(xiàn)缺陷發(fā)現(xiàn)缺陷醉锅。

  6.防止缺陷遺漏到更高的測試級別或生產(chǎn)防止缺陷遺漏到更高的測試級別或生產(chǎn)兔簇。一般情況下,系統(tǒng)測試的測試環(huán)境應(yīng)該與集成測試的相同硬耍。

  我為什么把集成測試和系統(tǒng)測試放在一起垄琐,因為我們在做測試的時候,經(jīng)常是集成測試和系統(tǒng)測試同時進行经柴。

  集成測試意味著開發(fā)已經(jīng)完成所有模塊的開發(fā)狸窘,并且對產(chǎn)品有了一定的信心。

  所以我們通常是直接進行集成和系統(tǒng)測試坯认,也就是全用例翻擒、全流程氓涣、全功能、全接口的測試陋气。測試環(huán)境由測試人員進行搭建劳吠,盡量與生產(chǎn)環(huán)境一致。

  測試期間測試環(huán)境不允許開發(fā)人員訪問恩伺,直到一輪測試結(jié)束赴背。

  一輪結(jié)束后會將測試環(huán)境包括數(shù)據(jù)庫移交給開發(fā),用來復(fù)現(xiàn)相關(guān)問題晶渠,并查找問題原因凰荚。開發(fā)提交新一輪測試后,測試人員重新搭建環(huán)境進行測試褒脯。

  五便瑟、驗收測試(acceptance testing)

  驗收測試通常側(cè)重于整個系統(tǒng)或產(chǎn)品的行為和功能。

  驗收測試通常是由客戶番川、業(yè)務(wù)用戶到涂、產(chǎn)品負責(zé)人 或系統(tǒng)操作員負責(zé),也可能涉及其他利益相關(guān)方 颁督。

  驗收測試的目標包括:

  1.建立對整個系統(tǒng)質(zhì)量的信心

  2.確認系統(tǒng) 是否完整 且系統(tǒng)將按預(yù)期工作

  3.驗證系統(tǒng)的功能和非功能行為 符合規(guī)范

  六践啄、其他(確認測試、回歸測試)

  確認測試:修復(fù)缺陷后沉御, 應(yīng)該在軟件的最新版本上屿讽,重新執(zhí)行之前因該缺陷而導(dǎo)致失敗的測試用例 。為了覆蓋修復(fù)缺陷所 需 的變化吠裆, 也可以使用新的測試來測試軟件伐谈。至少必須在新的軟件版本上重新執(zhí)行這些由缺陷引起失效的步驟。

  確認測試的目的是確認是否已成功修復(fù)原來的缺陷试疙。

  回歸測試:部分代碼所做的變更诵棵, 無論是修復(fù)代碼,還是其他類型的更改祝旷,都可能會意外地 影響到除更改代碼外的其他部分代碼的行為履澳,不管是在同一組件內(nèi),還是在同一系統(tǒng)的其他組件中怀跛,甚至在其他系統(tǒng)中奇昙。變更也可能包括環(huán)境的變化 ,例如操作系統(tǒng)或數(shù)據(jù)庫管理系統(tǒng)的新版本敌完。這種意外的副作用被稱為回歸。

  回歸測試的目的是運行測試來檢測這些意外的副作用羊初。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滨溉,一起剝皮案震驚了整個濱河市什湘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晦攒,老刑警劉巖闽撤,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異脯颜,居然都是意外死亡哟旗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門栋操,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闸餐,“玉大人,你說我怎么就攤上這事矾芙∩嵘常” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵剔宪,是天一觀的道長拂铡。 經(jīng)常有香客問我,道長葱绒,這世上最難降的妖魔是什么感帅? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮地淀,結(jié)果婚禮上失球,老公的妹妹穿的比我還像新娘。我一直安慰自己骚秦,他們只是感情好她倘,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著作箍,像睡著了一般硬梁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胞得,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天荧止,我揣著相機與錄音,去河邊找鬼阶剑。 笑死跃巡,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的牧愁。 我是一名探鬼主播素邪,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼猪半!你這毒婦竟也來了兔朦?” 一聲冷哼從身側(cè)響起偷线,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沽甥,沒想到半個月后声邦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡摆舟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年亥曹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恨诱。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡媳瞪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出胡野,到底是詐尸還是另有隱情材失,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布硫豆,位于F島的核電站龙巨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏熊响。R本人自食惡果不足惜旨别,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望汗茄。 院中可真熱鬧秸弛,春花似錦、人聲如沸洪碳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瞳腌。三九已至绞铃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嫂侍,已是汗流浹背儿捧。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挑宠,地道東北人菲盾。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像各淀,于是被迫代替她去往敵國和親懒鉴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

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