任务管理平台_软件品质评测系统任务分发管理平台
testkuaibao|軟件測(cè)試自學(xué)公眾號(hào)
1●為什么需要任務(wù)分發(fā)平臺(tái)●
在一個(gè)基本的評(píng)測(cè)系統(tǒng)中我們有了評(píng)測(cè)執(zhí)行工具、評(píng)測(cè)數(shù)據(jù)、評(píng)測(cè)環(huán)境就能進(jìn)行一次評(píng)測(cè)任務(wù)的執(zhí)行,但現(xiàn)在是大數(shù)據(jù)時(shí)代,我們更多的需求是針對(duì)大量數(shù)據(jù)進(jìn)行評(píng)測(cè)。比如在輸入法評(píng)測(cè)中我們有10000個(gè)語(yǔ)料文件需要下發(fā)到100臺(tái)手機(jī)上執(zhí)行測(cè)試,如果靠人工控制逐一分配任務(wù)難免非常復(fù)雜混亂,影響工作效率。而一個(gè)任務(wù)分發(fā)管理平臺(tái)的意義就是實(shí)現(xiàn)對(duì)所有任務(wù)進(jìn)行統(tǒng)一管理,保證有序高效執(zhí)行。
2●一個(gè)優(yōu)秀的任務(wù)分發(fā)平臺(tái)是怎樣的●在輸入法項(xiàng)目的評(píng)測(cè)工作中,我們對(duì)任務(wù)分發(fā)管理也有了一些經(jīng)驗(yàn),我們認(rèn)為一個(gè)優(yōu)秀的任務(wù)分發(fā)管理平臺(tái)需要具備以下三個(gè)特征:
結(jié)果準(zhǔn)確正確下發(fā)任務(wù)是平臺(tái)的基本功能,保證用戶獲取的任務(wù)信息準(zhǔn)確無(wú)誤。比如一個(gè)輸入法評(píng)測(cè)任務(wù):評(píng)測(cè)10.1版本輸入法在體育類別語(yǔ)料中的基礎(chǔ)品質(zhì),那獲取的任務(wù)中包含的評(píng)測(cè)數(shù)據(jù)集以及軟件版本等信息必須完整且準(zhǔn)確,否則錯(cuò)誤任務(wù)的執(zhí)行不僅耗時(shí),還可能產(chǎn)生錯(cuò)誤的評(píng)測(cè)結(jié)論。
另外,需要注意的是海量任務(wù)評(píng)測(cè)必須處理好高并發(fā)的用戶場(chǎng)景,比如100臺(tái)手機(jī)同時(shí)獲取評(píng)測(cè)任務(wù)時(shí),需要平臺(tái)保證所有任務(wù)無(wú)重復(fù)且無(wú)遺漏的下發(fā)。
高效執(zhí)行平臺(tái)的穩(wěn)定性是保證效率的基本要求,否則每一個(gè)崩潰的修復(fù)都會(huì)增加測(cè)試成本。
大量數(shù)據(jù)的高效執(zhí)行需要我們提供智能分發(fā)能力,計(jì)算最優(yōu)下發(fā)策略。比如任務(wù)列表中包含3任務(wù),執(zhí)行一次的時(shí)間分別為A任務(wù)4小時(shí)、B任務(wù)4小時(shí)、C任務(wù)8小時(shí),現(xiàn)有2臺(tái)機(jī)器并發(fā)工作。任務(wù)分發(fā)平臺(tái)下發(fā)任務(wù)的不同策略會(huì)導(dǎo)致不同的時(shí)間成本,方案一:下發(fā)順序ABC,則三個(gè)任務(wù)執(zhí)行完畢總消耗的時(shí)間為12小時(shí);方案二:下發(fā)順序CAB,則總消耗為8小時(shí)。因此智能分發(fā)是提高效率的有效途徑。
使用便捷平臺(tái)的設(shè)計(jì)更多需要從用戶的角度出發(fā),作為平臺(tái)的開發(fā)者必須熟悉評(píng)測(cè)的需求才能編寫出便捷易用的產(chǎn)品。
對(duì)接用戶需求是關(guān)鍵,比如我曾經(jīng)遇到過(guò)如下問(wèn)題,在任務(wù)平臺(tái)的結(jié)果展示界面中有任務(wù)進(jìn)度展示表格,表格中展示了該項(xiàng)目任務(wù)的語(yǔ)料信息、軟件信息,評(píng)測(cè)進(jìn)度等,在每一行的表格編號(hào)展示時(shí),以開發(fā)者的習(xí)慣設(shè)計(jì)為遞增的行號(hào)。后來(lái)以評(píng)測(cè)執(zhí)行者的身份查看該表格時(shí)發(fā)現(xiàn)設(shè)計(jì)為該項(xiàng)目在數(shù)據(jù)庫(kù)中對(duì)應(yīng)的id號(hào)更合適,在后續(xù)可以通過(guò)該id值與其他任務(wù)結(jié)果展示表格數(shù)據(jù)產(chǎn)生直觀的連接。
3●如何做任務(wù)分發(fā)管理平臺(tái)●任務(wù)分發(fā)管理平臺(tái)的設(shè)計(jì)實(shí)現(xiàn)我們分為數(shù)據(jù)庫(kù)、后端和前端三個(gè)模塊。
數(shù)據(jù)庫(kù)首先在評(píng)測(cè)前需要先做好數(shù)據(jù)的存儲(chǔ),海量數(shù)據(jù)的合理存儲(chǔ)能夠給整個(gè)評(píng)測(cè)的工作提供穩(wěn)定的數(shù)據(jù)支持。
數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)需要考慮如何節(jié)省空間和查詢高效。第一、盡量減少冗余數(shù)據(jù),比如輸入法評(píng)測(cè)中一個(gè)任務(wù)中包含軟件信息,而顯然任務(wù)數(shù)據(jù)是百萬(wàn)量級(jí)的,而軟件信息一般是百量級(jí)的,因此將軟件信息和任務(wù)信息設(shè)計(jì)為兩個(gè)數(shù)據(jù)表,通過(guò)外鍵的方式連接可以節(jié)約數(shù)據(jù)存儲(chǔ)空間,提高數(shù)據(jù)訪問(wèn)速度。第二、建立高效索引,一般用戶的各種需求實(shí)現(xiàn)時(shí)需要對(duì)數(shù)據(jù)表進(jìn)行各種組合條件查詢,而對(duì)于百萬(wàn)量級(jí)的數(shù)據(jù)表如果不能建立高效合適的索引,查詢的效率顯然無(wú)法滿足要求。
后端數(shù)據(jù)處理
我們?cè)谧龈鞣N數(shù)據(jù)處理時(shí)主要遵循兩個(gè)原則:準(zhǔn)和快。
首先數(shù)據(jù)要準(zhǔn)確,比如用戶誤操作重復(fù)添加的任務(wù)能及時(shí)過(guò)濾,用戶刪除的任務(wù)能及時(shí)更新任務(wù)數(shù)據(jù),高并發(fā)時(shí)要保證數(shù)據(jù)的線程安全等等。
其次數(shù)據(jù)處理要高效,這個(gè)體現(xiàn)在很多方面,比如在數(shù)據(jù)庫(kù)的訪問(wèn)中不同的語(yǔ)法的效率便有很大的差異,在如下所示代碼中同樣是查詢狀態(tài)為pending的第一條任務(wù),第二種語(yǔ)句的實(shí)現(xiàn)顯然效率更高。
語(yǔ)法一:task = TaskInfo.query.filter(and_(TaskInfo.status == "pending").all()[0]語(yǔ)法二:task = TaskInfo.query.filter(and_(TaskInfo.status == "pending").first()任務(wù)流
一個(gè)完整的任務(wù)流一般分為任務(wù)的添加、任務(wù)的獲取、任務(wù)的下發(fā)和任務(wù)信息的回收,而這也正好對(duì)應(yīng)任務(wù)的生命周期中的四個(gè)狀態(tài)任務(wù)就緒(pending)、等待執(zhí)行(waiting)、執(zhí)行中(running)、結(jié)束(finished)。
一個(gè)任務(wù)流分為以下四步:
1)新任務(wù)首次寫入數(shù)據(jù)庫(kù)中,初始狀態(tài)置為pending。此過(guò)程直接與用戶交互,因此在用戶操作后可以將任務(wù)先加入緩存Redis中,及時(shí)給予用戶反饋,然后再后臺(tái)定期將Redis中任務(wù)寫入數(shù)據(jù)庫(kù)中;
2)從數(shù)據(jù)庫(kù)獲取pending狀態(tài)的任務(wù),寫入緩存任務(wù)隊(duì)列,任務(wù)狀態(tài)置為waiting,等待被執(zhí)行。用戶獲取任務(wù)的過(guò)程頻繁,因此提前將所有未執(zhí)行任務(wù)取出可以減少數(shù)據(jù)庫(kù)的訪問(wèn)次數(shù),其次將任務(wù)緩存在Redis的數(shù)據(jù)結(jié)構(gòu)中還可以提高用戶獲取任務(wù)的響應(yīng)速度;
3)執(zhí)行機(jī)器從緩存任務(wù)隊(duì)列中獲取任務(wù)開始執(zhí)行,任務(wù)狀態(tài)置為running;
4)任務(wù)執(zhí)行完畢后,任務(wù)狀態(tài)置為finished。
用戶交互
用戶交互部分的實(shí)現(xiàn)一般需要注意兩點(diǎn):
第一、接口規(guī)范要統(tǒng)一,先收集用戶需求,然后與前端統(tǒng)一定義好接口的參數(shù),使用規(guī)范,提高工作效率。
第二、考慮用戶對(duì)響應(yīng)性能的要求,對(duì)于一些需要執(zhí)行很長(zhǎng)時(shí)間的任務(wù),如果不能及時(shí)響應(yīng),用戶的前端界面就會(huì)一直卡在那兒,影響體驗(yàn)。因此需要考慮用戶場(chǎng)景優(yōu)化底層實(shí)現(xiàn)算法,比如分布式調(diào)度任務(wù)、多線程處理、分頁(yè)優(yōu)化算法等等以提高交互性能。
前端前端是直接面向用戶的,因此前端的設(shè)計(jì)必須對(duì)接用戶的需求,要有產(chǎn)品思維,從用戶的角度出發(fā)設(shè)計(jì)前端,做到簡(jiǎn)單、美觀和規(guī)范。而在實(shí)現(xiàn)上,選擇一款合適的前端框架也能事半功倍,目前比較主流的框架有React、Vue和Angular等等。每種框架都有其適用的開發(fā)場(chǎng)景,比如React在瀏覽器兼容方面很有優(yōu)勢(shì),Vue是輕量級(jí)的漸進(jìn)式框架,與現(xiàn)代化的工具鏈以及各種支持庫(kù)的結(jié)合非常優(yōu)秀,非常容易上手,而Angular框架是JS框架,有著豐富的Angular指令,可以擴(kuò)寬html。在開發(fā)任務(wù)分發(fā)平臺(tái)的前端時(shí)可以選擇以上任意一種框架,按照開發(fā)者的習(xí)慣即可。
4●總結(jié)●在當(dāng)今大數(shù)據(jù)AI時(shí)代,對(duì)大數(shù)據(jù)的測(cè)試會(huì)成為業(yè)界趨勢(shì),具備相關(guān)的技術(shù)能力也是我們測(cè)試的必要功課,做好任務(wù)分發(fā)也是其中必不可少的一環(huán)。對(duì)于大數(shù)據(jù)測(cè)試大家有什么心得體會(huì),也歡迎與我們一起分享~~~。
來(lái)源:搜狗測(cè)試、作者:liuyang,如有侵權(quán)請(qǐng)聯(lián)系刪除
關(guān)于sdk測(cè)試,這些你都知道嗎?測(cè)試數(shù)據(jù)不會(huì)造?可以用這個(gè)工具接口測(cè)試之文件重定向法2年軟件測(cè)試開發(fā)的成長(zhǎng)歷程覺(jué)得文章不錯(cuò)就點(diǎn)個(gè)在看唄,轉(zhuǎn)發(fā)就更好了總結(jié)
以上是生活随笔為你收集整理的任务管理平台_软件品质评测系统任务分发管理平台的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 兴业虚拟信用卡可以微信支付吗
- 下一篇: 安卓 图像清晰度识别_智能车牌识别系统的