簡體   English   中英

實施測試和單元測試

[英]Implementation testing and unit testing

我只是想知道單元測試和實施測試之間的區別。 我知道單元測試是使用定義的輸入來測試模塊/類/對象,並根據一些定義的輸出來檢查結果,但是實現測試有什么作用,您該怎么做? 在開發生命周期中,實施測試還​​適合什么地方?

“實施測試”不是常見的表達方式。 我懷疑您的意思是“集成測試”,因為它是常用的,尤其是與單元測試相反。

集成測試是指測試多個部分或整個系統一起運行。 通常,這些測試會模擬實際用戶通過其常規UI使用該系統。

這樣做的好處是,您不僅可以測試每個組件是否履行其合同,而且還可以測試它們是否正確組成和配置以及是否按預期的方式進行交互-這是單元測試所無法捕捉的。 另一方面,通常很難用集成測試來詳盡地測試邊界條件,它們的穩定性較差,執行時間要長得多。 當然,在大多數系統正常工作之前,它們無法運行(甚至無法編寫)。

因此,集成測試發生在開發生命周期中比單元測試晚得多。

我聽說過在兩種不同情況下使用過實施測試。 首先,它可以測試設計。 如果您有復雜的邏輯,則在將邏輯移交給編碼器之前,請先遍歷邏輯-這樣一來,您就不會浪費時間來實現應該設計得更好的東西。 我也聽說過它用作V&V(驗證和驗證)的另一個術語,您可以在其中確保實現符合您的要求並滿足客戶的期望。

實現是PRE或POST。

在這種情況下,實施的意思是“投入生產”,即投入生產。

因此,實施前測試意味着在上線之前進行預產品測試。 實施后測試意味着一旦投入使用,便要在實時環境中進行測試。

我使用了Visual Studio測試工具,Testdriven.net和Excel,它們都一起很好地解決了問題,我編寫了此單元測試

[TestMethod()]
public void viewFolderTest()  
{
    string Err = "";
    connect_Excel("viewFolderTest");            
    DcDms actual;
    DaDoc target = new DaDoc(); 

    for (int i = 10; i < ds.Tables[0].Rows.Count; i++)
    {
        Err = "";

        TestRow = ds.Tables[0].Rows[i]["Row"].ToString();
        string expected = ds.Tables[0].Rows[i]["expected"].ToString();
        string ParentId = ds.Tables[0].Rows[i]["ParentId"].ToString(); 

        actual = target.viewFolder(ParentId);

        try
        {
            Assert.AreEqual(expected,actual.Tables[DcDms.Dms_vrFileFolder].Rows.Count.ToString());
        }
        catch (System.Exception ex)
        {
            Err = ex.Message;
            if (Err.Length >= 254)
            {
                Err = Err.Substring(0, 255);   
            }
            Update_Excel("viewFolderTest", "ERROR", Err, "Row", TestRow);
        }
        Update_Excel("viewFolderTest", "actual", actual.Tables[DcDms.Dms_vrFileFolder].Rows.Count.ToString(), "Row", TestRow);
        if (Err == "")
        {
            Update_Excel("viewFolderTest", "ERROR", "Pass", "Row", TestRow);
        }
    }          
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM