结对编程2——单元测试

 201421123022 王若凡        201421123026  欧阳勇    

 详细代码

a.需求分析:

 


 

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

        a. 加减乘除功能测试

        b.输入非法字符测试

        c.数值超出范围测试

        d.结果除0测试


 

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

   1. 加减乘除功能测试

@Test
    public void testAdd() {
          calc.add(5,8);
          assertEquals(13, Integer.parseInt(calc.getResult()));
    }

    @Test
    public void testSubstract() {
        calc.substract(5,8);
         assertEquals(-3, Integer.parseInt(calc.getResult()));
    }

    @Test
    public void testMultiply() {
         calc.multiply(5,8);
         assertEquals(40, Integer.parseInt(calc.getResult()));
    }

    @Test
    public void testDivide() {
         calc.divide(5,8);
         assertEquals(String.valueOf("5/8"), calc.getResult());
    }

    @Test
    public void testAdd2() {
        calc.add2(2,4,2,3);
         assertEquals(String.valueOf("7/6"), calc.getResult());
    }

    @Test
    public void testSubstract2() {
         calc.substract2(2,4,2,3);
         assertEquals(String.valueOf("1/-6"), calc.getResult());
    }

    @Test
    public void testMultiply2() {
        calc.multiply2(2,4,2,3);
         assertEquals(String.valueOf("1/3"), calc.getResult());
    }

    @Test
    public void testDivide2() {
        calc.divide2(2,4,2,3);
         assertEquals(String.valueOf("3/4"), calc.getResult());
    }

    该部分功能代码较长不贴出,将在coding中。

   2.输入非法字符测试

@Test
	public void testPanduanzifu() {
		//String s=calc.getResult();
		 calc.panduanzifu("4/7!#@$");
		 assertEquals("input error", calc.getResult());
	}

  

 public void panduanzifu(String s) //判断输入字符,
	        {
		    	char arr[]= s.toCharArray();
	            for (int i = 0; i < s.length(); i++)
	            {
	            	
	                if ((arr[i]<45) || (arr[i] > 58))
	                {
	                	sum1="input error";
	                }       
	            }
	 
	        }

  

   3.数值超出范围测试

@Test
	public void testRange() {
		calc.range(11,3);
		 assertEquals("outrange", calc.getResult());
	}

  

 public void range(int x, int y)//范围判断
            {
                if((x<0 || x>10)||(y<0 || y>10))
		    	sum1="outrange";	  
            }

  

   4.结果除0测试

@Test
	public void testZero() {
		 calc.zero("4/0");
		 assertEquals("zero error", calc.getResult());
		
	}

  

  public void zero(String s) {//结果除0错误
		    	
		    s = s.substring(s.length()-2,s.length());
		    if(s.equals("/0"))
		    {
		    	sum1="zero error";
		    }
		    }

 

结果截图 

当测试数据返回结果sum1与预先设定的结果相同则运行正确。

 

代码覆盖率

 

c.小结与感受

    通过这次对单元测试的使用,发现随着软件项目的逐渐增大,单元测试的地位显得越来越重要。如果软件项目没有良好的测试流程,随着系统的增大这将会给开发人员带来极大的困扰,最后造成的结果是“剪不断,理还乱”。 此次通过单元测试还给之前的程序添加了一些新的判断错误的方法,然后通过改进让的程序又完善了些。还有就是两周后再去看自己的代码,确实发现有的地方没注释然后就一下子记不起来到底是什么需要再前后一起看一看,特别当不是规范的变量名更让你绝望。(1)良好的设计;(2)规范的代码;(3)必要的注释;是非常重要的。

汉堡包式评价

首先:由于之前并没有使用过单元测试所以此这次两人都是在网上或者书上学习研究了,然后达成一个共识,该怎么样完成此次编程。

然后:操作过程中发现有挺多简单的问题一下子都没想出来,后面熟悉了一下觉得挺傻的,刚开始在网上学习然后看完觉得好像挺容易的然后就马上开始操作结果发现并没有那么简单,经过之后的操作熟悉了点,就发现之前的错误挺傻的。总的说还是急性子想马上实践一下最后发现还是缺少一点耐心。

最后:两人编程中有领航员和驾驶员关系时确实能使工作更加顺利,能互相提醒并且能高效完成。

 

 PSP

PSP2.1

Personal Software Process Stages

Estimated time(h)

actual time(h)

Planning

计划

6

5.2

