WordCount测试

合作者: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

 

posted @ 2018-10-21 19:47  OCAPP  阅读(360)  评论(0编辑  收藏  举报