软件开发离不开调试,调试手段分两种:一是黑盒调试,即直接从输入 / 输出角度测试软件功能是否正常,这种方式仅能发现问题,但无法直接定位问题原因所在;二是白盒调试,即直接拿源代码在线 debug,python 虽是一种脚本语言,但借助一些 Python IDE 也可以实现单步调试,通过单步调试可以找到问题根本原因。
  

前面我们已经初步实现了 pzh-py-com,下面痞子衡会从黑盒和白盒的角度分别测试 pzh-py-com 功能:

 

一、黑盒调试:vspd + sscom

要测试 pzh-py-com 功能,首先得要有串口设备,当然我们可以使用真实的物理串口设备,比如使用如下这个经典的 CH34x 串口转 USB 模块,CH34x 芯片官方主页为 http://www.wch.cn/products/category/1.html。

 

  

安装好 CH34x 模块驱动 并将该模块 USB 接口端插上 PC 后便可在设备管理器的 Ports 里看到串口设备,一个物理模块就可以完成测试,只需要将模块的 RXD 和 TXD 线直接对接,这样便可实现回环测试。
  

很多时候手头并没有物理串口设备,那么这时候我们就需要借助虚拟串口软件,vspd 就是一款虚拟串口驱动,其官方主页为 https://www.eltima.com/products/vspdxp/,使用 vspd 可以在 PC 上虚拟出串口设备并实现虚拟连接,由于 vspd 不支持单设备回环连接,那么我们需要虚拟出两个串口设备并实现连接,痞子衡使用 vspd 虚拟出了 COM10 和 COM11,并将其进行了连接:

 

  

痞子衡选用的是 vspd 虚拟串口来测试,最终搭建的黑盒测试环境示意图如下:

 

  

联合 sscom 测试串口数据收发,可知 pzh-py-com 基本串口数据收发功能是正常的,最基本的黑盒测试便通过了。

 

 

二、白盒调试:PyCharm

如果在黑盒测试过程中发现 pzh-py-com 功能有问题,从代码逻辑角度也不能立刻推断出问题,此时便需要使用 Python IDE 进行在线 debug,痞子衡选用的 PyCharm 软件,创建 pzh-py-com 工程后将其放于 pzh-py-com 主目录,工程会自动添加目录下所有源文件,选中 main.py 文件后选择 Debug(Shift+F9)便可以进行单步调试。

 

  

关于 PyCharm 调试技巧可参考下面两篇文章:

 

https://confluence.jetbrains.com/display/PYH/Debugger#Debugger-Preparinganexample
https://www.jetbrains.com/help/pycharm/debug-tool-window.html