· Estimate

估计这个任务需要多少时间

6

5.2

Development

开发

0.5

0.3

· Analysis

需求分析 (包括学习新技术)

0.2

0.2

· Design Spec

生成设计文档

0.2

0.1

· Design Review

设计复审

0.1

0.1

· Coding Standard

代码规范

0.2

0.2

· Design

具体设计

0.5

0.5

· Coding

具体编码

3

2.5

· Code Review

代码复审

0.5

0.5

· Test

测试(自我测试,修改代码,提交修改)

0.3

0.3

Reporting

报告

0.2

0.2

·

测试报告

 

 

·

计算工作量

0.1

0.1

·

并提出过程改进计划

0.2

0.2

转载于:https://www.cnblogs.com/wangrf1/p/6622088.html

内容概要:本文深入探讨了Kotlin语言在函数式编程和跨平台开发方面的特性和优势,结合详细的代码案例,展示了Kotlin的核心技巧和应用场景。文章首先介绍了高阶函数和Lambda表达式的使用,解释了它们如何简化集合操作和回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建和平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发和Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程和跨平台开发领域不断完善和发展。; 适合人群:对函数式编程和跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者和中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数和Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解和实践Kotlin的函数式编程特性和跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解和掌握。
内容概要:本文深入探讨了利用历史速度命令(HVC)增强仿射编队机动控制性能的方法。论文提出了HVC在仿射编队控制中的潜在价值,通过全面评估HVC对系统的影响,提出了易于测试的稳定性条件,并给出了延迟参数与跟踪误差关系的显式不等式。研究为两轮差动机器人(TWDRs)群提供了系统的协调编队机动控制方案,并通过9台TWDRs的仿真和实验验证了稳定性和综合性能改进。此外,文中还提供了详细的Python代码实现,涵盖仿射编队控制类、HVC增强、稳定性条件检查以及仿真实验。代码不仅实现了论文的核心思想,还扩展了邻居历史信息利用、动态拓扑优化和自适应控制等性能提升策略,更全面地反映了群体智能协作和性能优化思想。 适用人群:具备一定编程基础,对群体智能、机器人编队控制、时滞系统稳定性分析感兴趣的科研人员和工程师。 使用场景及目标:①理解HVC在仿射编队控制中的应用及其对系统性能的提升;②掌握仿射编队控制的具体实现方法,包括控制器设计、稳定性分析和仿真实验;③学习如何通过引入历史信息(如HVC)来优化群体智能系统的性能;④探索中性型时滞系统的稳定性条件及其在实际系统中的应用。 其他说明:此资源不仅提供了理论分析,还包括完整的Python代码实现,帮助读者从理论到实践全面掌握仿射编队控制技术。代码结构清晰,涵盖了从初始化配置、控制律设计到性能评估的各个环节,并提供了丰富的可视化工具,便于理解和分析系统性能。通过阅读和实践,读者可以深入了解HVC增强仿射编队控制的工作原理及其实际应用效果。
内容概要:本文深入探讨了与液冷数据中心废热集成的跨临界压缩 CO₂储能系统(CCES)。研究构建了单级压缩(System-CP)和双级压缩(System-VP)两种系统,通过准动态模型分析其能量和㶲性能,并开发经济模型评估其经济性。研究结果显示,System-CP 和 System-VP 的往返效率分别为 64.67% 和 67.41%,储能密度分别为 0.24 和 0.26 kW·h/m³。对于 15 MW × 5 h 的储能容量,两种系统的总资本成本分别为 4.7784 亿和 4.3741 亿美元,投资回收期分别为 14.76 年和 12.39 年。此外,研究还揭示了关键参数如压力比、热源温度等对系统性能的影响,提出了优化建议和技术实现路径。 适合人群:从事能源管理、数据中心运营、储能技术研发的专业人员以及关注绿色能源和碳减排的研究者。 使用场景及目标:①评估液冷数据中心与跨临界 CO₂储能系统的集成方案;②优化数据中心废热利用效率;③分析不同压缩系统在储能密度、成本和效率方面的差异;④探索系统集成的经济性和技术可行性。 其他说明:该研究不仅提供了详细的热力学和经济性分析,还通过实证数据验证了系统的技术经济可行性,为绿色数据中心的建设提供了量化决策依据。文中还讨论了未来的研究方向,如低温差高效热泵材料、自适应压力容器设计等,旨在进一步提升系统的性能和经济性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值