MILY: 宋體">下面通過一個簡單的例子來講解VS2005是如何做代碼分析的(此處所做的代碼分析是在單元測試之后進行的,其分析代碼仍然使用上節的做和代碼)
1、上節的原始代碼和單元測試代碼分別如下:
//原始代碼
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public int Add(int a,int b) //構建ADD方法
{
return a +b ;
}
private void button1_Click(object sender, EventArgs e)
{
int temp = 0;
temp=Add(Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text));//調用ADD方法
textBox3.Text = temp.ToString();
}
private void label2_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
}
//單元測試代碼
///<summary>
///Add (int, int) 的測試
///</summary>
[TestMethod()]
public void AddTest()
{
Form1 target = new Form1();
int a = 30; // TODO: 初始化為適當的值
int b = 15; // TODO: 初始化為適當的值
int expected = 45; //預期結果應該為:30+15=45
int actual;
actual = target.Add(a, b);
Assert.AreEqual(expected, actual);//預期結果與真實結果進行對比,如果相同則測試通過,否則失敗
// Assert.Inconclusive("驗證此測試方法的正確性。");注釋該行
}
}
2、代碼覆蓋率分析
當創建了單元測試之后,在“解決方案資源管理器”下將會自動添加如下兩個文件(localtestrun.testrunconfig和解決方案名稱.vsmdi),打開“localtestrun.testrunconfig”文件,
1)配置要檢測的項目,如下圖:
2)配置運行
3)運行單元測試,在測試結果中鼠標單擊右鍵,選擇“代碼覆蓋率結果”,此時將會看到欲測試代碼的覆蓋率:
在代碼覆蓋率分析結果中,可以看到AddTest的覆蓋率為:100。00%,而其中get_TestContext覆蓋率為0。00%,那是因為text3文本框是用來輸出數據的,而不是用來接收數據的。
3、結論
通過使用VS2005的代碼覆蓋率結果分析可以很容易的對程序員自己寫的代碼進行覆蓋率的分析,但是如果想要準確知道自己的代碼覆蓋率是多少,則必須詳細的設計測試用例,如:a、語句覆蓋測試用例,b、分支覆蓋測試用例,c、條件覆蓋測試用例,d、分支-條件覆蓋測試用例,e、條件組合覆蓋測試用例,f、路徑覆蓋測試用例。
文章來源于領測軟件測試網 http://www.kjueaiud.com/