軟件測(cè)試

1. 軟件開發(fā)過程


軟件項(xiàng)目成員及其職責(zé):

  • 項(xiàng)目經(jīng)理:自始至終驅(qū)動(dòng)整個(gè)項(xiàng)目,通常負(fù)責(zé)編寫產(chǎn)品說明書撑蚌、管理進(jìn)度昙楚、進(jìn)行重大決策。
  • 體系架構(gòu)師或者系統(tǒng)工程師:產(chǎn)品小組中的技術(shù)專家扭屁,一般經(jīng)驗(yàn)豐富,可以勝任設(shè)計(jì)整個(gè)系統(tǒng)的體系架構(gòu)或軟件涩禀,他們的工作與程序員關(guān)系緊密料滥。
  • 程序員:設(shè)計(jì)、編寫軟件并修復(fù)軟件中的缺陷艾船,他們與項(xiàng)目經(jīng)理密切合作制作軟件葵腹,然后與項(xiàng)目經(jīng)理和測(cè)試人員密切合作修復(fù)缺陷。
  • 測(cè)試員或質(zhì)量保證(Quality Assurance屿岂,QA):負(fù)責(zé)找出報(bào)告軟件產(chǎn)品的問題践宴,他們與開發(fā)小組全部成員在開發(fā)過程中密切合作,進(jìn)行測(cè)試并報(bào)告發(fā)現(xiàn)的問題雁社。軟件測(cè)試員的目標(biāo)是盡可能早地找出軟件缺陷浴井,并確保缺陷得以修復(fù)。軟件質(zhì)量保證人員主要職責(zé)是創(chuàng)建和執(zhí)行改進(jìn)軟件開發(fā)過程并防止軟件缺陷發(fā)生的標(biāo)準(zhǔn)和方法霉撵,或者說主要職責(zé)是檢查和評(píng)價(jià)當(dāng)前軟件開發(fā)過程磺浙,找出改進(jìn)過程的方法,以達(dá)到防止軟件缺陷出現(xiàn)的目標(biāo)徒坡。
  • 配置管理員或構(gòu)建員:負(fù)責(zé)把程序員編寫的代碼及技術(shù)作者寫的全部文檔資料組合在一起撕氧,合成為一個(gè)軟件包。
軟件開發(fā)常見的模式:
  • 大爆炸模式:所有的精力都花在開發(fā)軟件和編寫代碼上喇完,計(jì)劃伦泥、進(jìn)度安排和正規(guī)開發(fā)過程幾乎沒有,最終產(chǎn)生的結(jié)果可能是優(yōu)秀的軟件產(chǎn)品也可能是廢品锦溪。這種模式的優(yōu)點(diǎn)是簡(jiǎn)單不脯。大多數(shù)情況下,這種模式?jīng)]有測(cè)試過程刻诊。
  • 邊寫邊改模式:這種方式通常最初只有粗略的想法防楷,接著進(jìn)行一些簡(jiǎn)單的設(shè)計(jì),然后開始漫長(zhǎng)的來回編寫则涯、測(cè)試和修改過程复局,等到覺得可以了就發(fā)布產(chǎn)品。
  • 瀑布模式:這種方式主要步驟是構(gòu)思——分析——設(shè)計(jì)——開發(fā)——測(cè)試——最終產(chǎn)品粟判,每一個(gè)步驟結(jié)束時(shí)亿昏,項(xiàng)目小組都組織審查,決定是否進(jìn)入下一步档礁。這種模式優(yōu)點(diǎn)是簡(jiǎn)潔角钩。該模式有三特點(diǎn):強(qiáng)調(diào)產(chǎn)品的定義、各個(gè)步驟都是分立的、無法回溯(一旦進(jìn)入某個(gè)步驟彤断,就要完成之后再進(jìn)行下一步)野舶。缺點(diǎn)是無法適應(yīng)快速變化。
  • 螺旋模式:這種模式每一次循環(huán)都包含六個(gè)步驟:確定目標(biāo)宰衙、可選方案和限制條件平道;明確并化解風(fēng)險(xiǎn);評(píng)估可選方案供炼;當(dāng)前階段的開發(fā)和測(cè)試一屋;計(jì)劃下一階段;確定進(jìn)入下一階段的方法袋哼。螺旋模式包含了一點(diǎn)瀑布模式(分析冀墨、設(shè)計(jì)、開發(fā)和測(cè)試)涛贯、一點(diǎn)邊寫邊改模式(螺旋模式的每一次循環(huán))诽嘉、和一點(diǎn)大爆炸模式(從外界觀察)。
  • 敏捷軟件開發(fā)Agile Software Development:又稱為快速原型弟翘、極限編程或者進(jìn)化開發(fā)等虫腋。主要思想是:通過過程和工具理解個(gè)人和交流的作用,通過全面的文檔理解運(yùn)行的軟件稀余,通過合同和談判得到客戶的協(xié)作悦冀,在計(jì)劃的執(zhí)行中做出對(duì)變更的響應(yīng)。
