freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件測試方法技術(shù)的研究與對比畢業(yè)論文(已修改)

2025-07-10 17:24 本頁面
 

【正文】 軟件測試方法技術(shù)的研究與對比畢業(yè)論文目 錄 1 1 1 2 3 3 3 4 4 5 6 83.自動化測試技術(shù)基礎(chǔ) 9 9 9 9 11 12 15 MI(Mercury Interactive)公司的測試軟件 15 16 16 Rational公司的測試軟件 17 17 19 Compuware公司的測試軟件 20 21 22 23 23 25 28 GUI對象識別 29 32 33 33 34 35 35 37 38 39 42 44參考文獻 45附錄1外文譯文 47附錄2外文原文 54致 謝 63II軟件測試技術(shù)方法的比較與分析近幾年,隨著軟件規(guī)模不斷擴大,軟件復(fù)雜度不斷增加,客戶要求不斷提高,如何保證軟件質(zhì)量,提高軟件可靠性也越來越受到各研究機構(gòu)、相關(guān)企業(yè)的普遍關(guān)注,同時成為軟件開發(fā)機構(gòu)特別關(guān)注的方向。目前,許多能有效提高軟件質(zhì)量的質(zhì)量保證技術(shù)相繼問世,例如,幾乎所有的大型軟件開發(fā)機構(gòu)都結(jié)合自身軟件開發(fā)實際和經(jīng)驗制定了相關(guān)的質(zhì)量標(biāo)準(zhǔn)來規(guī)范企業(yè)內(nèi)部的軟件開發(fā)過程,有些機構(gòu)在這兩年陸續(xù)成立了與軟件開發(fā)相獨立的軟件測試中心來保證開發(fā)出來的軟件可用,在開發(fā)過程中增加了許多環(huán)節(jié)(如軟件配置管理、階段性測試和評審)用來保證開發(fā)出來的軟件具有高可靠性。軟件測試技術(shù)作為保障軟件質(zhì)量最直接、最有效的手段之一也成為重要的研究熱點,但是由于軟件本身的復(fù)雜性和不確定性,軟件測試技術(shù)始終具有極大的難度。深入研究軟件測試技術(shù)方法,提高軟件可靠性,已經(jīng)成為國內(nèi)外軟件行業(yè)和相關(guān)機構(gòu)重要的研究方向[1]。正確選擇和有效地運用各種測試方法、技術(shù)和工具,對提高軟件工程的應(yīng)用水平和提高軟件產(chǎn)品的質(zhì)量與可靠性至關(guān)重要。而在軟件測試中使用優(yōu)秀的測試管理工具不但可以大大減少測試過程中出現(xiàn)錯誤的可能性,還可以極大的提高測試的效率,加快測試進程。論文主要對軟件測試、測試技術(shù)(工具、方法)、自動化測試以及測試管理技術(shù)(工具、方法)進行理論闡述和綜合論述;然后進行綜合分析、比較、總結(jié)。通過查閱文獻資料和對主流工具軟件和相關(guān)技術(shù)的深入學(xué)習(xí)可完成軟件測試技術(shù)方法的比較與分析研究內(nèi)容。在這個論文研究過程中,可以學(xué)會正確選擇和有效地運用各種測試方法、技術(shù)和工具。: 論文的組織結(jié)構(gòu)軟件測試就是使用人工或者自動的手段來運行或測定某個軟件產(chǎn)品系統(tǒng)的過程,其目的是在于檢驗軟件產(chǎn)品是否滿足規(guī)定的需求[2]。簡單地說,軟件測試過程就是制造條件,促使錯誤發(fā)生的過程。軟件測試的目的是[3]:(1)測試的最終目的是為了避免錯誤的發(fā)生,確保應(yīng)用程序能夠正常高效的運行;(2)好的測試用例在于發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;(3)成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試;(4)好的測試工程師應(yīng)該做到不僅發(fā)現(xiàn)問題,還能夠幫助開發(fā)人員分析問題。軟件測試是一個貫穿整個軟件生命周期的活動,那種等待整個系統(tǒng)開發(fā)完畢,再對其進行測試的想法是錯誤的,把測試放到軟件開發(fā)的最后是很危險的,因為它很容易導(dǎo)致整個軟件系統(tǒng)無法集成。另外,對軟件的測試并不僅限于軟件程序的本身,因為錯誤并不一定是代碼引起的。很有可能是軟件需求、軟件系統(tǒng)的詳細設(shè)計等階段引起的。錯誤在初期也許只是范圍很小的隱藏問題,但由于軟件開發(fā)的各階段的連續(xù)性,會使錯誤逐步擴展,如果早期的開發(fā)中出現(xiàn)的錯誤不能排除,將帶到設(shè)計、編碼、測試等各階段,影響逐步擴大。所以對軟件的測試還應(yīng)該包括與軟件有關(guān)的所有的文檔。一個典型的軟件測試過程如下圖: 典型的軟件測試過程一個軟件的測試過程是一個不斷回歸的過程。舊的錯誤的修改可能會引起新的錯誤的出現(xiàn),所以每修改一個新的錯誤,都要針對系統(tǒng)再作一次測試,直到?jīng)]有新的錯誤出現(xiàn)為止,這是一個很繁瑣的過程。針對不同規(guī)模、不同類型的軟件,以及軟件開發(fā)的不同階段,所用的測試方法各異,下面我們就主要針對上面的幾種情況對軟件測試做一個簡單的分類。我們知道對于軟件開發(fā)商來說,比較大的軟件系統(tǒng)都是由許多人協(xié)作開發(fā)的,一般都是把一個大的軟件系統(tǒng)分割成不同的功能模塊,然后再將這些模塊分給開發(fā)團中的每個人去完成,在開發(fā)的過程中針對每個模塊的完成情況,邊開發(fā)、邊測試、邊集成,然后各個模塊集成的完整的系統(tǒng)還要進行測試,當(dāng)系統(tǒng)交付用戶使用后,還要對系統(tǒng)進行維護、升級,這里面也伴隨著測試。根據(jù)上面的過程,我們按軟件開發(fā)過程的可以將軟件測試劃分為下面五個步驟,: 軟件測試步驟單元測試是對軟件中的基本組成單位進行的測試,如一個模塊、一個過程等等。它是軟件動態(tài)測試的最基本的部分,也是最重要的部分之一,其目的是檢驗軟件基本組成單位的正確性。一個軟件單元的正確性是相對于該單元的規(guī)約而言的。因此,單元測試以被測試單位的規(guī)約為基準(zhǔn)。單元測試的主要方法有控制流測試、數(shù)據(jù)流測試、排錯測試、分域測試等等[35]。集成測試是在軟件系統(tǒng)集成過程中所進行的測試,其主要目的是檢查軟件單位之間的接口是否正確。它根據(jù)集成測試計劃,一邊將模塊或其他軟件單位組合成越來越大的系統(tǒng),一邊運行該系統(tǒng),以分析所組成的系統(tǒng)是否正確,各組成部分是否合拍。集成測試的策略主要有自頂向下和自底向上兩種[35]。系統(tǒng)測試是對已經(jīng)集成好的軟件系統(tǒng)進行徹底的測試,以驗證軟件系統(tǒng)的正確性和性能等滿足其規(guī)約所指定的要求,檢查軟件的行為和輸出是否正確并非一項簡單的任務(wù),它被稱為測試的“先知者問題”。因此,系統(tǒng)測試應(yīng)該按照測試計劃進行,其輸入、輸出和其他動態(tài)運行行為應(yīng)該與軟件規(guī)約進行對比。軟件系統(tǒng)測試方法很多,主要有功能測試、性能測試、隨機測試等等[35]。驗收測試旨在向軟件的購買者展示該軟件系統(tǒng)滿足其用戶的需求。它的測試數(shù)據(jù)通常是系統(tǒng)測試的測試數(shù)據(jù)的子集。所不同的是,驗收測試常常有軟件系統(tǒng)的購買者代表在現(xiàn)場,甚至是在軟件安裝使用的現(xiàn)場。這是軟件在投入使用之前的最后測試。回歸測試是在軟件維護階段對軟件進行修改之后進行的測試。其目的是檢驗對軟件進行的修改是否正確。這里修改的正確性有兩重含義:一是所作的修改達到了預(yù)定目的,如錯誤得到改正,能夠適應(yīng)新的運行環(huán)境等等;二是不影響軟件的其他功能的正確性[1]。軟件測試是一個對測試經(jīng)驗、測試計劃、測試環(huán)境和測試工具依賴性非常強的工作,按工作狀態(tài)分為靜態(tài)測試和動態(tài)測試兩個階段[6]。靜態(tài)測試主要是針對所有文檔資料、編程規(guī)范、數(shù)據(jù)定義、控制和數(shù)據(jù)使用、代碼與需求的一致性、代碼與設(shè)計的一致性等方面的分析,其對測試經(jīng)驗和測試計劃的依賴性極強。靜態(tài)測試是在不需運行軟件系統(tǒng)的情況下,對系統(tǒng)進行的測試。其采用的方法主要有[6]:(1)文檔資料瀏覽,達到正確的理解,并對任何改變具有統(tǒng)一的認知;(2)討論決定,對文檔資料進行討論,并作出決定,如:做什么、不做什么、如何做等;(3)檢查,根據(jù)規(guī)范和定義,找出可能存在的問題,如:市場和商業(yè)策略、系統(tǒng)需求和系統(tǒng)設(shè)計、程序代碼、測試計劃、測試設(shè)計、測試案例、測試結(jié)果、用戶手冊、培訓(xùn)教材等;(4)利用工具對程序代碼進行靜態(tài)分析,如:程序復(fù)雜度、系統(tǒng)結(jié)構(gòu)、控制流程、數(shù)據(jù)流程等。動態(tài)測試是被測系統(tǒng)在運行當(dāng)中,根據(jù)其動態(tài)的行為進行的測試。根據(jù)測試規(guī)模,可分為:單元測試、集成測試、系統(tǒng)測試及應(yīng)用測試等幾個階段。軟件測試的方法和技術(shù)是多種多樣的,按測試用例設(shè)計方法,可分為黑盒測試和白盒測試,并且黑盒測試和白盒測試還是目前通用的測試技術(shù) [2,78]。黑盒測試著眼于程序外部結(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對軟件界面和軟件功能進行的測試。黑盒測試也稱功能測試、數(shù)據(jù)驅(qū)動測試或基于規(guī)格說明的測試,它在已知產(chǎn)品應(yīng)具有的功能的條件下,通過測試來檢測每個功能是否都能正常使用。在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試是以用戶的觀點,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對應(yīng)關(guān)系出發(fā)進行測試的,它不涉及到程序的內(nèi)部結(jié)構(gòu)。黑盒測試注重于測試軟件的功能需求,主要試圖發(fā)現(xiàn)軟件中的功能錯誤、界面錯誤、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯誤、性能錯誤、初始化和終止錯誤等。白盒測試是基于代碼的測試,測試人員通過閱讀程序代碼或者通過使用開發(fā)工具中的單步調(diào)試來判斷軟件的質(zhì)量。白盒測試也稱結(jié)構(gòu)測試、邏輯驅(qū)動測試或基于程序本身的測試,它是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都有能按預(yù)定要求正確工作,而不涉及它的功能,白盒測試的主要方法有邏輯驅(qū)動、基路測試等,主要用于軟件驗證。白盒測試需要全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進行測試。白盒測試是窮舉路徑測試,在使用這一方案時,測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)。 黑盒測試與白盒測試的比較黑盒測試白盒測試測試依據(jù)用戶能看到的規(guī)格說明,針對功能進行測試程序的內(nèi)部結(jié)構(gòu)優(yōu)點能站在用戶立場上進行測試能夠?qū)Τ绦騼?nèi)部的特定部位進行覆蓋測試缺點不能測試程序內(nèi)部特定部位。如果規(guī)格說明有誤,則無法發(fā)現(xiàn)無法檢驗程序的外特性,無法對未實現(xiàn)規(guī)格說明的程序內(nèi)部欠缺部分進行測試缺點來源基于程序所有功能得到說明的基礎(chǔ)之上基于所有的需求得到實現(xiàn)的基礎(chǔ)之上舉例等價類劃分邊值分析因果圖語句覆蓋,分支覆蓋條件覆蓋,判定/條件覆蓋,路徑覆蓋對于一個軟件系統(tǒng),衡量它的好壞有兩個最重要的指標(biāo),一是它的功能是否符合要求,二是它的性能是否符合要求。那么針對這兩個指標(biāo),我們可以將軟件測試分為:功能測試和性能測試兩個部分[2]。功能測試:針對軟件的功能測試,目的是為了驗證軟件的功能是否符合軟件需求規(guī)格說明的要求,找出軟件不符合用戶需求的地方。功能測試要盡量測試到軟件的每一個功能單元,找出軟件中的缺陷,確保軟件的每一個部分都能正常、正確的工作。性能測試:就是用來測試軟件在系統(tǒng)中的運行性能的。性能測試可以發(fā)生在各個測試階段中,即使是在單元層,一個單獨模塊的性能也可以使用白盒測試來進行評估,然而,只有當(dāng)整個系統(tǒng)的所有成分都集成到一起之后,才能檢查一個系統(tǒng)的真正性能。性能測試經(jīng)常和壓力測試一起進行,而且常常需要硬件和軟件測試設(shè)備,這就是說,常常有必要的在一種苛刻的環(huán)境中衡量資源的使用(比如,處理器周期)。外部的測試設(shè)備可以監(jiān)測測試執(zhí)行,當(dāng)出現(xiàn)情況(如中斷)時記錄下來。通過對系統(tǒng)的檢測,測試者可以發(fā)現(xiàn)導(dǎo)致效率降低和系統(tǒng)故障的原因。3.自動化測試技術(shù)基礎(chǔ)隨著軟件系統(tǒng)的規(guī)模越來越大,整個系統(tǒng)的復(fù)雜性也越來越大,那么單純的手工測試已經(jīng)不適合這種大系統(tǒng)的測試了。首先手工測試的效率低下,其次有些測試是手工測試所無法完成的。為了解決手工測試效率低下和手工測試不能解決的一些測試等問題,自動化測試就應(yīng)運而生了。軟件自動化測試就是執(zhí)行某種程序設(shè)計語言編制的自動測試程序,控制被測軟件的執(zhí)行,模擬手動測試步驟,完成全自動或半自動測試。其目的在于縮短測試周期,增強對軟件性能方面的測試能力等,從而達到保證軟件質(zhì)量并使軟件能夠提前上線[9]。自動化測試就是希望能夠通過自動化測試工具或其他手段,按照測試工程師的預(yù)定計劃進行自動的測試,目的是減輕手工測試的勞動量,從而達到提高軟件質(zhì)量的目的。自動化測試的目的在于發(fā)現(xiàn)老缺陷;而手工測試的目的在于發(fā)現(xiàn)新缺陷。測試自動化涉及到測試流程、測試體系、自動化化編譯、持續(xù)集成、自動發(fā)布測試系統(tǒng)以及自動化測試等方面整合。也就是說要讓測試能夠自動化,不僅是技術(shù)、工具的問題,更是一個公司和組織的文化問題。首先公司從資金、管理上支持您,其次要有專門的測試團隊去建立適合自動化測試的測試流程、測試體系;其次就是把原代碼從受控庫中取出、編譯、集成、發(fā)布可運行系統(tǒng)、進行自動化的單元測試和自動化的功能測試的過程[9]。當(dāng)正確實施軟件自動化測試并嚴格遵守制定的測試過程時,自動化測試可帶來若干好處。假定對于給定的企業(yè)需求,測試工程師必須評估潛在的好處是否符合所要求的改進標(biāo)準(zhǔn),在項目實施自動化測試是否仍然是合適的[1011]。(1)提高測試效率一般來說,軟件產(chǎn)品的發(fā)布周期很短,而在測試期間是每天都可能要發(fā)布一個版本供測試人員測試,一個系統(tǒng)的功能點有幾千個上萬個,手工測試是一個勞動密集型的工作,并且容易出錯。引入自動化測試能夠用更有效、可重復(fù)的自動化測試環(huán)境代替繁瑣的手工測試活動,而且能在更少的時間內(nèi)完成更多的測試工作,從而提高了測試工程師的工作效率。(2)令軟件新版本進行回歸測試的開銷最小產(chǎn)品發(fā)現(xiàn)錯誤以后的改動,代碼變了,但要求的功能并沒有變,所以測試用例也不必改變,自動化測試就可以很方便地進行回歸測試,另外,對于產(chǎn)品型的軟件,每次發(fā)布一個新的版本,其中大部分功能和界面都和上一個版本相似或完全相同,這部分功能特別適合于自動化測試,從而可以讓測試達到測試每個特征的需求。(3)可以完成一些手工測試不能或難以完成的測試對于一些非功能性方面的測試,如:壓力測試、并發(fā)測試、大數(shù)據(jù)量測試、崩潰性測試等,這些測試用手工測試是很難,甚至是不可能完成的。但自動化測試則能方便地執(zhí)行這些測試,比如并發(fā)測試,使用自動化測試工具就可以模擬來自多方的并發(fā)操作了。(4)具有一致性和可重復(fù)性由于每次自動化測試運行的腳本是相同的,所以可以進行重復(fù)的測試,使得每次執(zhí)行的測試具有一致性,手工測試則很難做到這點。(5)更好地利用資源將繁瑣的測試任務(wù)自動化,可以使測試人員解脫出來,將精力更多地投入到測試案例的設(shè)計和必要的手工測試當(dāng)中。并且,理想的自動化測試能夠按計劃完全自動地運行,使得完全可以利用周末和晚上的時間執(zhí)行自動測試。(6)解決測
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1