测试与优化bugbugbugbug

Posted linzenghan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试与优化bugbugbugbug相关的知识,希望对你有一定的参考价值。

单元测试

      ?? 211606318  林锃寒 
      ??211606335   吴沂章

附一张至诚的朝阳美照(? ω ?)
技术分享图片

设计单元测试的思路

  • 对每一个方法的代码块进行测试,返回测试结果并和预期结果进行比对

  • 对源代码进行相应的重构,以适应测试代码的调用,且不影响源代码的正常运行

构造测试数据的思路

  • 通过assertEquals进行对比,可以得出测试是否成功
  • 测试要调用的方法需为public类型,否则无法测试
  • 如需调用源代码的全局变量需要将其修改为public类型
@Test
    public void testAdd() {
        
        assertEquals(4, new MathExam6335().add(2,2,1)); 
    }
    
    @Test
    public void testSub_0() {
        
        assertEquals(2, new MathExam6335().sub(2,4,1)); 
    }

    @Test
    public void testSub_1() {
        assertEquals(0, new MathExam6335().sub(2,2,1));
    }


    @Test
    public void testMul_0() {
        assertEquals(4, new MathExam6335().mul(2,2,1));
    }
    
    @Test
    public void testMul_1() {
        assertEquals(0, new MathExam6335().mul(0,2,1));
    }


    @Test
    public void testDiv_0() { 
        assertEquals("1", new MathExam6335().div(3,3,1));
    }
    
    @Test
    public void testDiv_1() {
        assertEquals("0", new MathExam6335().div(0,3,1));
    }
    
    @Test
    public void testDiv_3() {
        assertEquals("1...1", new MathExam6335().div(3,2,1));
    }
  • 测试代码的覆盖率截图

技术分享图片

结构优化

UML类图

技术分享图片

程序流程图

技术分享图片

重构解析

  • 重构了3年级题目生成方法中 操作数操作符 的随机生成

  • 在代码中随机生成 操作数操作符 的地方很多,有很大的资源浪费,重构处这两处方法可以很好的改善代码的重复率

  • 重构后方法的作用:
    • 操作符——operator()
      • 返回一个随机符号
    • 操作数——operand()
      • 返回一个随机数字

性能调优

优化前效能分析截图

技术分享图片

性能瓶颈

  • 代码冗余,繁杂
  • 代码内的个方法块互相依赖性较高,不利于以后扩展

优化方案

  • 将重复的代码重构成一个方法,减少资源重复
  • 将代码块重新封装,减少依赖性

优化后效能分析截图

技术分享图片

总结

  • 这次代码感觉自己有很多的知识点不会,导致代码优化有点困难,经过两天两夜的奋战,让我们看到了提交作业的希望(至诚的朝阳),对于自己来说,也算是学到了一点东西!??

以上是关于测试与优化bugbugbugbug的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript性能优化5——JSBench工具的使用

优化 C# 代码片段、ObservableCollection 和 AddRange

linux学习:Nginx--常见功能配置片段与优化-06

使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化

如何优化C ++代码的以下片段 - 卷中的零交叉

从JVM的角度看JAVA代码--代码优化