第五章 系统测试分析
程序的编写是一个不断完善的过程,在这个过程中不可避免的会出现一些错误。这些错误可以分为可预知的和不可预知的。编写程序时,常会碰到语法错误、逻辑错误或运行时错误。语法错误大多在编译或程序编译阶段指出。而逻辑错误最难找出,可用Visual Studio .NET提供的调试(Debug)工具,逐行观察结果找出错误处。至于运行时错误,可用异常处理技巧。本章主要介绍.NET环境下的C#程序的调试方法及异常处理技巧。
·5.1系统调试
温湿度数据采集系统主要是用来测量外界的温度、湿度及露点。驱动程序的开发是通过上位机对数据进行显示处理。在上位机的软件系统调试过程中,不可避免地出现了一些错误问题。其中比较难解决的问题如下:
(1) 串口通讯数据接收部分
原本程序运行时数据无法传到上位机,通过研究发现接收到的数据为一字符串,因此改用ReceivedBytesThreshold方法,设好接收数据的长度,若接收数据的结尾是固定的字符或字符串还可采用ReadTo的方法或在DataReceived事件中判断接收的字符是否满足条件。然后再对数据进行处理。
上位机与下位机进行通讯时,波特率必须采用一致数值,才能保证数据传送的速度符合要求。
(2) C#程序与数据库的连接问题
在程序运行后,提示错误“无法找到数据库”,检查之后把连接的数据库的路径改为相对路径,如:connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ff.mdb";再运行后可以连接到数据源了。因为系统程序难免会在不同的PC机上运行,因此采用绝对路径的话连接的数据库会无法找到,改用相对路径就没错误了。
(3) 类的引用问题
通常情况下,进行C#的编程时不需要引用特殊的类,但是在与数据库的连接,进行XML的操作时必须在库文件中添加一些特殊的类,如:Access数据库的应用时需加using System.Data.OleDb;而对XML的操作时需加 using System.XML。
·5.2测试分析
在数据接收的部分,通过显示表明接收到的数据的帧与下位机原本设定的不完 全一样。也就是如果微机在下一帧数据接收前即10ms内能将数据计算处理完毕,则接收缓冲区内只会保存有一帧数据,不会存有两帧以上数据,接收缓冲区的大小不会影响实时监测效果(接收缓冲区>4字节),这时完全可以实现实时监测或实时控制;如果微机在10ms内不能将数据计算处理完毕,接收缓冲区设置得又很大,在数据计算处理完毕前,接收缓冲区内就会保存有两帧以上数据,而且一次工作时间越长,缓冲区内滞留数据帧就越多,数据采集和数据处理之间产生逐渐增大的额外时间差,当接收缓冲区充满后,时间差不再增大,固定在某一值,部分数据因不能及时采集到接收缓冲区中,数据产生丢失现象,真实工作情况就会和微机处理结果产生较大的时间差,对实时监测和实时控制很不利,这种情况下接收缓冲区的大小就会影响实时监测效果,所以接收缓冲区设置不能过大,以保证数据处理的实时性。
·5.3 .NET的开发调试方法
这个是常用的调试方法,当程序运行提示有错误时,可在程序的某一条设置断点,然后单步执行追踪断点处的值,这种方法简单实用。
当程序运行时,可以使用Debug 类的方法来生成消息,以帮助监视程序执行顺序、检测故障或提供性能度量信息。默认情况下,Debug 类产生的消息显示在 Visual Studio 集成开发环境 (IDE) 的“输出”窗口中。可以使用 WriteLine () 方法生成后面带有行结束符的消息。当使用此方法生成消息时,每条消息在“输出”窗口中均显示为单独的一行。
(1) 使用Debug 类
Ⅰ 启动 Visual Studio.NET。
Ⅱ 新建一个名为 conInfo 的新 Visual C# .NET 控制台应用程序项目。将创建 Class1。在 Class1 的顶部添加以下名称空间:using System.Diagnostics;
Ⅲ 初始化变量的声明语句添加到 Main 方法。
Ⅳ 直接输入将类生成的消息指定为 WriteLine 方法的第一个输入参数。按 CTRL+ALT+O 组合键以确保“输出”窗口可见。
(2) 使用 Trace 类
还可以使用 Trace 类生成监视应用程序执行的消息。Trace和Debug 类共享大多数相同的方法来生成输出。可以在同一应用程序中分别或同时使用 Trace 和Debug 类。在一个“调试解决方案配置”项目中,Trace 和 Debug 两种输出均为活动状态。该项目从这两个类为 Listener 对象生成输出。但是,“发布解决方案配置”项目仅从Trace 类生成输出。该“发布解决方案配置”项目忽略任何 Debug 类方法调用
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] ... 下一页 >>