关于测试和代码设计
来源:6-2 Quick Find
阿阳2017
2023-02-09
老师你好,我看到这节课关于并查集的封装和测试,总感觉非常的巧妙。
将UnionFind版本1的class放在一个namespace里面,并将测试的模块也用一个namespace封装,还单独写成一个测试函数。
加上之前在排序中写的各种测试程序,就是觉得自己为啥想不出这样的测试方式,在这方面有什么需要训练的吗?测试的基本思路大致是什么?
1回答
-
liuyubobobo
2023-02-15
这个问题系统没有提示我,今天我手动 check 问答区未回答的问题才看见,抱歉。
==========
写一个函数,测试一个函数,是非常“常规”的测试方式。实际上,由于我们这个课程不是专门的测试课程,所以其实在测试中有很多纰漏。(比如其实我们没有测试 merge 或者 partition;没有对所有的 sort 中是否可能修改了数组中的元素做测试;也没有测试很多边界情况,比如 sort 中传来的数组是 null 等等。)
如果对测试感兴趣,第一常规应该看的内容是和“单元测试”相关的概念。其实是非常简单的概念,但是现在已经有很多工具甚至是框架可以直接支撑单元测试,测试工程师甚至是开发工程师是需要学习这些工具的。
比如这篇文章描述了 CLion 内置的对 unit test 功能的支持:https://www.jetbrains.com/help/clion/unit-testing-tutorial.html#doctest-framework
测试框架比如 GoogleTest,感兴趣可以在网上搜索相关教程,等等:https://github.com/google/googletest
其次我推荐阅读和“测试驱动开发”(TDD)相关的内容或者书籍,很多企业内部的项目都是遵循这一开发模式的。
继续加油!:)
00
相似问题