測(cè)試的原則
  1. 完全測(cè)試程序是不可能的
    想要找出軟件所有的缺陷睛琳,確保軟件完美無缺盒蟆,是不可能的,原因主要有:輸入量太大师骗、輸出結(jié)果太多历等、軟件執(zhí)行路徑太多、軟件說明書是主觀的辟癌。
  2. 軟件測(cè)試是有風(fēng)險(xiǎn)的行為
    軟件測(cè)試員無法做到完全測(cè)試募闲,所有一定會(huì)漏掉一些軟件缺陷,所以應(yīng)當(dāng)針對(duì)風(fēng)險(xiǎn)作出明智的抉擇愿待,找到最優(yōu)的測(cè)試量,使得測(cè)試不多不少靴患。
  3. 測(cè)試無法顯示潛伏的軟件缺陷
    軟件測(cè)試可以報(bào)告軟件缺陷的存在仍侥,但是不可以報(bào)告軟件缺陷的不存在。進(jìn)行測(cè)試可以發(fā)現(xiàn)并報(bào)告軟件缺陷鸳君,但是任何情況下都不能保證軟件缺陷沒有农渊。
  4. 找到的軟件缺陷越多,就說明軟件缺陷越多
    通常或颊,測(cè)試員很長(zhǎng)時(shí)間找不到軟件缺陷砸紊,找到一個(gè)之后會(huì)接二連三的找到更多传于。
  5. 軟件測(cè)試免疫力
    軟件測(cè)試的越多,其對(duì)測(cè)試的免疫力會(huì)越來越強(qiáng)醉顽,所以應(yīng)該嘗試不同的測(cè)試程序沼溜,找出更多軟件缺陷。
  6. 并非所有軟件缺陷都要修復(fù)
    根據(jù)風(fēng)險(xiǎn)決定哪些缺陷要修復(fù)游添。

2. 測(cè)試基礎(chǔ)


黑盒測(cè)試與白盒測(cè)試
  • 黑盒測(cè)試:又稱為功能性測(cè)試或行為測(cè)試系草。測(cè)試人員只需知道軟件要做什么(無需知道軟件如何運(yùn)行),只要進(jìn)行一些輸入唆涝,獲得輸出找都。
  • 白盒測(cè)試:有時(shí)稱為透明盒測(cè)試。測(cè)試人員可以訪問程序員的代碼廊酣,并通過檢查代碼的線索來協(xié)助測(cè)試能耻。
靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試
  • 靜態(tài)測(cè)試:只測(cè)試不運(yùn)行的部分——只檢查和審核。
  • 動(dòng)態(tài)測(cè)試:通常意義上的測(cè)試——使用和運(yùn)行軟件亡驰。
等價(jià)類劃分

選擇測(cè)試用例是測(cè)試人員最重要的任務(wù)晓猛,選擇測(cè)試用例的方法是等價(jià)類劃分,有時(shí)稱為等價(jià)分類隐解。等價(jià)類劃分指分步驟地把海量的測(cè)試用例集減得很小鞍帝,但過程同樣有效。在尋找等價(jià)劃分時(shí)煞茫,考慮把軟件具有相似輸入帕涌、相似輸出、相似操作的分在一個(gè)組续徽,這些組就是等價(jià)劃分蚓曼。
等價(jià)類劃分的目標(biāo)是把可能的測(cè)試用例集縮減到可控制且仍然足以測(cè)試軟件的小范圍內(nèi)。

