日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何测试程序是否_软件开发过程中,如何进行自动化测试?Unit Test 和 UI Test

發布時間:2023/12/19 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何测试程序是否_软件开发过程中,如何进行自动化测试?Unit Test 和 UI Test 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 簡介

GXtest是基于專門為GeneXus平臺開發的應用程序提供的自動化測試解決方案。

我們強調“解決方案”和“自動化”兩個詞:

  • 解決方案:
  • GXtest為整個GeneXus軟件開發生命周期提供測試支持,在每個階段提供不同的測試工具,包括單元測試(Unit Test)、UI測試自動化(UI Test Automation)、負載測試(UI Test/Load Testing);
  • GXtest解決方案提供持續集成/持續交付(CI/CD)的支持,借助JenKins等CI/CD引擎和MsBuild構建引擎,利用和實踐了DevOps文化;
  • GXtest不僅僅運行在GeneXus IDE中,還可以利用Docker、Hyper-V以及其他容器技術進行部署,這意味著GXtest可以在on-premises/ PaaS解決方案甚至Azure/AWS和阿里等云平臺中輕松運行。
  • 自動化:
  • 現代軟件工程、敏捷開發和DevOps實踐都基于管道(PipeLine)方法,GeneXus DevOps文化理念認為:及早交付高質量的軟件,才能體現軟件產品的價值。測試自動化過程是系統交付有價值軟件的一個重要關鍵,測試自動化層能為管道增加多少價值,這取決于自動化的成本、測試的頻率和速度、測試位置(在哪個環境中)、評估方法和有效性。

每個GeneXus IDE對應的GXtest版本要求是不一樣的,可以通過GeneXus IDE的菜單“知識庫管理”à“管理引用模塊”去更新。

目前IDE對應GXtest版本信息,可以在下列網址去查看。

https://wiki.genexus.com/commwiki/servlet/wiki?43829,GXtest+versioning,

2.Unit Test

GXtest版本的Unit Test適應性:

  • GeneXus15版本,支持面向Java/.Net環境的知識庫
  • GeneXus16版本,支持面向Java/.Net/.Net Core環境的知識庫——.Net Core是微軟開發的適用于 windows、linux 和 macos 操作系統的免費、開源托管的計算機軟件框架。

Unit Test是在GeneXus中以獨立、快速和可重復的方式測試業務邏輯的最有效方法。Unit Test的測試對象,是在GeneXus中封裝業務邏輯代碼的過程——這些過程可以在不同的場景重用,包括proceduces、dataProviders、Business Transactions。

以下業務場景會用到Unit Test:

  • 輸入一些參數,看看程序運行結果與預期的是否一樣,這些結果可以是返回值、文件、數據庫記錄;
  • 沒有輸入參數,或者輸入參數在數據庫里和配置文件中,看看運行結果如何;
  • 以上兼而有之。

Unit Test的測試目的,主要是驗證程序是否按照產品規范來工作。

當然,前面提到了,Unit Test的測試對象不僅僅是Procedure,對于DataProviders 和 Business Transactions同樣可以進行測試。

Unit Test主要是提供給開發人員使用的(自動化測試另外討論):

1) 開發人員可以在集成測試和正式發布前,自己先檢查BUG;

2) 測試非常快,測試結果立刻就能反饋給開發人員

3) 開發人員可以通過GeneXus Server將自己編寫的測試程序分享給其他人

4) 不再需要其他的測試工具了,直接在IDE里面就可以測試

5) GeneXus提供完整的測試框架,開發人員不需要再自己定義業務場景設計測試界面了

3.UI Test

UI Test是通過Web頁面上執行相關操作,模擬真實用戶與軟件系統之間的交互過程,驗證UI和數據庫上的輸出結果,以確認業務流程的完整性和可靠性。

在GXtest版本中,Web應用程序的測試通過WebDriver協議完全符合W3C標準,這意味著UI Test在流行的瀏覽器的新版本上都可以進行測試,——這些瀏覽器的內核一般基于Chrome, Firefox, Edge, and IE。

GeneXus開發人員關注的是業務在Web界面上如何表現,并不完全理解和控制HTML元素,——這是因為GeneXus提供了一個業務抽象層屏蔽了底層的技術應用。同樣的,UI Test關注的重點也是Web頁面上如何體現用戶的操作以及信息交互。

UI Test工具的使用人員不需要了解開發技術,他/她在web上的操作,GXtest可以通過一個小插件轉換為測試腳本,這些測試腳本用來簡化UI Test的自動化工作和重復測試工作。這個插件是GXtest Recorder,利用用GXtest Chrome擴展記錄器提供了記錄功能。在你的Chrome上安裝了這個擴展,你就可以瀏覽你想要測試的web應用程序,同時獲取測試步驟和驗證形成測試腳本。

4.自動化測試(ROI-based)

及早交付高質量的軟件,才能體現軟件產品的價值。測試自動化過程是系統交付有價值軟件的一個重要關鍵。

