合作者:201631062125,201631062226
源码码云地址:https://gitee.com/ocapp/WordCountTest.git
本次作业的链接地址:https://edu.cnblogs.com/campus/xnsy/2018softwaretest2398/homework/2187
一、代码互审情况:
审查了FilleCount模块,发现问题主要是变量命名不规范,代码注释不够多,易读性比较差,根据c#代码规范,做了相应改进。
二、静态代码检查:
本次使用工具为vs2017自带功能
测试通过,没有发现错误。
三、单元测试:
测试工具:vs2017
CountFile类测试:
测试文件内容:
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace test1 { class Program { static void Main(string[] args) { string path = "File"; string[] files = Directory.GetFiles(path, "*.c"); foreach (string file in files) { Console.WriteLine(file);// } Console.ReadKey(); } } }
采用语句覆盖的方式,将CountFile类的Load方法测试
测试用例1:
测试统计文件的各个信息是否正确
string filename = "file.c"; CountFile f = new CountFile(); int charNumber = 414; //字符数 int wordNumber = 46; //单词数 int lineNumber = 23; //行数 int codeNumber = 13; //代码行数 int noteNumber = 1; //注释行 int spaceNumber = 9; //空行 f.Load(filename); Assert.AreEqual(charNumber, f.charNumber); Assert.AreEqual(wordNumber, f.wordNumber); Assert.AreEqual(lineNumber, f.lineNumber); Assert.AreEqual(codeNumber, f.codeNumber); Assert.AreEqual(noteNumber, f.noteNumber); Assert.AreEqual(spaceNumber, f.spaceNumber);
覆盖了Load方法内除
if (isStop) //如果启用禁词表,则比对单词 { for (int i = 0; i < buffer1.Length; i++) { if (buffer1[i] == buffer[j]) mark = true; } }
的其他语句
运行结果:
测试用例2:
启用-e指令,覆盖Load所有语句
string filename = "file.c"; CountFile f = new CountFile(); f.isStop = true; int charNumber = 414; //字符数 int wordNumber = 46; //单词数 int lineNumber = 23; //行数 int codeNumber = 13; //代码行数 int noteNumber = 1; //注释行 int spaceNumber = 9; //空行 f.Load(filename); Assert.AreEqual(charNumber, f.charNumber); Assert.AreEqual(wordNumber, f.wordNumber); Assert.AreEqual(lineNumber, f.lineNumber); Assert.AreEqual(codeNumber, f.codeNumber); Assert.AreEqual(noteNumber, f.noteNumber); Assert.AreEqual(spaceNumber, f.spaceNumber);
结果:
发现是计算wordNumber时,一个bool变量没有重置。
修改后继续执行单元测试结果如下:
再次观察计算wordNumber的算法,发现是数组下标错误:
将buffer[ i ]改为buffer[ j ],运行通过。
四、性能测试:
测试工具:vs2017
思路是向file.c文件里放大量字符,测试程序运行时间,结果如下:
本程序由于规模小,不需要性能优化
五、收获
通过本次实验收获了结对编程的快速和方便,也体验到了各种测试工具的方便和快捷性。
六、参考文献链接
c#规范:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions
原文:https://www.cnblogs.com/ocapp/p/9826435.html