测试与优化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()
- 返回一个随机数字
- 操作符——operator()
性能调优
优化前效能分析截图
性能瓶颈
- 代码冗余,繁杂
- 代码内的个方法块互相依赖性较高,不利于以后扩展
优化方案
- 将重复的代码重构成一个方法,减少资源重复
- 将代码块重新封装,减少依赖性
优化后效能分析截图
总结
- 这次代码感觉自己有很多的知识点不会,导致代码优化有点困难,经过两天两夜的奋战,让我们看到了提交作业的希望(至诚的朝阳),对于自己来说,也算是学到了一点东西!??
以上是关于测试与优化bugbugbugbug的主要内容,如果未能解决你的问题,请参考以下文章
优化 C# 代码片段、ObservableCollection 和 AddRange