重復勞動應由計算機完成。在測試工作中,頻繁編譯和重復測試都是不可避免的工作,這些工作如果交由計算機完成,會大大減少項目團隊的工作量,降低人為錯誤的概率,提升反饋和溝通效率。

就測試工作而言,GXtest中的Unit Test往往由開發人員進行,他們一般只是在代碼完成后僅測試一次就結束了;UI Test可以測試整個流程,但是測試過程冗長,測試人員沒有耐心去等待結果更加沒有興趣去反復測試。

接下來我們仔細分析。

GXtest的測試自動化層中, Unit Test和UI Test的應用場景和使用價值是不一樣的。單元測試和是最快和成本最低的,而Ul(端到端)測試非常慢,而且成本更高。

當然,每個應用GeneXus的團隊,由于技術/業務水平不同,每個系統的業務復雜度不同,對于Unit Test或者UI Test的的選擇和投入是不一樣的。

為什么Unit Test是最快和成本最低的?Unit Test是GeneXus應用程序中最重要的測試層:

  • 可靠和快速:Unit Test以毫秒級的速度運行,每次測試的最終時長取決于程序中業務邏輯對象的個數(或者說是與SQL/DB速度有關系)。
  • 隨手測:在GeneXus IDE中創建和調試測試非常容易,測試結果在獨立的窗口中顯示。
  • 及時反饋:程序發生變化并且編譯后,GeneXus立即在開發環境中進行測試,如果測試結果不正確會立即反饋給開發人員。

GeneXus的開發人員往往在寫完一段程序后立即運行/調試自己的程序。在過去,開發人員一般利用自己編寫的Web和UI界面來測試輸入/輸出,要準備大量的不重復的輸入數據來仿真一些業務場景。當然,即使沒有GXtest,利用GeneXus的新特性,開發人員也可以將這些測試界面、測試數據作為KB的重要組件進行保存。

但是這樣做仍然有缺點,那就是這種測試是孤立進行的,即使某些功能在開發人員完成開發后進行了測試,仍然不能保證系統在集成其他組件后能作為一個整體不產生BUG。GeneXus應用通常使用SOAP或者Rest API提供公開的服務接口,——這就要求必須同時進行并且重復進行所有的Unit Test,這就是為什么我們建議盡可能實現自動化測試的目的

自動化框架的優勢,在于:

  • 跑得更快
  • 測試核心功能(不需要UI)
  • 很容易集成到CI/CD管道中

如果核心業務邏輯封裝在GeneXus的Procedures和dataProviders里面時,Unit Test具有最佳的ROI(投資回報比);而業務邏輯不是在Procedures而是封裝在面板上(例如WebPanels或SDPanels,對GeneXus而言這是一個非常糟糕的編程實踐),那么需要使用其他方法來測試了。

因此,UI Test是自動化測試的最后一層了。UI Test對測試用的基礎設施(硬件/網絡/存儲等等)、數據、使用框架和瀏覽器的版本要求都很高,但它是模擬真實用戶與軟件系統進行交互的唯一方法。

我們建議為了提高UI Test的效率,可以從兩個方面著手:

  • 對于應用APP:可以利用GXtest Recorder記錄應用系統的使用過程,生成關鍵業務流程的測試腳本;
  • 對于知識庫KB:基于WebPanel的定義自動生成UITest的框架。

5.測試工具比較

在單元測試領域,GXtest是唯一支持GeneXus編程對象函數的單元測試的工具。GXtest的Unit Test工具直接在GeneXus IDE中利用GeneXus語法來編寫測試數據(輸入和輸出)、驗證程序和測試程序的代碼。

在界面測試領域,除了GXtest的UI Test工具,目前沒有其他的界面自動化測試框架能夠在GeneXus開發的應用程序上這么“輕而易舉”地進行測試。要知道GXtest以外的界面測試工具要在瀏覽器上模仿真實用戶與軟件系統之間的交互操作,往往需要“很重”的編程來實現,——復雜的顯式的“wait”事件編程或者復雜的JavaScript函數。

在現代軟件開發行業中,單元測試在測試工作中最重要的部分,而界面自動化測試檢查端到端業務流程的關鍵部分。在DevOps方法論中,持續測試是“及早交付高質量軟件,體現軟件產品的價值”重要保障,而GXtest恰好是能夠集成到管道并實現持續測試的基本工具。

我們對GXtest和主流的幾款測試工具軟件做了個簡單對比,包括幾個方面:IDE集成、單元測試、服務/API測試、界面自動化測試、SCM集成、CI/CD集成、性能測試、報告等等。對比結果如下:

注釋:

Partial: 意味著此工具在此方面尚有欠缺,或者正在努力朝預期目標前進

Intergration:意味著此工具可以與第三方工具無縫集成,從而實現目標

總結

以上是生活随笔為你收集整理的如何测试程序是否_软件开发过程中,如何进行自动化测试?Unit Test 和 UI Test的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。