对一个程序单元测试
課上我們王老師給我們留了一個程序,讓我們分析一下這個程序的異常漏洞,為做以后完善的軟件做好鋪墊,軟件異常的處理非常重要,這關系到軟件的以后發展,甚至會造成嚴重的后果。小小的錯誤釀成嚴重的后果。單元測試是開發者編寫的一小段代碼,用于檢驗被測代碼的一個很小的、很明確的功能是否正確。下面我們來看一個程序。
查找list[]中的最大值:int Largest(int list[], int length);
首份實現代碼如下:
int Largest(int list[], int length)
{
????? ?int i,max;
????? ?for(i = 0; i < (length – 1); i ++ ) ??
??????? ?{ ??????
?????????????? ?if(list[i] > max) ?
???????????????? ?{ ??
????????????????? ????? max=list[i]; ??
?????????????? ??? } ?
?????????? } ????
???????? ?return max;
}
我們對上面的代碼進行測試:編寫測試代碼如下
//?單元測試.cpp?:?Defines?the?entry?point?for?the?console?application.
//
?
#include?"stdafx.h"
?
#include<stdio.h>
?
int?largest(int?list[],int?length)
{
int?i,max;
for(i=0;i<(length-1);i++)
{
if(list[i]>max)
{
max=list[i];
}
}
return?max;
}
?
?
int?main(int?argc,?char*?argv[])
{
int?list[5],i,max;
//printf("%d\n",max);
printf("請輸出5個數:\n");
????scanf("%d",&list[0]);
scanf("%d",&list[1]);
scanf("%d",&list[2]);
scanf("%d",&list[3]);
scanf("%d",&list[4]);
????
max=largest(list,0);
printf("list的最大值為:%d\n",max);
return?0;
}
?max沒有定義:其中的它的值為:-858993460
其測試數據結果如下所示:
第一種情況:
第二種情況:
第三種情況:
第四種情況:
當輸入為空數組的時候:-858993460
我們進行測試的時候,有的時候會出現錯誤和異常,這是我們不允許的,客戶更不能允許,所以我們要考慮周全,當寫一個模塊或者函數的時候,要進行測試,保證代碼的正確性!
通常,我們會認為這是一個錯誤,將拋出一個異常,修改方法:
int Largest(int list[], int length)
{
??int i, max;
??if ( list == null || length == 0)
????? {
????? return 0;
??}
??……
}
以上是本人的觀點,謝謝觀看,有什么錯誤的地方,歡迎大家指正!
?
轉載于:https://www.cnblogs.com/lixiaochao/p/3583406.html
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
- 上一篇: 开平区教育局资源分布式存储解决方案
- 下一篇: Unity3D客户端和Java服务端使用