我在这里用最常用的方法:基本路径测试法来进行单元测试,因为我要用一个实际的例子来进行说明,所以就编写了下面一个程序模块,就暂且命名为“详细查询模块”吧。
我先写一下基本过程:
1. 分析模块函数;
2. 在模块中找到相应的关键点(函数);
3. 根据第二点,画出模块程序流程图;
4. 计算圈复杂度;
5. 根据圈复杂度算出测试用例的最优个数;
6. 根据路径测试法和圈复杂度写出具体测试用例;
7. 进行测试。
void CXIANGXIDLG::OnOK()
{
CoInitialize(NULL);//初始化COM环境
_ConnectionPtr m_pConnection;//连接对象
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=shouji.mdb","","",adModeUnknown);//连库
}
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败,确认数据库连接字符串是否正确");
}
//操纵表
_RecordsetPtr m_pRecordset; //记录集对象
UpdateData(TRUE);
CString strSQL;
if (m_name=="") //路径1
{
MessageBox("用户名不能为空!"); //函数A
}
else {UpdateData(TRUE); //函数B
int lenth=0;
lenth=m_name.GetLength();
if (lenth>12 || length<2) //路径2
{MessageBox("输入的用户名不正确或没有该用户!请重新输入!"); //函数C
}
Else
{
if(m_pipei) //路径3
{
strSQL="SELECT * FROM sj_T_ShouJiKa where 用户姓名 = '"+m_name+"'"; //函数D
}
Else
{
strSQL="SELECT * FROM sj_T_ShouJiKa where 用户姓名 like '%"+m_name+"%'";//函数E
}
try
{
hr=m_pRecordset.CreateInstance("ADODB.Recordset");
if(SUCCEEDED(hr))
{ //从数据库中打开表
文章来源于领测软件测试网 https://www.ltesting.net/