最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

大型應(yīng)用自動(dòng)化測試流程最佳實(shí)踐

2023-03-10 09:55 作者:聆播科技  | 我要投稿

以PLC程序開發(fā)軟件SC-ProSys的自動(dòng)化為例。

這篇文章的目的是向大家介紹一種開發(fā)和維護(hù)大型軟件測試項(xiàng)目的方法論,特別是對于團(tuán)隊(duì)開發(fā)測試項(xiàng)目時(shí)有很好的幫助。下面將分為三個(gè)階段,逐漸深入地講解,即使此前你對自動(dòng)化測試還了解甚少,也完全可以理解文章中的知識。順帶也展示界面自動(dòng)化工具CukeTest對Qt應(yīng)用的自動(dòng)化能力。

文章中的閱讀最好搭配講解視頻,以獲取最佳閱讀體驗(yàn)。

  1. 初級階段:直接錄制方式生成自動(dòng)化腳本,直接運(yùn)行和管理腳本。但不方便大型項(xiàng)目管理,也沒有運(yùn)行結(jié)果報(bào)告;

  2. 中級階段:我們把腳本拆分變成模塊,在這一階段還將學(xué)習(xí)如何通過BDD(行為驅(qū)動(dòng)開發(fā))改造來生成直觀的運(yùn)行報(bào)告。大部分情況下夠用,但是對于團(tuán)隊(duì)開發(fā)還力有未逮。

  3. 高級階段:我們將模塊按照不同的功能和組件進(jìn)行劃分,形成組件類。這些組件類各自對應(yīng)被測應(yīng)用中的各個(gè)業(yè)務(wù)功能,通過調(diào)用組件類就可以輕松實(shí)現(xiàn)自動(dòng)化操作,提高了項(xiàng)目的團(tuán)隊(duì)協(xié)作能力和可維護(hù)性。

首先,使用自動(dòng)化測試代替手工測試有很多好處:

  1. 無需手動(dòng)書寫測試報(bào)告,出錯(cuò)時(shí)也不用寫重現(xiàn)步驟:自動(dòng)化操作基于腳本,每一步都可以跟蹤和回溯;

  2. 測試的效率穩(wěn)定性、可移植性都大大提高:避免了人力的限制;

  3. 持續(xù)集成(CI/CD、DevOps)的支持:界面測試不再是持續(xù)集成的障礙;

  4. 積累測試資產(chǎn),提升自身的職業(yè)競爭力。

本次自動(dòng)化測試雖然針對的是桌面應(yīng)用,但是采取的測試模式參考了Web測試的POM(Page Object Models,頁面對象模型)模式,同樣可以分為三層模型,從而幫助讀者理解自動(dòng)化測試項(xiàng)目、幫助團(tuán)隊(duì)開發(fā)和管理維護(hù)測試項(xiàng)目:

圖片自動(dòng)化測試的三層模型
  1. 業(yè)務(wù)層:代表實(shí)際的測試或業(yè)務(wù)流程,通常是與測試或業(yè)務(wù)流程相關(guān)的描述,以及測試數(shù)據(jù);

  2. 組件層:代表根據(jù)業(yè)務(wù)進(jìn)行拆分后的可復(fù)用組件,通過調(diào)用組件提供的方法可以完成對應(yīng)控件的測試操作;

  3. 對象層:代表被測控件的對象模型,在CukeTest中,對象層由模型文件(.tmodel)統(tǒng)一管理,從而完成定位和控制控件的任務(wù)。

現(xiàn)在只需要了解自動(dòng)化測試有這樣的一個(gè)模型,在后面的實(shí)際操作中會(huì)帶大家逐步了解每層模型的具體含義。

測試介紹

本次實(shí)踐針對的是桌面自動(dòng)化測試任務(wù),如果你之前接觸的是Web之類的自動(dòng)化測試也不用覺得用不上,因?yàn)楸敬巫詣?dòng)化使用的工具——CukeTest開發(fā)桌面自動(dòng)化測試的模式與Web自動(dòng)化類似,理解起來不會(huì)有任何障礙。

作為桌面自動(dòng)化,被測應(yīng)用是一款大型的、專業(yè)的桌面軟件,本次介紹選擇了SC-ProSys軟件——一款PLC(一種可編程工業(yè)控制器)程序開發(fā)軟件,使用Qt框架開發(fā),并且擁有完善的仿真器功能,了解過工業(yè)自動(dòng)化的讀者一定不會(huì)陌生。

所謂PLC,就是可編程控制器,常用于工業(yè)場合,尤其是在流水線上。因?yàn)槲覀兌贾溃魉€都是由信號來控制的,常規(guī)的控制器一般只能控制開啟和關(guān)閉兩種狀態(tài),但是PLC還能精準(zhǔn)的控制開啟和關(guān)閉的幅度,這也是流水線完成各種精密操作的一個(gè)基礎(chǔ)??梢詫LC理解成一個(gè)可以運(yùn)行程序還 能同時(shí)控制很多設(shè)備的高級開關(guān)

