1 簡介
Yocto 項目是一個開源協(xié)作項目,它提供模板、工具和方法,幫助您為嵌入式產(chǎn)品創(chuàng)建基于Linux的定制系統(tǒng),而無需考慮硬件架構(gòu)。QA團隊負責(zé)驗證一些可用的工具和組件,以及支持的不同平臺的image完整性和功能性。
2 目標(biāo)和任務(wù)
測試過程主要側(cè)重于跟蹤和審查Yocto項目及其參考系統(tǒng)和內(nèi)部項目的質(zhì)量和性能。該計劃還包括識別和跟蹤需要改進的領(lǐng)域、回歸、驗證增強功能和錯誤、開發(fā)測試方法(重點是自動測試)。除非另有說明,例如作為驗證新功能過程的一部分,否則文檔和許可狀態(tài)不包括在測試過程的范圍內(nèi)。
2.1 測試目標(biāo)
Yocto 項目 X.X 周期的整體測試計劃旨在驗證當(dāng)前開發(fā)中的整體增強功能,并檢測可能出現(xiàn)的回歸。
- Bug和功能驗證
- 運行回歸測試
- 對所需領(lǐng)域(如 Toaster)進行探索性測試
- 改進和擴展整體自動化
2.2 任務(wù)
下面列出了本測試計劃確定的所有任務(wù)。
- 一般組件測試
- 錯誤和功能報告
- 錯誤和功能驗證
- 測試自動化
- 探索性測試
- 為所需領(lǐng)域創(chuàng)建測試計劃
- 與開發(fā)人員一起審查測試方法
- 為主要功能指派QA負責(zé)人
3 測試范圍
概述了測試流程,如測試領(lǐng)域、類型、周期和報告,以及每項驗證活動的摘要和目標(biāo)。各部分可鏈接到包含更多細節(jié)或相關(guān)信息的其他文章。請注意,本文或此處鏈接的文章中提供的信息可能會根據(jù)需要進行修改,以反映當(dāng)前版本的Yocto項目所開展的實際活動。
4 測試策略
4.1 測試內(nèi)容
Yocto項目下的每個內(nèi)部項目都是需要測試的領(lǐng)域。測試區(qū)域按其功能性質(zhì)分組如下:
- 構(gòu)建系統(tǒng)
- 運行時測試
- 開發(fā)工具
- Distro 測試
4.1.1 構(gòu)建系統(tǒng)
構(gòu)建引擎及其周邊組件,為構(gòu)建映像或烘焙軟件提供手段。在這一區(qū)域?qū)?zhí)行構(gòu)建時測試。目前oe-selftest涵蓋所有Bitbake、oe-core和Metadata自動測試。
- BitBake
對BitBake進行功能測試,BitBake是一個構(gòu)建引擎,它的所有功能和組件都能在各種配置和場景下運行。
- Toaster
Toaster是Bitbake構(gòu)建系統(tǒng)和Yocto項目內(nèi)Poky發(fā)行版的網(wǎng)絡(luò)接口。該項目原名為Web Hob/Webhob/webhob,你可能仍會在文檔中找到對舊名的引用。Toaster測試計劃維基涵蓋了針對Toaster的所有驗證。測試過程主要集中在驗證從構(gòu)建過程中收集到的數(shù)據(jù),以及驗證Toaster GUI的正確功能,例如
-
用戶界面
-
與bitbake進行的后臺交互
-
后臺與數(shù)據(jù)庫的交互,用于存儲和訪問構(gòu)建信息
-
測試目標(biāo)只涉及Toaster現(xiàn)有功能的正面測試。
-
執(zhí)行探索性測試,重點關(guān)注更新的功能;這有時會產(chǎn)生新的測試用例。
-
元數(shù)據(jù)(Metadata)
對Yocto項目核心元數(shù)據(jù)的測試主要是通過上述BitBake和Toaster 等其他測進行的。我們還在meta-yocto測試運行模板中設(shè)置了涵蓋元數(shù)據(jù)的特定測試,并定期在Full Pass上運行。
- 發(fā)行版測試
發(fā)行版測試旨在使用yocto-autobuilder捕捉發(fā)行版特有的bug。所有測試都在相同的硬件上運行,并更新了所有操作系統(tǒng)。使用的發(fā)行版包括Fedora、Ubuntu、CentOS、OpenSuse及其最新更新版本。如果發(fā)行版在發(fā)布期間有測試版,則 n+1(測試版)也將進行驗證。
更多詳情,請參閱 "發(fā)行版測試計劃"。
4.1.2 運行時測試
主要針對目標(biāo)操作系統(tǒng)或其附帶的應(yīng)用程序,作為構(gòu)建過程的輸出。
我們使用映像測試來運行自動測試。
- 冒煙測試
冒煙測試由公共AutoBuilder 執(zhí)行,所有BSP構(gòu)件均在此構(gòu)建,并檢查構(gòu)建是否正確。在公共AutoBuilder中,還對QEMU映像運行映像測試。
- 每周測試
包括運行所有自動BSP測試,這些測試的目標(biāo)是每周針對每周構(gòu)建運行一次。鏡像測試維基頁面介紹了測試的啟用和運行。測試適用于QEMU BSP和安裝在真實硬件上的BSP。
- 全量測試
全量測試旨在運行非自動化的BSP測試用例。它們擴展了每周測試的覆蓋范圍,包含更復(fù)雜的場景,如更改運行級別或音頻測試。
- 壓力測試
壓力測試在Beagleboard和genericx86-64 BSP上運行。詳情如下:
-
Beaglebone core-image-sato-sdk映像使用LTP和Crashme壓力測試進行測試
-
genericx86-64 core-image-lsb-sdk映像使用Helltest和Crashme壓力測試進行測試
-
系統(tǒng)性能(未實施)
目標(biāo):跟蹤目標(biāo)系統(tǒng)的運行時性能;跟蹤帶有g(shù)cc安全標(biāo)記的目標(biāo)系統(tǒng)的運行時性能;
指標(biāo):systemd 和 sysvinit 的啟動時間;從Buildhistory跟蹤回歸的image大??;Piglit測試套件結(jié)果;可集成的其他基準(zhǔn),如openbenchmarking網(wǎng)站上列出的基準(zhǔn)。
4.1.3 開發(fā)人員工具
-
應(yīng)用程序開發(fā)工具包(Application Development Toolkit):ADT測試包括meta-toolchain-sdk和用戶構(gòu)建sd 測試。它將在每周測試和全量測試中涉及。
- 交叉工具鏈安裝和編譯測試
- 可重置SDK
- 可擴展 SDK (eSDK)
- 工具鏈壓縮包
- yocto 構(gòu)建樹
-
Eclipse IDE插件:Eclipse 插件測試將涵蓋基本功能。這包括安裝、配置Yocto項目ADT設(shè)置、Yocto BSP、Bitbake 項目以及項目編譯和部署到目標(biāo)。根據(jù)將要實現(xiàn)的功能,將添加新的測試用例,以支持Windows和Mac。這將在"功能"部分詳細介紹。
- 無頭構(gòu)建
- 創(chuàng)建 C/C++工程
- 調(diào)試/部署
- 用戶空間工具
- Bitbake工程
根據(jù)SDK的新功能(如 MacOS 和 Windows 支持),將運行其他測試以驗證新功能。
有關(guān)eclipse測試自動化,請參閱Eclipse測試框架部分。
- 構(gòu)建設(shè)備
將測試構(gòu)建設(shè)備的基本功能。測試包括成功構(gòu)建構(gòu)建設(shè)備鏡像。
4.1.4 測試周期
以下是最常用的通用測試周期,但每個Yocto項目的測試版本都可能發(fā)生變化。
-
冒煙測試:簡短快速的自動測試,執(zhí)行時間不超過 10 分鐘。
- 測試范圍:在AutoBuilder上觸發(fā)。
- 目標(biāo):
- 無錯誤完成構(gòu)建;
- 檢查QEMU映像的基本功能,如啟動、網(wǎng)絡(luò)、軟件包管理器等;
- 根據(jù)構(gòu)建類型確定測試周期是否可以繼續(xù)。
- 在AB上運行的測試是映像測試。根據(jù)目標(biāo)鏡像類型,其配置存儲在AB配置文件"yocto-autobuilder/buildset-config"中。
-
每周測試
- 測試范圍:每周構(gòu)建并通過發(fā)行團隊發(fā)布的鏡像。
- 目標(biāo):
- 用最少的測試集對大部分區(qū)域進行功能測試;
- 回歸測試:極有可能發(fā)現(xiàn)錯誤。
-
全量測試
- 范圍:作為里程碑或最終版本候選的image;
- 目標(biāo):確保所有Yocto項目組件的功能。
-
發(fā)布測試
- 測試范圍:發(fā)布通過全量測試的候選版本
- 目標(biāo)
- 涵蓋或重新安排所有預(yù)定功能;
- 修復(fù)并驗證所有相關(guān)錯誤。
- 增加覆蓋范圍
- 壓力測試
- 合規(guī)性測試
- 分發(fā)測試
4.1.4 測試執(zhí)行
測試執(zhí)行將按照https://wiki.yoctoproject.org/wiki/QA#QA_Process的QA維基頁面中定義的QA流程進行。
參考資料
- 軟件測試精品書籍文檔下載持續(xù)更新 https://github.com/china-testing/python-testing-examples 請點贊,謝謝!
- 本文涉及的python測試開發(fā)庫 謝謝點贊! https://github.com/china-testing/python_cn_resouce
- python精品書籍下載 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
- Linux精品書籍下載 https://www.cnblogs.com/testing-/p/17438558.html
- https://wiki.yoctoproject.org/wiki/QA/Master_Test_Plan#Test_Plans
5 測試工具
5.1 AutoBuilder
參見:https://wiki.yoctoproject.org/wiki/The_Yocto_Autobuilder
5.2 oe-selftest
Oe-selftest是用于測試OpenEmbedded構(gòu)建系統(tǒng)的測試框架。以下是介紹oe-selftest的一些要點:
- 基于Python unittest
- 旨在模擬正常使用模式
- 不包括image運行時測試
- 實現(xiàn)了一個新層,其中包含僅由測試使用的通用/特定元數(shù)據(jù)
更多參考:Oe-selftest wiki。
5.3 image測試
5.4 合規(guī)性測試
用于genericx86-64的合規(guī)性測試套件/框架:
- LSB(Linux Standard Base)測試
- POSIX(Portable Operating System Interface for UNIX)測試
- LTP(Linux Test Project)測試
安裝步驟
- 從autobuilder下載lsb映像(與genericx86-64-lsb bsp LSB 每周測試中的映像相同),我們使用 genericx86-64-lsb、core-image-lsb-sdk 在NUC上測試合規(guī)性
2.在DUT上安裝鏡像
3.配置網(wǎng)絡(luò),使其能聯(lián)網(wǎng)工作:編輯/etc/resolv.conf并添加網(wǎng)關(guān)IP地址;使用"ifconfig"命令添加IP和掩碼;使用 "route add default gw <ip_address>"添加路由;使用"export http_proxy=<添加代理鏈接>"命令添加代理
- 在DUT上復(fù)制 "compliance_test.py"腳本
5.確保網(wǎng)絡(luò)連接正常
6.像這樣運行腳本:"chmod a+x compliance_local.py" ; "./compliance_test.py <里程碑> <日期>"。等待 "配置完成。必須從機器啟動LSB 腳本。"(約 8-12 小時)
7.通過ssh或手動運行"LSB_test.sh "并等待其完成(約一天)
8.從DUT獲取日志:result--data.fulllog;result- -data.log;result- -data.fail;posix.log(可在以下位置找到:/opt/ltp/testcases/open_posix_testsuite),其他三個日志在 /opt/ltp目錄下的 output、temp、result文件夾中。日志需要發(fā)送到y(tǒng)i.zhao@windriver.com,并指定版本和映像類型
;在/var/opt/lsb/test/manager/results/x86.../x86....tar.gz(您可以使用自動完成(選項卡)輕松找到它),它大約有 18 兆字節(jié),將此文件上傳到硬盤,并將鏈接發(fā)送到 hongxu.jia@windriver.com和mark.hatle@windriver.com,我還會發(fā)送電子郵件。
9.將Testopia - Runtime測試運行中的測試放在已通過的測試中。
腳本可在此處找到: http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=cagurida/compliance
5.5 pTest
ptest(軟件包測試 package test)是一個概念,用于構(gòu)建、安裝和運行軟件包本身包含的測試套件,同時產(chǎn)生一致的測試執(zhí)行輸出格式。有關(guān)啟用和安裝的更多詳情,請訪問Ptest。
安裝和運行步驟
- 從autobuilder下載pTest映像(可在pTest目錄中找到core-image-sato-sdk映像)
- 將映像安裝到DUT上(使用傳統(tǒng)啟動方式)
- 啟動映像并在DUT上復(fù)制"ptest-runner.sh"腳本
- 在命令行中運行"ptest-runner.sh > ptest.log"并等待完成(約 5 小時)
5.6 Eclipse測試框架
Eclipse測試框架使用Dogtail實現(xiàn)測試自動化。有關(guān)安裝和框架的詳細信息,請參閱 contrib 上的 eclipse-framework README。Dogtail是用Python編寫的圖形用戶界面測試工具和自動化框架。Dogtail腳本用Python編寫,并像其他Python程序一樣執(zhí)行。
5.7 構(gòu)建性能測試
在多個常用配置中,根據(jù)通過構(gòu)建流程所花費的時間,對構(gòu)建系統(tǒng)的性能進行跟蹤。
使用的工具:http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/scripts/contrib/build-perf-test.sh
更多詳情,請參閱性能測試wiki。
目前,可在此處以圖表形式查看構(gòu)建性能結(jié)果(從 YP 1.6 開始),點擊此處
5.7 補丁自動測試
[待定] - 未實現(xiàn)
6 測試自動化
- 目標(biāo)
- 通過自動化當(dāng)前測試,減少手動測試的工作量;
- 改進運行時測試。
- 改進構(gòu)建時測試。
- 工具
- Distro 測試
- AutoBuilder
- 在AutoBuilder上運行映像測試。
- 可以使用Oe-selftest。目前oe-selftest 也在公共AutoBuilder上運行。
6.1 測試自動化貢獻庫
- Oe-selftest
- Image tests
- Ptest
- Toaster
- Eclipse測試框架
7 測試時間表
有關(guān)項目的總體日程安排,請訪問被測版本測試計劃中的"日程安排"部分
8 進入和退出標(biāo)準(zhǔn)
本節(jié)定義了開始和結(jié)束測試周期的標(biāo)準(zhǔn):
8.1 進入標(biāo)準(zhǔn)
- 發(fā)布候選版本并發(fā)送"開始QA活動"郵件。
- 自動生成image可用
- 候選版測試運行模板已準(zhǔn)備就緒
- 已發(fā)送包含使用日期和構(gòu)建說明的郵件
8.2 退出標(biāo)準(zhǔn)
- 計劃的所有組件均已 100% 完成
- 所有失敗/受阻的測試用例都與有效的錯誤相關(guān)聯(lián)(未解決也未驗證)
- 重大問題導(dǎo)致組件/構(gòu)建受阻
還定義了一般標(biāo)準(zhǔn),請參閱"通過/失敗標(biāo)準(zhǔn)"部分
9 假設(shè)和限制
TBD
10 驗證
- 目標(biāo)
驗證當(dāng)前版本的Yocto項目中引入的新變更功能是否正確。
-
輸入標(biāo)準(zhǔn)
- 通過填寫 "QA Owner "字段來跟蹤中+/高增強的變更
- 變更在Bugzilla中被列為優(yōu)先
- Bugzilla 條目在當(dāng)前版本中有目標(biāo)里程碑
- 更改已記錄在案,或在無需記錄時已指出(相應(yīng)地設(shè)置doc標(biāo)志)
- 錯誤狀態(tài)設(shè)置為"已解決"。
-
退出標(biāo)準(zhǔn)
- 變更已為編寫測試用例(如適用)做好文檔記錄
- 計劃測試用例已通過
- 錯誤狀態(tài)設(shè)置為已驗證
11 測試報告
- 目標(biāo)
- 在最新版本中顯示當(dāng)前測試運行的實時狀態(tài);
- 在測試周期結(jié)束時向Yocto項目郵件列表發(fā)送報告電子郵件;
- 歸檔報告;
- 使用QA狀態(tài)模板進行報告;
- 在最終版本發(fā)布后更新版本維基
關(guān)于具體的可交付成果,請查看當(dāng)前測試版本的"測試可交付成果"部分。
12 測試計劃
本節(jié)分為兩種類型的測試計劃:發(fā)行版和組件。
13 測試執(zhí)行
有關(guān)Yocto項目各版本測試執(zhí)行的歷史信息,請訪問Releases。文章來源:http://www.zghlxwxcb.cn/news/detail-710811.html
有關(guān)當(dāng)前測試版本的測試執(zhí)行的具體信息,請訪問最新Test Plans中的"執(zhí)行歷史"部分文章來源地址http://www.zghlxwxcb.cn/news/detail-710811.html
到了這里,關(guān)于測試計劃實例:Yocto測試計劃的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!