php代碼覆蓋率統(tǒng)計(jì)實(shí)踐

一、需求描述

由于我司的業(yè)務(wù)大部分都是php項(xiàng)目,在實(shí)際的測(cè)試任務(wù)中,有測(cè)試工程師反饋存在測(cè)試結(jié)束后無(wú)法對(duì)測(cè)試覆蓋率保有自信,擔(dān)心存在漏測(cè)行為;本項(xiàng)目將作為漏測(cè)的輔助判斷存在,幫助測(cè)試工程師進(jìn)行是否存在漏測(cè)的輔助判斷。
本項(xiàng)目需要在測(cè)試手工任務(wù)完成后,提供本次測(cè)試任務(wù)對(duì)應(yīng)的代碼的覆蓋率,具體包括本次的測(cè)試任務(wù)對(duì)應(yīng)了哪些php文件,以及這些php文件里,有哪些代碼是尚未被覆蓋的,以此來(lái)輔助判斷本次測(cè)試任務(wù)是否存在漏測(cè)。
本項(xiàng)目由本人發(fā)起,與本組前端,php后端共同完成。

二、任務(wù)拆解

項(xiàng)目將被拆解為以下部分:

1.覆蓋率統(tǒng)計(jì)系統(tǒng)

本系統(tǒng)主要借由xdebug的統(tǒng)計(jì)功能實(shí)現(xiàn)統(tǒng)計(jì)目的,但直接用xdebug的話會(huì)有一些問(wèn)題,諸如:

  1. 測(cè)試結(jié)果不直觀,xdebug的結(jié)果是代碼文件、行數(shù)和對(duì)應(yīng)覆蓋與否,無(wú)法直觀的看到測(cè)試結(jié)果;
  2. 不能做到統(tǒng)計(jì)權(quán)限隔離,導(dǎo)致當(dāng)統(tǒng)計(jì)環(huán)境為公共環(huán)境時(shí),其他人的行為會(huì)影響覆蓋率的判斷;
  3. 不能將項(xiàng)目和用戶建立映射關(guān)系,導(dǎo)致用戶的測(cè)試行為很可能會(huì)涉及到非本項(xiàng)目的覆蓋率統(tǒng)計(jì)。

針對(duì)以上痛點(diǎn),我們對(duì)xdebug加以封裝改造,加入用戶系統(tǒng),圖表系統(tǒng),豐富了統(tǒng)計(jì)功能,從而使得覆蓋率統(tǒng)計(jì)可以為測(cè)試人員提供參考價(jià)值。
本部分主要改造自開源項(xiàng)目:(https://github.com/cj58/PHPCodeCoverage

2.項(xiàng)目倉(cāng)庫(kù)系統(tǒng)

倉(cāng)庫(kù)系統(tǒng)主要對(duì)項(xiàng)目和實(shí)現(xiàn)項(xiàng)目的php文件建立映射關(guān)系,統(tǒng)計(jì)覆蓋率只會(huì)在項(xiàng)目?jī)?nèi)對(duì)應(yīng)的php文件里進(jìn)行,從而實(shí)現(xiàn)了項(xiàng)目的覆蓋率隔離,避免非本項(xiàng)目的文件對(duì)本項(xiàng)目的覆蓋率產(chǎn)生污染。

3.報(bào)表系統(tǒng)

報(bào)表系統(tǒng)主要對(duì)覆蓋率結(jié)果進(jìn)行分析,生成覆蓋率圖表加以展示,統(tǒng)計(jì)分為總項(xiàng)目統(tǒng)計(jì)和項(xiàng)目下分文件統(tǒng)計(jì)。

三、成果展示

demo部分截圖如下

項(xiàng)目列表:
項(xiàng)目列表.jpg
迭代查看界面:
迭代查看界面.png
查看文件代碼覆蓋率:
代碼查看界面.png
總覽界面:
總覽界面.png

4.效果驗(yàn)證

尚在驗(yàn)證
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容