測試介紹

那么對于被測應(yīng)用的用途就比較好懂了,就是用于開發(fā)在PLC這個(gè)高級開關(guān)中運(yùn)行的程序,其實(shí)跟Visual Studio、Eclipse之類的集成開發(fā)工具(IDE)類似,一樣的創(chuàng)建項(xiàng)目、編寫代碼、調(diào)試運(yùn)行。但是它跟我們了解的其它集成開發(fā)工具最大的區(qū)別在于,因?yàn)樗_發(fā)的是運(yùn)行在工業(yè)設(shè)備中的程序,因此會(huì)根據(jù)選擇的設(shè)備型號使用不同的程序模版,同時(shí)因?yàn)榇蟛糠智闆r下,手頭都不會(huì)剛好有對應(yīng)的硬件設(shè)備用來運(yùn)行編寫的程序,所以它還提供了不同硬件設(shè)備的仿真功能,編寫好的程序可以直接在仿真中運(yùn)行。

在接下來的自動(dòng)化測試中,我會(huì)選取被測應(yīng)用中的基本操作流程,來演示這個(gè)流程在不同階段(初級/中級/高級)中都是如何自動(dòng)化的。流程任務(wù)如下:

  1. 新建項(xiàng)目

  2. 選擇設(shè)備型號

  3. 新建程序

  4. 編寫程序和變量

  5. 運(yùn)行程序

  6. 校驗(yàn)運(yùn)行結(jié)果

初級階段(視頻 04:14 位置)

初級階段

無論你是否從事測試行業(yè),也無論你是否寫過代碼,看完這個(gè)階段,你可以掌握以下內(nèi)容:

  1. 如何快速生成自動(dòng)化腳本?通過錄制生成。

  2. 如何理解錄制生成的腳本?了解一些簡單JavaScript語法。

  3. 如何理解模型的概念?使用模型管理器編輯錄制生成的模型文件。

在這一階段我們關(guān)注的主要是對象層——也就是模型管理器,錄制所生成的腳本都是對于對象的簡單調(diào)用,因此理解起來也非常簡單。

看完初級階段,你就算是入門了自動(dòng)化測試。但是這個(gè)階段它有個(gè)問題——錄制的腳本只完成了一個(gè)單一的操作流程,沒有對應(yīng)的場景描述,沒有檢查點(diǎn)、數(shù)據(jù)驅(qū)動(dòng)、測試報(bào)告等內(nèi)容,還算不是是一個(gè)專業(yè)的測試腳本。拿它給老板交差還是不夠滴。

所以就到了中級階段,我們要形成一個(gè)運(yùn)行報(bào)告,直接把運(yùn)行結(jié)果展示給所有人看。

中級階段(視頻 19:45 位置)

圖片中級階段

看到這個(gè)階段,你很可能是一個(gè)測試行業(yè)的從業(yè)者,有過測試的經(jīng)驗(yàn),希望能夠有實(shí)際的工作產(chǎn)出,而不是幾個(gè)錄制生成的、干巴巴的自動(dòng)化腳本。那么看完這個(gè)階段你可以掌握以下內(nèi)容:

  1. 如何在測試項(xiàng)目中描述業(yè)務(wù)流程?使用劇本來描述業(yè)務(wù)流程,從而提高測試項(xiàng)目的可讀性和可調(diào)試性。

  2. 如何將腳本改造為BDD項(xiàng)目?將自動(dòng)化腳本按照業(yè)務(wù)邏輯拆分成步驟。

  3. 如何生成運(yùn)行報(bào)告?改造為BDD項(xiàng)目后運(yùn)行項(xiàng)目就可以得到運(yùn)行報(bào)告,檢查點(diǎn)、調(diào)試信息、運(yùn)行截圖等都可以作為附件附在運(yùn)行報(bào)告中。

這一階段的難點(diǎn)在于如何熟悉在測試項(xiàng)目中引入劇本概念,并且借由劇本提供的各種功能更好地完成測試任務(wù)。

完成了中級階段,你已經(jīng)足以勝任獨(dú)自開發(fā)完整的自動(dòng)化測試項(xiàng)目了。但如果你處在測試團(tuán)隊(duì)中進(jìn)行團(tuán)隊(duì)協(xié)作開發(fā),那可能你還需要了解下一個(gè)階段,在高級階段中,要進(jìn)行一些有難度的開發(fā),但是對于整個(gè)團(tuán)隊(duì)的協(xié)作上是非常有效的。

高級階段(視頻 37:43 位置)

高級階段

