• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      軟件自動化測試技術(shù)的應(yīng)用探索研究

      2018-09-04 07:12:40張歡李繼安張紅金
      關(guān)鍵詞:測試工具自動測試軟件測試

      張歡,李繼安,張紅金

      (工業(yè)和信息化部電子第五研究所,廣東 廣州 510610)

      0 引言

      隨著軟件規(guī)模的不斷擴(kuò)大,軟件設(shè)計(jì)的復(fù)雜程度的不斷提高,軟件開發(fā)中出現(xiàn)錯誤或缺陷的機(jī)會越來越大。隨著軟件產(chǎn)業(yè)化的發(fā)展,人們對軟件的質(zhì)量、成本和進(jìn)度提出了更高的要求。由于人們對于軟件質(zhì)量的重視程度越來越高,就導(dǎo)致了軟件測試在軟件開發(fā)中的地位越來越重要,而軟件測試是目前用來驗(yàn)證軟件是否能夠完成所期望的功能的唯一有效的方法。

      軟件測試一般分為手工測試和自動化測試。軟件規(guī)模的擴(kuò)大給測試工作帶來了很多問題,手工測試的速度太慢,效率太低。一種成熟的軟件自動化測試機(jī)制,是可以在機(jī)器空閑時執(zhí)行無用戶參與的自動化測試的。自動化測試是可重復(fù)的測試,并且在相同的測試案例中可以使用完全相同的測試數(shù)據(jù)進(jìn)行再測試,可以做到以最小的代價(jià)進(jìn)行全面的系統(tǒng)測試。自動化測試可以高效地完成一些重復(fù)性測試,降低人為因素對測試過程的干擾,排除測試的隨機(jī)性和盲目性,降低冗余,減少遺漏等。

      1 軟件自動化測試的涵義及現(xiàn)狀

      軟件自動化測試就是執(zhí)行某種程序設(shè)計(jì)語言編制的自動測試程序,控制被測軟件的執(zhí)行,模擬手動測試步驟,完成全自動或半自動測試。自動化測試就是通過自動化測試工具或其他手段,按照測試工程師的預(yù)定計(jì)劃進(jìn)行的自動測試,目的是減輕手工測試的勞動量,從而達(dá)到提高軟件質(zhì)量的目標(biāo)。自動化測試的目的在于發(fā)現(xiàn)老缺陷,而手工測試的目的在于發(fā)現(xiàn)新缺陷。測試自動化涉及到測試流程、測試體系、自動化編譯、持續(xù)集成、自動發(fā)布測試系統(tǒng)和自動化測試等方面的整合,也就是說要讓測試能夠?qū)崿F(xiàn)自動化,不僅是技術(shù)、工具的問題,更是一個公司和組織的文化問題。

      自動化測試最初是通過外部的手段來錄制測試的操作過程,再回放其過程從而達(dá)到自動化測試的目的。隨著研究的不斷深入,又誕生了基于數(shù)據(jù)驅(qū)動、基于領(lǐng)域驅(qū)動和基于功能驅(qū)動等多種不同的自動化測試技術(shù)。自動化測試技術(shù)的誕生不僅提高了測試的效率,同時也提高了測試的精度。雖不能完全取代手動測試工作,但也對測試技術(shù)的發(fā)展起到了巨大的推動作用。就目前的操作系統(tǒng)而言,主要的自動化測試技術(shù)有以下幾種。

      a)phoronixtestsuite

      可支持多種類型操作系統(tǒng)的性能測試,但其配置文件的處理方式簡單、不利于擴(kuò)展添加。

      b)Autotest

      支持Linux系統(tǒng)內(nèi)核的自動化測試,但其搭建困難、對支撐軟件版本要求嚴(yán)格,暫不支持國產(chǎn)平臺搭建。

      c)linuxdesktoptestingproject

      用于功能的自動化測試,但其腳本重用率低、對測試人員的要求較高。

      2 自動化測試框架

      通過分析操作系統(tǒng)測試標(biāo)準(zhǔn),以及現(xiàn)有的工具情況,本文提出了一種基于過程的自動化測試模型,通過對測試過程的抽象來達(dá)到自動化測試的目的。該模型將測試過程中使用的測試用例、測試腳本和測試數(shù)據(jù)按照預(yù)定的準(zhǔn)則進(jìn)行標(biāo)準(zhǔn)化,并以配置文件的形式進(jìn)行執(zhí)行過程的編輯,最后通過腳本驅(qū)動將配置文件內(nèi)容轉(zhuǎn)化為自動化測試流程。

      2.1 自動化測試框架的系統(tǒng)結(jié)構(gòu)

      國產(chǎn)操作系統(tǒng)自動化測試框架主要包括測試工具庫、接口庫、測試腳本庫、測試數(shù)據(jù)結(jié)構(gòu)和測試驅(qū)動等,結(jié)構(gòu)如圖1所示。

      圖1 自動化測試框架

      a)測試工具庫

      主要用于存儲測試工具,以及執(zhí)行配置文件,在配置文件中按照預(yù)定義標(biāo)準(zhǔn)將測試工具在執(zhí)行測試時的執(zhí)行過程進(jìn)行腳本化抽象,測試執(zhí)行時測試驅(qū)動會對該配置文件進(jìn)行 “翻譯”,將其轉(zhuǎn)換為可執(zhí)行的shell腳本。

      b)接口庫

      主要用于存儲操作系統(tǒng)的操作接口,包括操作系統(tǒng)的遠(yuǎn)端連接接口、執(zhí)行監(jiān)控接口、日志提取接口和命令執(zhí)行接口等。

      c)測試腳本庫

      主要用于存儲操作系統(tǒng)功能測試腳本和接口腳本。由于國產(chǎn)操作系統(tǒng)的非圖形化功能都可通過命令行來實(shí)現(xiàn),因而通過設(shè)計(jì)自動化測試腳本,自動執(zhí)行并返回系統(tǒng)執(zhí)行結(jié)果可有效地幫助測試人員節(jié)省測試的時間。

      d)測試數(shù)據(jù)結(jié)構(gòu)

      主要用于存儲測試結(jié)果的數(shù)據(jù)結(jié)構(gòu)及組成,由于不同種類的測試工具或測試腳本執(zhí)行所得到的測試結(jié)果的數(shù)據(jù)結(jié)構(gòu)并不完全相同,因此,為了保證系統(tǒng)的可擴(kuò)展性,可自定義測試數(shù)據(jù)的解析方法。

      2.2 自動化測試框架的原理

      自動化測試框架分為用戶接口層、業(yè)務(wù)處理層和數(shù)據(jù)處理層,如圖2所示。

      圖2 自動化測試框架業(yè)務(wù)模型

      a)用戶接口層

      用戶接口層提供了使用該平臺的一整套API,通過這些API用戶可以方便地進(jìn)行機(jī)器性能測試,包括測試用例選擇、測試機(jī)器選擇、查看測試結(jié)果和查看每個機(jī)器的運(yùn)行狀態(tài)等功能。這些API以soap協(xié)議方式和本地調(diào)用兩種方式提供給用戶使用,包括機(jī)器信息模塊、測試用例模塊、測試記錄模塊、啟動測試模塊和運(yùn)行時監(jiān)控模塊。

      b)業(yè)務(wù)處理層

      業(yè)務(wù)處理層接收測試作業(yè),然后安排測試作業(yè)的執(zhí)行。實(shí)現(xiàn)方式是為每個測試機(jī)器建立一個單獨(dú)的線程,專門處理該機(jī)器的測試任務(wù)。根據(jù)系統(tǒng)的資源耗用程度來動態(tài)地調(diào)整測試任務(wù)分配方式,保證在系統(tǒng)健康、平穩(wěn)運(yùn)行的過程中使得每個測試任務(wù)都得以完成。

      c)數(shù)據(jù)處理層

      負(fù)責(zé)和數(shù)據(jù)庫交互,提供系統(tǒng)運(yùn)行時所需要的數(shù)據(jù),以及保存運(yùn)行時所產(chǎn)生的數(shù)據(jù)。對上提供查詢數(shù)據(jù)服務(wù),業(yè)務(wù)處理層需要的數(shù)據(jù)全部由數(shù)據(jù)處理層提供,包括查詢機(jī)器信息、查詢測試用例信息和查詢測試記錄信息等。

      2.3 企業(yè)自動化系統(tǒng)性能測試的框架

      2.3.1 企業(yè)自動化系統(tǒng)性能測試

      自動化系統(tǒng)性能測試的著重點(diǎn)是準(zhǔn)確地獲取系統(tǒng)在某一狀態(tài)下的性能指標(biāo)。

      a)測試的準(zhǔn)確性

      自動化系統(tǒng)性能測試通過模擬用戶操作,對服務(wù)器發(fā)起負(fù)載,同時監(jiān)控服務(wù)器的狀態(tài),考察系統(tǒng)業(yè)務(wù)的響應(yīng)時間和資源之間的關(guān)系,從而獲取系統(tǒng)的性能指標(biāo)。通過工作負(fù)載分析,建立盡可能地接近實(shí)際情況的測試場景,同時通過一系列的測試前準(zhǔn)備工作,以及測試采樣設(shè)置,減少性能測試中的干擾因素。

      b)節(jié)約測試成本

      進(jìn)行性能測試的成本,特別是硬件成本很大。在保證測試準(zhǔn)確性的基礎(chǔ)上,可通過以下方式來節(jié)約測試成本,例如:在企業(yè)員工的機(jī)器上安裝負(fù)載生成器,每臺機(jī)器在測試時分擔(dān)一小塊的負(fù)載生成任務(wù)。

      c)減少手工工作量

      性能測試需要使用大量的不同用戶帳號進(jìn)行操作,手工創(chuàng)建這些用戶帳號信息以及設(shè)置權(quán)限等工作量非常大,借助自動化捕獲回放工具可以完成這部分工作,同時使用前面的自動化系統(tǒng)回歸測試框架進(jìn)行關(guān)鍵功能的冒煙測試。

      2.3.2 企業(yè)自動化系統(tǒng)性能測試框架的構(gòu)建

      性能測試小組搭建和配置標(biāo)準(zhǔn)版本的系統(tǒng)軟硬件環(huán)境,并安裝性能監(jiān)控器部件,然后部署小組從版本管理系統(tǒng)上將穩(wěn)定的代碼待測版本取下,進(jìn)行構(gòu)建并部署到專門的性能測試環(huán)境,完成系統(tǒng)的配置和初始化。系統(tǒng)在進(jìn)行性能測試前經(jīng)過自動化系統(tǒng)回歸測試框架的冒煙測試,驗(yàn)證系統(tǒng)的基本功能是否正常,同時通過自動化工具進(jìn)行測試用數(shù)據(jù)的創(chuàng)建,例如:用戶帳號信息、權(quán)限和其他的測試實(shí)體,盡可能地減輕手工工作量。在這些任務(wù)完成后性能測試小組根據(jù)工作負(fù)載模型和測試用例,創(chuàng)建和執(zhí)行測試腳本和場景,收集并分析測試數(shù)據(jù),得出系統(tǒng)的性能指標(biāo)。

      3 軟件自動化測試的優(yōu)缺點(diǎn)

      3.1 軟件自動化測試的優(yōu)點(diǎn)

      如果測試活動自動化在多數(shù)情況下可提供其最大價(jià)值,如對軟件進(jìn)行的功能性測試,是測試系統(tǒng)在做什么,這些測試可以明確地知道應(yīng)該在什么情況下輸入什么,會有什么樣的輸出。這樣的測試就很容易被自動化,也能從自動化中取得較大的效果。對軟件進(jìn)行的性能測試包括在不同的系統(tǒng)負(fù)載下進(jìn)行的測試,這些測試需要采用工具輔助完成,也非常適合于采用自動化。自動化測試,可以提高某些測試任務(wù)的執(zhí)行效率,除此之外,其還有以下幾個優(yōu)點(diǎn)。

      a)對程序的回歸測試更方便

      軟件測試實(shí)行自動化進(jìn)程是因?yàn)闇y試工作的需要,更準(zhǔn)確地說是回歸測試和系統(tǒng)測試的需要。由于回歸測試的動作和用例是完全設(shè)計(jì)好的,測試期望的結(jié)果也是完全可以預(yù)料的,將回歸測試自動運(yùn)行,可以極大地提高測試效率,縮短測試的時間。

      b)可以執(zhí)行一些手工測試有困難或不可能進(jìn)行的測試

      比如:對于大量用戶的測試,不可能讓足夠多的測試人員同時進(jìn)行測試,但是卻可以通過自動化測試同時模擬許多用戶,從而達(dá)到測試的目的。

      c)更好地利用資源

      將繁瑣的任務(wù)自動化,可以提高準(zhǔn)確性和測試人員的積極性,將測試技術(shù)人員解脫出來,以使他們投入更多的精力在設(shè)計(jì)更好的測試用例上。有些測試不適合于自動測試,僅適合于手工測試,將可自動測試的測試自動化后,可以讓測試人員專注于手工測試部分,提高手工測試的效率。

      d)測試具有一致性和可重復(fù)性

      由于測試是自動執(zhí)行的,每次測試的結(jié)果和執(zhí)行的內(nèi)容的一致性是可以得到保障的,從而達(dá)到測試可重復(fù)的效果。

      e)測試的復(fù)用性

      由于自動測試通常采用腳本技術(shù),這樣就有可能只需要做少量的甚至不做修改,實(shí)現(xiàn)在不同的測試過程中使用相同的用例。

      f)其他

      此外,手工不能做的事情,自動化測試能做,例如:負(fù)載、性能測試等。

      3.2 軟件自動化測試的誤區(qū)與缺點(diǎn)

      在軟件測試自動化的實(shí)施過程中會遇到許多誤區(qū),比較普遍的有以下幾種。

      a)不正確的觀念或不現(xiàn)實(shí)的期望

      一般來說,人們對新技術(shù)的解決方案常常深信不疑,認(rèn)為可以解決面臨的所有問題,對測試工具也不例外。事實(shí)上,如果期望不現(xiàn)實(shí),無論工具如何先進(jìn),都滿足不了期望。

      b)希望測試發(fā)現(xiàn)大量的新缺陷

      測試運(yùn)行第一次時最有可能發(fā)現(xiàn)新缺陷。但是,如果測試已經(jīng)運(yùn)行,再次運(yùn)行相同的測試發(fā)現(xiàn)新缺陷的概率就小得多。

      c)安全性錯覺

      如果自動化測試沒有發(fā)現(xiàn)任何缺陷,并不意味著軟件沒有缺陷,可能是測試設(shè)計(jì)本身就有缺陷;并且,測試覆蓋率也不會達(dá)到百分之百。

      d)自動化測試的維護(hù)性

      當(dāng)軟件修改后,通常也需要修改部分測試,這樣必然導(dǎo)致對自動化測試的修改,所以在自動化測試的設(shè)計(jì)和實(shí)現(xiàn)時,要防止自動化測試帶來的好處被高維護(hù)成本所淹沒。

      e)測試自動化可能會制約軟件的開發(fā)

      由于自動測試比手動測試更脆弱,所以維護(hù)會受到限制,從而制約軟件的開發(fā)。

      雖然測試自動化可以帶來非常明顯的收益,但也有其限制性。首先,其不能取代手工測試,手工測試比自動測試發(fā)現(xiàn)的缺陷更多,并且手工測試可以處理意外事件,雖然工具也能處理部分異常事件,但是其對真正的突發(fā)事件和不能由軟件解決的問題無能為力;其次,測試自動化對測試質(zhì)量的依賴性極大,并不能提高有效性,還可能會制約軟件的開發(fā)。

      此外,對于周期短、時間緊迫的項(xiàng)目不宜采取自動化測試。由于推行自動化測試的前期工作相當(dāng)龐大,將自動化測試框架應(yīng)用到一個項(xiàng)目中也要評估其合適性,項(xiàng)目很可能被大量的測試框架的準(zhǔn)備和實(shí)施工作拖垮。

      4 結(jié)束語

      軟件測試自動化由于具有效率高、能快速全面地實(shí)行回歸測試等特點(diǎn),正在成為國內(nèi)外軟件界的熱點(diǎn)之一。但是,軟件自動化測試還不能解決軟件潛在的所有問題,為此,在自動化測試前的準(zhǔn)備工作中首先需要對軟件自動化測試有一個正確的認(rèn)識。軟件測試工具盡管能夠提高測試效率、覆蓋率和可靠性等,但是軟件的自動化測試過程是一個循序漸進(jìn)的過程,并不是一開始就對所有的測試實(shí)施自動化,同時這也是不現(xiàn)實(shí)的。自動化測試雖然有很多優(yōu)點(diǎn),但其實(shí)質(zhì)上還只是測試工作的一部分而已,是對手工測試的一種有益的完善與補(bǔ)充。如何規(guī)范自動化測試、選擇恰當(dāng)?shù)淖詣踊瘻y試工具,還有待于我們在具體的測試過程中去探索、去研究、去實(shí)踐。

      猜你喜歡
      測試工具自動測試軟件測試
      邊緣智力兒童及其智力測試工具的研究進(jìn)展
      基于OBE的軟件測試課程教學(xué)改革探索
      JXG-50S型相敏軌道電路接收器自動測試臺
      Http并發(fā)連接測試工具
      可并行測試的電磁兼容自動測試系統(tǒng)的實(shí)現(xiàn)
      電子測試(2018年13期)2018-09-26 03:29:14
      EXCEL和VBA實(shí)現(xiàn)軟件測試記錄管理
      電子制作(2018年16期)2018-09-26 03:27:18
      關(guān)于某型雷達(dá)自動測試系統(tǒng)的幾點(diǎn)認(rèn)識和建議
      電子制作(2018年11期)2018-08-04 03:26:00
      關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
      電子測試(2017年15期)2017-12-18 07:19:20
      軟件測試工程化模型及應(yīng)用研究
      福祿克推出先進(jìn)的連接式測試工具系統(tǒng)
      沐川县| 南通市| 紫阳县| 迁西县| 木兰县| 大渡口区| 当阳市| 札达县| 阿荣旗| 弥渡县| 巴塘县| 宝清县| 芦山县| 万载县| 乌兰浩特市| 双牌县| 高州市| 增城市| 南昌县| 瓮安县| 山阴县| 尤溪县| 十堰市| 新田县| 肇东市| 同江市| 凉城县| 称多县| 巴林右旗| 兴国县| 西贡区| 于田县| 翁牛特旗| 美姑县| 乐清市| 台前县| 盐源县| 岳阳县| 南康市| 巴马| 石泉县|