測(cè)試邊界

提出邊界條件時(shí)钦扭,一定要測(cè)試臨近邊界的有效數(shù)據(jù)纫版,測(cè)試最后一個(gè)可能有效的數(shù)據(jù),同時(shí)測(cè)試剛超過邊界的無效數(shù)據(jù)客情。
在軟件的每一個(gè)部分不斷尋找邊界是極為重要的其弊,尋找做的越多,邊界就會(huì)發(fā)現(xiàn)的越多膀斋,可能找出的軟件缺陷就越多梭伐。

通過性測(cè)試和失敗狀態(tài)測(cè)試
  • 通過性測(cè)試:包括審查軟件、描繪狀態(tài)仰担、嘗試各種合法可能性糊识、確認(rèn)狀態(tài)以及轉(zhuǎn)換正常。
  • 失敗狀態(tài)測(cè)試:多任務(wù)測(cè)試和競(jìng)爭(zhēng)條件測(cè)試、重復(fù)測(cè)試(不斷執(zhí)行同樣的操作)赂苗、壓迫測(cè)試(盡可能地限制軟件的必要條件愉耙,將支持降到最低)、重負(fù)測(cè)試(盡可能提供條件讓軟件自行發(fā)揮拌滋,最大程度挖掘軟件能力)
正式審查
  • 同事審查:常常在編寫代碼或者設(shè)計(jì)體系結(jié)構(gòu)的程序員之間展開朴沿,審查代碼,尋找問題和失誤鸠真。
  • 走查:比同事審查更正規(guī)化悯仙,編寫代碼的程序員逐行或者逐個(gè)功能的通讀代碼,解釋代碼為什么且如何工作吠卷。審查人員聆聽敘述锡垄,提出有異議的問題。審查結(jié)束之后祭隔,表述者編寫報(bào)告說明發(fā)現(xiàn)的問題以及如何解決軟件缺陷货岭。審查人員之中至少有一位資深程序員。
  • 檢驗(yàn):最正式的審查類型疾渴。與走查不同之處是——表述者不是原來的程序員千贯。其余參與者(檢查員)是從不同角度(用戶、測(cè)試或者產(chǎn)品支持)審查代碼搞坝。
編碼標(biāo)準(zhǔn)和規(guī)范
  • 可靠性
  • 可讀性/維護(hù)性:符合設(shè)備標(biāo)準(zhǔn)和規(guī)范的代碼易于閱讀搔谴、理解和維護(hù)。
  • 移植性:代碼經(jīng)常需要在不同硬件中運(yùn)行桩撮,或者使用不同編譯器編譯敦第。
分段測(cè)試

在底層進(jìn)行的測(cè)試稱為單元測(cè)試或者模塊測(cè)試,找出底層軟件缺陷并修復(fù)店量,之后集成在一起芜果,對(duì)模塊組合進(jìn)行集成測(cè)試,不斷增加測(cè)試過程融师,加入越來越多的軟件片段右钾,直至整個(gè)產(chǎn)品或者產(chǎn)品的主要部分進(jìn)行測(cè)試,稱為系統(tǒng)測(cè)試旱爆。

代碼覆蓋

為了全面的覆蓋測(cè)試舀射,還必須測(cè)試程序的狀態(tài)以及程序流程,必須設(shè)法進(jìn)入和退出每一個(gè)模塊怀伦,執(zhí)行每一行代碼后控,進(jìn)入軟件每一條邏輯和決策分支,這種類型叫做代碼覆蓋測(cè)試空镜。
代碼覆蓋最直接的形式稱為語句覆蓋代碼行覆蓋,代碼覆蓋測(cè)試是一種動(dòng)態(tài)白盒測(cè)試。

測(cè)試基礎(chǔ)
  • 靜態(tài)黑盒測(cè)試:檢查產(chǎn)品說明書吴攒,并在軟件編寫之前找出問題张抄。
  • 動(dòng)態(tài)黑盒測(cè)試:在不了解軟件如何工作的前提下進(jìn)行測(cè)試。
  • 靜態(tài)白盒測(cè)試:通過正式審查和檢驗(yàn)檢查代碼的細(xì)節(jié)洼怔。
  • 動(dòng)態(tài)白盒測(cè)試:看到軟件的工作方式時(shí)署惯,根據(jù)獲得的信息對(duì)軟件進(jìn)行測(cè)試。

