单元测试(201421123088,201421123063)

a. 需求分析:测试上有哪些详细的需求?

 1、把计算模块提取出来,单独创建一个类。
 2、针对提取出来的计算类的接口函数做单元测试。
 3、测试整数运算。
 4、测试分数运算。

b. 设计测试框架, 模拟测试数据:

1、整数运算测试:

2、分数运算测试:

3、代码覆盖率:

部分代码(以分数加法为例)

        public string Calculate(string s)
        {
            // ToDo
            if(s.IndexOf("+")>-1){
                add(s);
            }else if(s.IndexOf("-")>-1){
                substract(s);
            }else if(s.IndexOf("*")>-1){
                multiply(s);
            }else if(s.IndexOf("÷")>-1){
                divide(s);
            }
            return result;
        }
        public void add(String s)
        {
            String[] str = s.Split(new char[2] { ‘/‘, ‘+‘ });
            numerator = int.Parse(str[0]) * int.Parse(str[3]) + int.Parse(str[1]) * int.Parse(str[2]);
            denominator = int.Parse(str[1]) * int.Parse(str[3]);
            divisors = GCD(numerator, denominator);
            numerator /= divisors;
            denominator /= divisors;
            result = numerator + "/" + denominator;
        }

c. 小结与感受:通过测试,是否有效发现了程序计算模块的问题,并给予改进?

    这次单元测试其实在弄明白单元测试的基本步骤后是比较容易的,毕竟只是测试了计算模块。  在fork了助教的测试例子后发现了我和大多数同学不一样的地方就是接受参数的方式,我利用datagridvie控件的属性限制了参数的非法输入以及直接使用参数并没有用程序实现,  这些到了单元测试中我不知道如何测试。思考如何用程序实现应该算是一个进步吧    另一个可能就是编码规范了,我是直接在事件中写方法,图形界面写的不多,想到哪里写哪里,还是应该把方法提取出一个类。这次测试确实感觉到了有些麻烦。    当然我还是想测试一下其他模块,例如文件流的功能,不过涉及到vs控件自带的属性方法,不知道怎么测试,暂时也没找到学习方法,暂时搁浅。    每次编程都会学到一些新东西,还是很开心的。

d. 在隔了一周之后再看之前的代码,是否更能体会到下面这些东西

(1) 良好的设计:之前没有分模块写在方法类调用,而是在按钮事件里直接写的方法,故这次作业前先进行了模块划分。

(2) 编码规范:规范的编码格式,有意义的函数名,使得这个时隔一周的代码看起来也不会太麻烦,时间上有一定的节省。

(3) 必要的注释:距离之前写这个代码已经过去一周了,添加必要的注释方便重温代码,大大节省了回忆代码的时间,这是个好习惯,要一直保持。

e.项目开发的coding.net 地址:https://coding.net/u/DzXzz/p/BasicCalculator-unittest/git

f.此次结对作业的PSP:

PSP2.1 Personal Software Process Stages Time Senior Student Time
Planning 计划    
Estimate 估计这个任务需要多少时间 6h 7h
Development 开发    
Analysist 需求分析 (包括学习新技术) 1.5h 1.4h
Design Spec 生成设计文档 0 0
Design Review 设计复审 0 0
Coding Standard 代码规范 0.5h 0.3h
Design 具体设计    
Coding 具体编码 2.5h 3h
Code Review 代码复审 0.5h 0.5h
Test 测试(自我测试,修改代码,提交修改 1h 1h
Reporting 报告 1.5h 1.5h
  测试报告 0 0
  计算工作量    
  并提出过程改进计划  
时间: 03-28

单元测试(201421123088,201421123063)的相关文章

单元测试Junit

###<center> 单元测试Junit </center>###- - -1.**单元测试**:> ==单元测试==是软件之中对于最小的功能模块的的测试,其可以对最基本的软件构成单元来测试.> 需要注意的是:> >**测试用例是用来达到测试想要的预期结果,而不能测试出程序的逻辑错误**. 2.**JUnit**:>1.**Junit是基于断言机制的**.是用于编写可复用测试集的简单框架,是xUnit的一个子集.xUnit是一套基于测试驱动开发的测试

MVC与单元测试实践之健身网站(四)-动作管理

网站后台负责进行动作的管理,包括动作名称.介绍.训练要点.配图等内容,以便前台能够使用这些内容.在上一篇< Fit项目图片上传和云存储的调通>中已经准备好了这里涉及到的主要技术难点,现在就开始完成该模块了. 一 列表介绍 健身管理模块包括肌群.肌肉的显示以及动作的管理.这儿也算是开始涉及"业务内容"了,还好我之前有储备了一些关于健身的资料,现在是时候派上另一种用场了. a) 肌群和肌肉因为内容相对固定,所以为了减少业务逻辑以及单元测试的代码量,当然最主要是为了偷懒,就只提供

