c#积累之测试
初来上班,免不了看别人代码。快速搞懂别人代码是我现在受到的一大挑战。寻摸着规律,发现一边进行调试,一边进行行行注释的逻辑判断不失为一种妙招。
c#调试用的是vs2012。f11键和f10和f5键的应用,配合着断点加监控很快就会发现除去表面逻辑下的背后运行机制。
代码不可能没有错误。而自己小白来找前辈的错误很难。就是运行出错,每次调试出现的结果不一,自己抓耳挠腮。知道问题,却不能够找到确切原因。就算找到原因,也没有一个好的办法可以解决。
先来说调试遇到的疑难杂症:
1.有时候f11单步调试会发现,不继续往下走,直接c#程序的界面弹出来。
经验:此方法有错误。例如,窗体的load事件,发现运行不过去的代码句子,直接跳出。解决办法:load里的东西放到构造函数里面,这里面运行会有错误提示。try,catch,抛出异常也不失为一个好的方法。
和硬件相关。如果没有代码逻辑上的错误之外,看看硬件的具体参考信息。比如刚遇到一个问题就是摄像头的接收问题,通过大量测试经验来看,必须发送一个固定信息,接收语句才可以运行通过,要不然直接跳出。
2.遇到不明确的对象所属类的时候,可以用控制台输出它所属类。
错误分析经验之谈:
1.逻辑归纳。把所有自己目前掌握的信息列出来,问题也明确的写出来。
2.拿着成功运行的案例和自己失败的案例对比,试着列出原因来。多列几个原因。比如我知道摄像头recivefrom语句有错,且原因是必须send固定信息过去才有回收。原因可能出在send上(send中断或其它),也可能出在recivefrom上(recivefrom线程中断)。而直观上来看,认为receivefrom线程有问题(当然,send中断也导致了recivefrom的中断),丢了send问题原因的一种解释。
3.试着把部分代码,自己新建一个小程序,单独测一下。也有意想不到的收获。
c#积累之测试的更多相关文章
- 架构师Jack专访:全面认识软件测试架构师
◇ 测试架构师的职责 测试的职业通道基本是管理线和技术线两条路. 管理线主要的职责:更多是项目管理和资源管理. 技术线主要的职责:更多是技术管理和业务知识. 软件测试架构师更多就是技术线的带头人.管理 ...
- 【初学者必读】能让你月薪过万的5大web前端核心技能
前言Web前端开发所涉及的内容主要包括W3C标准中的结构.行为和表现,那么这三项中我们需要掌握的核心技能是什么呢?看小编来为你揭开谜底的. 1.开发语言 HTML发展历史有二十多年,历经多次版本更新, ...
- 软工网络16个人作业2——WordCount
Deadline: 2018-9-17 22:00PM,以博客提交至班级博客时间为准 要求参考来自:https://www.cnblogs.com/xinz/archive/2011/11/27/22 ...
- USTC《现代软件工程》春季学期——第一次个人作业:词频统计
截止日期 2018年3月29日23:59 要求 1. 对源文件(*.txt,*.cpp,*.h,*.cs,*.html,*.js,*.java,*.py,*.php等,文件夹内的所有文件)统计字符数. ...
- 浅谈web前端开发
我个人认为前端攻城狮其实就是编程技术人员,用一句话来形容“比UI设计懂技术,比技术人员更懂交互”,当然也有人说前端工程师是工程师中的设计师,是设计师中的工程师. 好了废话不多说了,下面进入正题吧! ...
- 【STM32H7教程】第23章 STM32H7的MPU内存保护单元(重要)
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第23章 STM32H7的MPU内存保护单元 ...
- test软件工程第三次作业
零.前言 本次作业要求个人编写程序,截止日期2019年9月25日23:00. 请先阅读<构建之法>第一章至第三章的内容,并在下方作业里体现出阅读后的成果.特别是第2章中的效能分析及个人软件 ...
- Web前端开发工程师需要掌握哪些核心技能?
Web前端开发所涉及的内容主要包括W3C标准中的结构.行为和表现,那么这三项中我们需要掌握的核心技能是什么呢? 1.开发语言 HTML发展历史有二十多年,历经多次版本更新,HTML5和CSS3的出现又 ...
- BUAA_2020_OO_第一单元总结
三次作业,三次成长 第一次作业--幂函数求导总结 作业思路和心得 第一次作业的要求只有x的指数这样的幂函数加减组成表达式,对表达式进行求导,而且没有格式错误的检查,所以难度感觉还不是很高.不过由于我寒 ...
随机推荐
- Python入门 —— 05时间日期处理小结
此文多涉及基础,如果想要深入理解则到文末,有提供链接 涉及对象 1. datetime 2. timestamp 3. time tuple 4. string 5. date - datetime基 ...
- mongodb数据的导出和导入
mongo导出表说明: root@827995de7c7f:/# mongoexport --help Usage: mongoexport <options> Export data f ...
- 浅析BFC布局的概念以及作用
BFC的概念以及作用 BFC的定义: (Block formatting context)直译为"块级格式化上下文".它是一个独立的渲染区域,只有Block-level box参与 ...
- linux动态链接库
前言 静态链接库会编译进可执行文件,并被加载到内存,会造成空间浪费 静态链接库对程序的更新.部署.发布带来麻烦.如果静态库更新了,使用它的应用程序都需要重新编译.发布给用户(对于玩家来说,可能是一个很 ...
- Qt——模态、非模态
模态: 只能操作对话框非模态:要使用 QDialog *_d = new QDialog();_d->setattribute(Qt::WA_DeleteOnClose);_d->show ...
- C++三元操作符
c++的三元操作符形式: //条件表达式 ? 表达式1 : 表达式2; 语义:如果“条件表达式”为true,则整个表达式的值就是表达式1,忽略表达式2:如果“条件表达式”为false,则整个表达式的值 ...
- 获取项目中.txt 文件的内容
package com.fh.controller.ruitai.util; import java.io.BufferedInputStream; import java.io.File; impo ...
- http tcp udp
HTTP连接 1.HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用 ...
- ADB连接不上手机,端口5037被占用的情况解决
最近在搞手机APP自动化测试,adb连接手机时提示端口被占用 检测5037端口被谁占用,cmd窗口输入命令:netstat -ano | findstr "5037" (注意”50 ...
- MVC数据的注册及验证简单总结
一.注解 注解是一种通用机制,可以用来向框架注入元数据,同时,框架不只驱动元数据的验证,还可以在生成显示和编辑模型的HTML标记时使用元数据. 二.验证注册的使用 1.Require:属性为Null或 ...