V模型、W模型、H模型

2021-02-08 測試百曉生

測試模型

隨著測試過程的管理和發展,測試人員通過大量的實踐,從而總結出了不少測試模型,如常見的V模型、W模型、H模型等。這些模型與開發緊密結合,對測試活動進行了抽象,成為了測試過程管理的重要參考依據。

V模型

V模型示意圖(重要)

V模型(測試 

1、單元測試

又稱模塊測誠,針對軟體設計中的最小單位—程莊模塊,進行正確性檢查的測試工作。單元測試需要從程序的內部結構出發設計測試用例。多個模塊可以平行地獨立進行單元測試。
單元定義:C中指一個函數,Java中指一個類,在圖形化的軟體中,單元一般指1個窗口,1個菜單。

2、集成測試

又叫組裝測試,通常在單元測試的基礎上,將所有程序模塊進行有序的、遞增的測試。重點測試不同模塊的接口部分。

3、系統測試(system testing):
指的是將整個軟體系統看為一個整體進行測試,包括對功能、性能、以及軟體所運行的軟硬體環境進行測試。
系統測試在系統集成完畢後進行測試,前期主要測試系統的功能是否滿足需求,後期主要測試系統運行的性能是否滿足需求,以及系統在不同的軟硬體環境中的兼容性等。
4、驗收測試
α測試:Alpha是內測版本,即現在所說的C8,比版本表示該軟體僅僅是一個初步完成品,通常只在軟體開發者內部交流,也有很少一部分發布給專業測試人員。一般而言,該版本軟體的bug較多,普通用戶最好不要安裝。

β測試:Beta是公測版本,是對所有用戶開放的測試版本。該版本相對於a顏已有了很大的改進,消除了嚴重的錯誤,但還是存在著一些陷需要經過大規模的發布試來進一步消除。這一版本通常由軟體公司免費發布,用戶可從相關的站點下載。通過一些專業愛好者的測試,將結果反饋給開發者,開發者們再進行有針對性的修改。該版本也不適合一般用戶安裝。

λ測試:Camma版本,指的是軟體版本正式發行的候選版。該版本已經相當成熟了,與即將發行的正式版相差無幾,成為正式反布的候選版本。

軟體正式版本推出之前的幾個版本,需要有人測試一下,看看是不是有問題。在開發該軟體的公司內部的由該公司內部人員式的稱為:Alpha測試,Alpha 測式主要看有沒有功能缺失或系統錯誤,Alpha 測試完後一般不會有大問題了。然後巴軟體拿給用戶測試稱為:beta 測試,主要是看用戶對軟體外觀、使用方便等的反應。這麼多的式版一方面為了最終產品儘可能地滿足用戶的需要,另一方面也儘量成少了軟體中的bug。然後做過一些修改,成為正式發布的候選版本時,叫做gamma(現在叫做RC-ReleaseCandidate)。
簡單來說,阿爾法測試主要是測試人員在開發環境下的測試,貝塔測試是在實際環境中的測試,或者公司內部人員在模擬真實環境中的測試。

V模型的優缺點(測試重點)

1、優點:包含了底層測試(單元測試)和高層測試(系統測試);

      清楚的標識了開發和測試的各個階段;

      自上而下逐步求精,每個階段分工明確,便於整體項目的把控。
2、缺點:自上而下的順序導致了,測試工作在編碼之後,就導致錯誤不能及時的進行修改;

           實際工作中,需求經常變化,導致v模型步驟,反覆執行,返工量很大,靈活度較低。
 改良:每個步驟都可以進行小的迭代工作。

 

 

W模型(重要)

 

定義:開發一個v;測試一個v組合起來的模型(w模型也叫雙v模型)

 

W模型示意圖

優點:

     開發伴隨著整個開發周期,需求和設計同樣要測試;
     更早的介入測試,可以發現初期的缺陷,修復成本低;
     分階段工作,方便項目整體管理。
缺點:

     開發和測試依然是線性的關係,需求的變更和調整,依然不方便;
     如果沒有文檔,根本無法執行w模型;對於項目組成員的技術要求更高!

 

H模型(了解)

H模型示意圖

H模型的優點:
  >開發的H模型揭示了軟體測試除測試執行外,還有很多工作;
  >軟體測試完全獨立,貫穿整個生命周期,且與其他流程並發進行;
  >軟體測試活動可以儘早準備、儘早執行,具有很強的靈活性;
  >軟體測試可以根據被測物的不同而分層次、分階段、分次序的執行,同時也是可以被迭代的。

H模型的缺點:
  >管理型要求高:由於模型很靈活,必須要定義清晰的規則和管理制度,否則測試過程將非常難以管理和控制;
  >技能要求高:H模型要求能夠很好的定義每個迭代的規模,不能太大也不能太小;
  >測試就緒點分析困難:測試很多時候,你並不知道測試準備到什麼時候是合適的,就緒點在哪裡,就緒點的標準是什麼,這就對後續的測試執行的啟動帶來很大困難;
  >對於整個項目組的人員要求非常高:在很好的規範制度下,大家都能高效的工作,否則容易混亂。例如:你分了一個小的迭代,但是因為人員技能不足,使得無法有效完成,那麼整個項目就會受到很大的幹擾。

總結:

 

  v模型適用於中小企業,

  w模型適用於中大型企業(因為人員要求高),

  h模型人員要求非常高,很少有公司使用。


相關焦點

  • 軟體測試生命周期模型之V模型、W模型、H模型
    軟體開發中大家總結了很多開發模型,瀑布模型,原型模型等等。測試也要遵循軟體工程原理。今天帶大家來看看測試專家通過實踐總結的V模型、W模型、H模型。又稱為模塊測試,針對軟體測試中最小單位的。單元測試需要從程序的內部結構出發設計測試用例,多個模塊可以平行獨立的進行單元測試。
  • 數量經濟學的Python實現(十)|工作搜尋模型(一):McCall的基本模型
    在強化學習領域中,MDP是一個相當Naǐve的入門級模型,因為其所有的狀態是可見的(這也很符合economist的建模習慣,模型的機制必須是清楚可解釋的)。但事實上呢?    """    n = len(mcm.w)    v = mcm.w / (1 - mcm.β)    v_next = np.empty_like(v)    for i in range(num_plots):        ax.plot(mcm.w, v, '-', alpha=0.4, label=f"iterate
  • 手把手教你搭建YOLO V3 物體檢測模型 (一)
    本文將為大家詳細介紹如何快速上手,從零開始搭建目標檢測YOLO V3 模型,此為第一講。下一講中,我們將通過使用 Pascal VOC dataset 為例來講述如何訓練模型。希望通過本文,小夥伴們都可以應用YOLO V3 模型訓練自己的數據集。
  • 數量經濟學的Python實現(十一)|工作搜尋模型(二):搜尋和離職
    >        α, β, c, w, q = self.α, self.β, self.c, self.w, self.q        v_new = np.empty_like(v)        for i in range(len(w)):            v_new[i] = u(w[i]) + β * ((1 - α) * v[i
  • 模型轉換實戰分享:OpenPose手部關鍵點檢測模型的遷移部署
    深度學習模型跨框架遷移一直是一件不太容易的事情,面對這個問題時一般有兩個選擇,一是手動轉換代碼至你所熟悉的框架並重新訓練模型;二是使用各種模型轉換工具對模型進行直接一鍵的轉換。前者難度高、耗時長而且還需要算力的支持;而後者使用方便快捷,但是普適性不強,對於一些特殊的模型直接使用工具轉換可能是行不通的。
  • 高斯混合模型
    高斯混合模型訓練過程      案例1——高斯混合模型橢球用期望最大化(GaussianMixture類)和變分推理(Dirichlet過程先驗BayesianGaussianMixture類模型)得到的兩個高斯混合的置信橢球圖。
  • Tensorflow + OpenCV4 安全帽檢測模型訓練與推理
    在OpenCV DNN中直接調用訓練出來的模型完成自定義對象檢測,這裡需要特別說明一下的,因為在訓練階段我們選擇了模型支持600~1024保持比率的圖像輸入。所以在推理預測階段,我們可以直接使用輸入圖像的真實大小,模型的輸出格式依然是1x1xNx7,按照格式解析即可得到預測框與對應的類別。
  • 設計並訓練可同時預測性別年齡CNN模型
    ,如此一來,就不用串接多個模型,使用上更為方便。若使用Keras設計multi-class prediction模型,透過function API方式相當的方便且容易,比較需要留意的部份,是training/testing target、loss以及metrics之間的搭配連結。在下方的範例,我們將訓練一個模型,輸入一張人臉圖片後,便可同時預測該人臉的性別及年紀。
  • 【24模型】人船模型分析
    解析:氣球和人原靜止於空中,說明系統所受合力為零,故人下滑過程中系統動量守恆,人著地時,繩梯至少應觸及地面,因為人下滑過程中,人和氣球任意時刻的動量大小都相等,所以整個過程中系統平均動量守恆.若設繩梯長為l,人沿繩梯滑至地面的時間為 t,由圖可看出,氣球對地移動的平均速度為(l-h)/t,人對地移動的平均速度為-h/t(以向上為正方向).由動量守恆定律,有M(l-h)/t-m
  • TensorRT加速PyTorch模型教程
    其實原理都是一樣的,對於tensorflow模型,需要把pb模型轉化為uff模型;對於pytorch模型,需要把pth模型轉化為onnx模型;對於caffe模型,則不需要轉化,因為tensorRT是可以直接讀取caffe模型的。mxnet模型也是需要轉化為onnx的。
  • TensorRT 加速 PyTorch 模型基本方法
    其實原理都是一樣的,對於tensorflow模型,需要把pb模型轉化為uff模型;對於pytorch模型,需要把pth模型轉化為onnx模型;對於caffe模型,則不需要轉化,因為tensorRT是可以直接讀取caffe模型的。mxnet模型也是需要轉化為onnx的。
  • WGAN模型理論以及Python實現
    https://arxiv.org/abs/1701.07875WGAN是一種一般的GAN更加穩定和準確的GAN模型。
  • YOLOv5超詳細的入門級教程(訓練篇)(二)——VOC2007模型復現
    Pytorch-YOLOv5經過的學習後,明白了訓練模型的全套流程,現在我們的問題是如何提升模型的性能?非常重要的一個環節便是數據集,一個好的數據集對於模型性能是至關重要的。/((size[0])+0.1)    x = (box[0] + box[1])/2.0 - 1    y = (box[2] + box[3])/2.0 - 1    w = box[1] - box[0]    h = box[3] - box[2]    x = x*dw    w = w*dw    y = y*dh    h
  • 第五講——相關與回歸模型的SAS程序
    的影響大小,還可以由回歸方程進行預測和控制 Proc reg data=e42;Model y= x ;Run; 模型的檢驗,模型係數T檢驗與模型擬合優度R2簡單模型Proc reg data=e41 ;Model y=x;Run
  • 如何使用TensorRT對訓練好的PyTorch模型進行加速?
    其實原理都是一樣的,對於tensorflow模型,需要把pb模型轉化為uff模型;對於pytorch模型,需要把pth模型轉化為onnx模型;對於caffe模型,則不需要轉化,因為tensorRT是可以直接讀取caffe模型的。mxnet模型也是需要轉化為onnx的。
  • 【模型訓練】ubuntu 編譯 Darknet 與 YOLO 訓練
    2.2 Yolo 訓練   在有了數據集後,然後搞來模型結構文件和預訓練權重就可以開啟愉快的煉丹之旅。在 cfg 文件夾裡其實已經提供了很多的模型結構文件,如 yolov3.cfg、yolov3-tiny.cfg、yolov4.cfg、yolov4-tiny.cfg 等,你只需要找到相應的預訓練權重就行了,如:yolov3.cfg  ---> darknet53.conv.74  傳送:https://pjreddie.com
  • 輕鬆學Pytorch – 行人檢測Mask-RCNN模型訓練與使用
    前面一篇已經詳細分享了關於模型本身,格式化輸入與輸出的結果。這裡使用的預訓練模型是ResNet50作為backbone網絡,實現模型的參數微調遷移學習。輸入的數據是RGB三通道的,取值範圍rescale到0~1之間。
  • 時間序列模型(三)——馬爾可夫模型
    μ是A的一個特徵值,其對應的(右)特徵向量v(Av=μv)的所有分量都是非負的。同時,A也有關於μ的左特徵向量(行向量)w,它可以看作是A'(A的轉置)的(右)特徵向量的轉置,滿足wA=μw。w中分量也都是非負的,且wv=1(這可以通過將w乘以合適的係數做到)。Perron–Frobenius定理的限制「元素均非負」正好符合馬爾科夫鏈狀態轉移矩陣的特點——元素都是概率值。
  • word2vec模型深度解析
    」文章來源:TianMin https://zhuanlan.zhihu.com/p/85998950word2vec是輕量級的神經網絡,其模型僅僅包括輸入層、隱藏層和輸出層,模型框架根據輸入輸出的不同,主要包括CBOW和skip- gram模型,CBOW模型是通過上下文的內容預測中間的目標詞
  • 線性模型之Logistic和Softmax回歸
    其中w = [w1, · · · , wd].T 為d維的權重向量,b為偏置。線性回歸就是典型的線性模型,直接用f(x, w)來預測輸出目標y = f(x, w)。神經網絡的概念和基本用法一個線性分類模型(Linear Classification Model)或線性分類器(LinearClassifier),是由一個(或多個)線性的判別函數f(x, w) =w.T * x + b和非線性的決策函數g(·)組成。