3. 測(cè)試技術(shù)


  • 配置測(cè)試:硬件配置測(cè)試镣隶,以及如何保證軟件在其設(shè)計(jì)運(yùn)行和連接得硬件上正常運(yùn)行极谊。指的是在各種硬件和軟件平臺(tái)類型以及其不同的設(shè)置情況下檢查軟件運(yùn)行的過程。
  • 兼容性測(cè)試:檢查軟件之間是否能夠正確的交互和共享信息安岂,檢查軟件和其他軟件一起運(yùn)行的過程轻猖。兼容性的定義根據(jù)產(chǎn)品特性來進(jìn)行,如果測(cè)試對(duì)象是操作系統(tǒng)域那,那么要求對(duì)文字處理程序和圖形程序進(jìn)行測(cè)試咙边;如果測(cè)試對(duì)象是應(yīng)用程序,那么就需要在多個(gè)不同的品臺(tái)上進(jìn)行兼容性測(cè)試次员。
  • 易用性測(cè)試:從人體工學(xué)角度败许,使得最終用戶認(rèn)為產(chǎn)品是好用的。
  • 安全性測(cè)試:任何軟件都有一個(gè)安全問題——緩沖區(qū)溢出淑蔚,應(yīng)該盡可能早地發(fā)現(xiàn)問題并解決市殷。使用安全字符串函數(shù),定期研究黑客攻擊手段刹衫,做好防范醋寝。
  • 自動(dòng)化測(cè)試:使用測(cè)試軟件自動(dòng)化的對(duì)軟件進(jìn)行測(cè)試。

單靠軟件測(cè)試無法保證產(chǎn)品質(zhì)量绪妹,軟件QA團(tuán)隊(duì)如何保證產(chǎn)品具有高質(zhì)量甥桂?

對(duì)項(xiàng)目進(jìn)行近似完全的控制,建立標(biāo)準(zhǔn)和方法論邮旷,有條理地仔細(xì)監(jiān)視和評(píng)估軟件開發(fā)過程黄选,對(duì)發(fā)現(xiàn)的過程問題反饋解決建議,執(zhí)行測(cè)試婶肩,擁有決定產(chǎn)品何時(shí)準(zhǔn)備發(fā)布的授權(quán)办陷。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末律歼,一起剝皮案震驚了整個(gè)濱河市民镜,隨后出現(xiàn)的幾起案子险毁,更是在濱河造成了極大的恐慌们童,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲸鹦,死亡現(xiàn)場(chǎng)離奇詭異慧库,居然都是意外死亡馋嗜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門葛菇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甘磨,“玉大人,你說我怎么就攤上這事眯停〖糜撸” “怎么了庵朝?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵九府,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我侄旬,道長(zhǎng),這世上最難降的妖魔是什么儡羔? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任汰蜘,我火速辦了婚禮,結(jié)果婚禮上族操,老公的妹妹穿的比我還像新娘。我一直安慰自己色难,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布娇昙。 她就那樣靜靜地躺著笤妙,像睡著了一般噪裕。 火紅的嫁衣襯著肌膚如雪股毫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天皇拣,我揣著相機(jī)與錄音薄嫡,去河邊找鬼。 笑死吩坝,一個(gè)胖子當(dāng)著我的面吹牛哑蔫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播闸迷,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼腥沽,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼逮走!你這毒婦竟也來了今阳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤墓臭,失蹤者是張志新(化名)和其女友劉穎妖谴,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體榆综,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铸史,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年琳轿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了判沟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吧秕,死狀恐怖迹炼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情砂碉,我是刑警寧澤刻两,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站磅摹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏饼灿。R本人自食惡果不足惜厅克,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望证舟。 院中可真熱鬧,春花似錦漆枚、人聲如沸抵知。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掖疮。三九已至初茶,卻和暖如春浊闪,著一層夾襖步出監(jiān)牢的瞬間螺戳,已是汗流浹背折汞。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留损同,地道東北人鸟款。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親疙筹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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