看到《左耳听风-练级攻略》心血来潮,想写下这问题,后续可能还会更新。
1.调试
调试的目的是能够正确地编译、运行并实现预定功能。
使用过的编译器有msvc/gcc/g++,编译工具有make/bazel。编译就是生成目标文件,常出现的编译问题比如有未定义、重复定义、找不到声明。出现这些问题通常可以查阅网站博客(比如CSDN、博客园、stack overflow等)和官方文档解决。
编译通过后常出现的运行错误有段错误(segment fault)等。一般可以通过gdb定位原因;如果定位不到,可以通过打印日志、分段注释可疑代码来定位。
在编译正确和正常运行后如果还没有实现预定的功能,可以重新审视代码,通过打印日志、gdb调试定位原因。
调试相关博客总结
- segment fault相关:
2.测试
测试的目的是确定实现预定功能。(这里的测试指功能测试,也就是开发者自测)
使用过的测试框架有gtest。开发者测试一般为单元测试,指开发者对具体函数或者具体处理流程进行测试。对于外界提供的接口可以mock掉,专注于所开发代码的数据验证,确定开发函数或流程功能是否符合预期。
好测试的前提是好代码,这是需要设计的。基本原则是高内聚低耦合。