到了這個(gè)階段,你大概是一個(gè)對自動(dòng)化測試有自己的理解的資深從業(yè)者,了解自動(dòng)化測試可能會(huì)遇到的麻煩和困境。因此這里展示的筆者個(gè)人對于大型軟件自動(dòng)化測試開發(fā)的一些經(jīng)驗(yàn)之談,涉及以下內(nèi)容:

  1. 如何理解自動(dòng)化測試三層模型中的組件層?將測試方法獨(dú)立出來形成組件類,從而保證測試團(tuán)隊(duì)可以專注于測試組件的開發(fā),并通過組裝測試方法完成測試任務(wù)。

  2. 如何形成組件類?將步驟定義直接劃分(按照業(yè)務(wù)劃分,最終結(jié)果中也介紹了按照布局劃分的劃分方式)

  3. 如何使用劇本中的參數(shù)?將劇本中的參數(shù)傳遞到測試方法中。

這一層的難點(diǎn)是參數(shù)化,在上一階段中完成BDD改造后,劇本中的參數(shù)仍然沒有對實(shí)際流程產(chǎn)生影響,這代表它還未在腳本中被使用,因此無論我們怎么修改劇本中的項(xiàng)目名稱參數(shù),都不會(huì)影響到實(shí)際執(zhí)行中創(chuàng)建的項(xiàng)目。而作為模塊中的方法,我們當(dāng)然希望傳遞進(jìn)來的參數(shù)能夠被真正地用上,因此我們將使用傳遞進(jìn)來的參數(shù)控制腳本的運(yùn)行,這也就是參數(shù)化。

參數(shù)化是真正開始掌握自動(dòng)化測試開發(fā)的一個(gè)分水嶺,因?yàn)樵谶@時(shí),你會(huì)發(fā)現(xiàn)錄制生成的腳本存在著很多局限性——死板的回放腳本往往與能夠靈活參數(shù)化的腳本方法相差甚遠(yuǎn)。對于如何參數(shù)化一個(gè)錄制生成的腳本,筆者歸納了以下3點(diǎn):

  1. 調(diào)用set()pressKeys()方法的腳本,常需要用參數(shù)代替。

  2. 使用findItem()來代替樹/列表/表格中的項(xiàng)。

  3. 在劇本中使用不同的參數(shù)來完成任務(wù)。如使用文本字符串傳遞大段文字、使用數(shù)據(jù)表和場景大綱來驅(qū)動(dòng)重復(fù)運(yùn)行的腳本。

最終結(jié)果演示(視頻 59:16 位置)

如果將高級階段的知識點(diǎn)應(yīng)用到項(xiàng)目中,項(xiàng)目將變得更加的易管理,并且適合推廣到團(tuán)隊(duì)中。視頻結(jié)尾展示了筆者在實(shí)際場景中常用的一種組件劃分方式——按照布局劃分,這種劃分方法將組件按照布局分為:

  • 主界面組件

  • 左側(cè)界面組件

  • 右側(cè)界面組件

  • 底端界面組件

  • 頂端界面組件(菜單欄和工具欄)

  • 彈出組件(對話框和右鍵菜單等)

這種劃分方式的優(yōu)點(diǎn)在于直觀,并且概念也比較好推廣,使用的時(shí)候只需要按照布局去相應(yīng)的類中尋求相應(yīng)的方法即可;不足之處在于一個(gè)簡單的流程可能需要引用很多組件類。

結(jié)論

桌面應(yīng)用的自動(dòng)化測試作為一個(gè)在國內(nèi)尚未全面鋪開的測試領(lǐng)域,不少測試工作的從業(yè)者在尋求一種能夠推廣到各種測試場景中去的項(xiàng)目開發(fā)模式。

本篇文章以常見的大型桌面自動(dòng)化項(xiàng)目的測試項(xiàng)目開發(fā)作為切入點(diǎn)論述了一種最佳實(shí)踐方案。這種方法及工具組合能應(yīng)用到類似的其他各類桌面自動(dòng)化的測試中。讀者們對于測試開發(fā)有什么建議和觀點(diǎn)也歡迎大家在評論中討論。


大型應(yīng)用自動(dòng)化測試流程最佳實(shí)踐的評論 (共 條)

分享到微博請遵守國家法律
台南市| 云梦县| 南昌县| 清水县| 盐池县| 天祝| 尼玛县| 黎城县| 隆回县| 庄河市| 自贡市| 嘉荫县| 长宁县| 新闻| 淮滨县| 广德县| 儋州市| 石林| 芜湖市| 县级市| 故城县| 东阿县| 贵定县| 襄汾县| 沙洋县| 平果县| 咸阳市| 闻喜县| 泗洪县| 德清县| 广丰县| 镇平县| 祁阳县| 云浮市| 怀集县| 巴中市| 信宜市| 乐陵市| 大悟县| 东兰县| 麻城市|