MVC与单元测试实践之健身网站(二)-管理员模块

开始动手做这个项目时,发现无法做到完全的先设计.再编码,于是决定分模块进行,从管理员模块开始设计.编码,而且接口就已经改了好几次了. 管理员模块涉及的功能有登录和后台对管理员的维护,其中也涉及前端的开发.UI模板使用Inspinia,感觉这套模板功能丰富.界面美观,而且基于HTML5和BootStrap,对这两方面的知识也可以多些了解. 在上一篇<如何在单元测试时隔离ORM>中,解决了对Service层进行测试怎样构建伪对象的问题,随后管理员模块的Service层和单元测试在齐头并进中完成了:

单元测试(一)-NUnit基础

单元测试作为提高代码和软件质量的有效途径,其重要性和益处自不必多说,虽然我没有实践过TDD之类,但坚信单元测试的积极作用.作为一种开发方法,单元测试早在上世纪70年代就已经在Smalltalk语言被运用了,这么多年来,单元测试一次又一次证明了自身的价值,在各种开发方式此起彼伏的浪潮中,经受住了时间的考验. 现在,俺也开始学习了,并在以后好好实践.这个系列的学习素材为Roy Osherove所著The Art of Unit Testing with examples in C#, 2nd Edi

OA项目CRUD和单元测试(一)

使用ModeFirst方法生成数据库,EntityFramework5.0. 一:Model层的模型:(根据模型生成数据库) 二:Dal层的UserInfo代码: namespace SunOA.EFDAL { public class UserInfoDal { //crud DataModelContainer db = new DataModelContainer(); public UserInfo GetUserInfoById(int id) { return db.UserInfo

词频统计-单元测试

我自己的单元测试没有弄出来,我用c编的,在visual studio中貌似实现不了单元测试,而李俞寰同学是用c#编写的词频统计,在vs2015中实现单元测试无比的方便,所以我请教了他并借鉴了一下. [TestMethod()] public void DictionarySortTest() { Dictionary<string,int>input=new Dictionary<string,int>() { {"you,1}, {"are",1},

使用Xunit来进行单元测试

不管你爱与不爱,单元测试对于一个软件的长治久安还是必不可少的一环.在Visual Studio 2012后,VS中的测试浏览器也能与第三方的集成了,用起来还是非常方便的.目前在.Net框架下的测试工具主要有Nunit.内置的MSTest以及Xunit这三个工具,本文就简单的介绍一下如何在VS中使用XUnit这个测试框架的后起之秀. 安装Xunit: Xunit的安装现在不需要插件支持了,直接使用NuGet安装如下两个库即可: PM> Install-Package xunit PM> Inst

作业八——单元测试练习(个人练习)

必做一: 针对附录1给出的三角形判断Java 代码,应用等价类划分法设计测试用例,用表格形式列出设计的测试用例: 测试用例如下:(红色字体为错误预言) 序号 测试输入:三条边 测试预言:[Oracle:Illegal(非三角形),Scalene(一般三角形), Isoceles(等腰三角形),Regular(等边三角形)] 1 (5,5,5) Regular 2 (-5,-5,-5) Regular 3 (1,4,5) Illegal 4 (2,3,5) Illegal 5 (3,4,5) Sc

作业8:单元测试练习(个人练习)

要求 [必做题1] 针对附录1给出的三角形判断Java 代码,应用等价类划分法设计测试用例,用表格形式列出设计的测试用例,写到博客中.(10分) [必做题2] 模仿附录2给出的三角形判断Junit测试代码,设计单元测试脚本,测试 [必做题1]设计得到的测试用例.注意测试脚本中测试用例出现顺序与[必做题1]表格所列顺序一致.运行所得的测试脚本,截运行结果图,写到博客中,同时将源代码push到你自己的github.(20分) [必做题3] 心得体会.写下本次练习你收获的知识点(PS:测试用例设计方法