PCI-9054D调试文档2012-12-14 检测前短路块设置和开关设置:
(1)将实验箱右上角两组红色拨码开关打在“ON”的位置。
(2)RS232模块单元:短路块插在“3-3,2-2”位置。
(3)74HC138单元模块短路块:0832CS,0809CS,8253CS,8255CS
调试程序一般应经过以下几个步骤: 1、先进行人工检查,即静态检查。 在写好一个程序以后,不要匆匆忙忙上机,而应对纸面上的程序进行人工检查。这一步是十分重要的,它能发现程序设计人员由于疏忽而造成的多数错误。而这一步骤往往容易被人忽视。有人总希望把一切推给计算机系统去做,但这样就会多占用机器时间,作为一个程序人员应当养成严谨的科学作风,每一步都要严格把关,不把问题留给后面的程序。 为了更有效地进行人工检查,所编的程序应注意力求做到以下几点: (1)应当采用结构化程序方法编程,以增加可读性;(2)尽可能多加注释,以帮助理解每段程序的作用;(3)在编写复杂的程序时不要将全部语句都写在main函数中,而要多利用函数,用一个函数来实现一个单独的功能。这样既易于阅读也便于调试,各函数之间除用参数传递数据这一渠道以外,数据间尽量少出现耦合关系,便于分别检查和处理。 2、在人工检查无误后,才可以上机调试。通过上机发现错误称动态检查。在编译时给出语法错误的信息,可以根据提示的信息具体找出程序中出错之处并改正之。 应当注意的是有时提示的出错并不是真正出错的行,如果在提示出错的行上找不到错误的话应当到上一行再找。有时提示出错的类型并非绝对准确,由于出错的情况繁多各种错误互有关联,因止要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,钻牛角尖。如果系统提示的出错信息多,应当从上到下一一改正。有时显示出一大片出错信息往往使人感到问题严重,无从下手。其实可能只有一二个错误。例如,对使用的变量未定义,编译时就会对所有含该变量的语句发出出错信息;有的是少了“}”或多了“}”有的是书写语句时忘记写“;”或是全角的“;”了,只要加上一个变量定义,或填加“};”就所有错误都消除了。 3、在改正语法错误后,程序经过连接就得到可执行的目标程序。运行程序,输入程序所需数据,就可得到运行结果。应当对运行结果作分析,看它是否符合要求。 有的初学者看到运行结果就认为没问题了,不作认真分析,这是危险的。 有时,数据比较复杂,难以立即判断结果是否正确。可以事先考虑好一批“试验数据”,输入这些数据可以得出容易判断正确与否的结果。可以在计算的输出结果的程序地方加入一段输出到屏幕窗口的程序,利用屏幕窗口可以方便看到结果的,很直观。例如,if语句有两个分支,有可能在流程经过其中一个分支时结果正确,而经过其它一个分支时结果不对等。必须考虑周全。 事实上,当程序复杂时很难把所有的可能方案全部都试到,选择典型的情况作试验即可。 4、运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细检查和分析才能发现。可以采用以下办法: (1)将程序与流程图仔细对照,如果流程图是正确的话,程序写错了,是很容易发现的。例如,复合语句忘记写花括弧,只要一对照流程图就能很快发现。 (2)如果实在找不到错误,可以采用“分段检查”的方法。在程序不同的位置设几个printf 函数语句,输出有关变量的值,往下检查。直到找到在哪一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就可能发现错误所在。 (3)也可以用“条件编译”命令进行程序调试(在程序调试阶段,若干printf函数语句就要进行编译并执行。当调试完毕,这些语句不要再编译了,也不再被执行了)。这种方法可以不必一一去printf函数语句,以提高效率。 5、如果在程序中没有发现问题,就要检查流程图有无错误,即算法有无问题,如有则改正
配置文件说明列表:
常规指令 Authenticate:鉴别用户 VMAuthenticate:根据“voicem ail.conf”鉴别用户 Curl:接受外接URLs的修复。支持POSTing DUNDiLookup:用DUNDi查寻号码 SendDTMF:发送独裁的DTMF数据 SendImage:发送图像档案 SendText:发送给客户正文消息 SendURL:发送给客户USL以显示 System:执行系统命令 Transfer:将访客转移到另一个扩展名 TrySystem:0回复执行系统命令 Wait:稍等 WaitExten稍等: WaitForRing:等待呼叫申请 WaitMusicOnHold:等待,在线音乐 Billing ForkCDR:将CDR分成两个独立的实体 NoCDR:确保 asterisk没有把CRD保存为特定的呼叫 ResetCDR:重新安装CDR数据 SetAccount:设置帐簿号码 SetAMAflags:开通AMA标志开户的渠道 SetCDRUserField:建立CDR用户领域 AppendCDRUserField:给CDR用户附加数据 Call m anagement (hangup, answer, dial, etc) Answer:如果呼叫回复一个信道 Busy:显示忙的情形等待挂断 ChanIsAvail:如果信道可以利用即核查 Congestion:显示拥塞等待挂断 Dial:设置一个指令连接当前的信道 DISA:直接访问内在系统 Hangup: 无条件挂断 Ringing显示呼叫 Caller presentation (ID, Name etc) CallingPres:更改呼叫者的身份介绍 LookupBlacklist: 从黑名单数据库上查询访客的身份姓名和号码LookupCIDName: 从当地的数据库查询访客的身份和姓名PrivacyManager:如果没有CallerID过来,要求输入电话号码SetCallerID: 建立CallerID,发生矛盾服从CallerID SetCallerPres:建立访客资料的独立信道 SetCIDNam e:建立呼叫者身份姓名,发生矛盾服从CallerID SetCIDNum: 只建立访客的身份号码(没有姓名),发生矛盾服从CallerID SoftHangup: 请求挂断转到另一个信道
利用gdb调试core文件 什么是core dump core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump。(linux中如果内存越界会收到SIGSEGV信号,然后就会core dump) 在程序运行的过程中,有的时候我们会遇到Segment fault(段错误)这样的错误。这种看起来比较困难,因为没有任何的栈、trace信息输出。该种类型的错误往往与指针操作相关。往往可以通过这样的方式进行定位。 造成segment fault,产生core dump的可能原因 1、内存访问越界 a) 由于使用错误的下标,导致数组访问越界 b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正常的使用结束符 c) 使用strcpy, strcat, sprintf, strcmp, strcasecmp等字符串操作函数,将目标字符串读/写爆。应该使用strncpy, strlcpy, strncat, strlcat, snprintf, strncmp, strncasecmp等函数防止读写越界。 2、多线程程序使用了线程不安全的函数。 3、多线程读写的数据未加锁保护。 对于会被多个线程同时访问的全局数据,应该注意加锁保护,否则很容易造成core dump 4、非法指针 a) 使用空指针 b) 随意使用指针转换。一个指向一段内存的指针,除非确定这段内存原先就分配为某种结构或类型,或者这种结构或类型的数组,否则不要将它转换为这种结构或类型的指针,而应该将这段内存拷贝到一个这种结构或类型中,再访问这个结构或类型。这是因为如果这段内
软件项目集成开发 一、项目组织架构 A 项目经理 负责分析、设计和协调工作。随时监控各开发人员的工作,包括内容是否与要求发生偏差,进度是否滞后等等,同时给每个开发人员明确的任务书。 在项目周期内项目经理最好不要更换。大项目需要配备专门的系统分析师和系统设计师。 B 开发人员 熟悉针对软件开发的编程工具,并具有丰富的编程经验,负责完成不同层与模块的编程工作。 开发人员数量视系统模块数量和开发难度而定。 C 业务需求人员 熟悉业务工作流程,有丰富的业务经验。 业务需求人员的选择应覆盖系统所服务的业务部门。 D 文档整理人员 随时整理系统开发过程中相关的技术文档。 作为业务支撑,文档整理人员需熟悉软件开发的流程、文档管理、文档模板。 项目组织架构 项目经理 开发人员 业务需求人员 文档整理人员 测试工程师
E测试工程师 专门进行代码的测试工作,并且计划和执行源代码复审,负责有关返工的任何反馈意见(有条件可配置)。
二、项目流程管理 系统开发的过程必须符合IT 项目开发流程的规律,整个过程应包含但不仅限于以下环节: 需求调研是软件开发的最初阶段。需求调研的结果确立了软件开发的方向。软件设计是后续开发步骤及软件维护工作的基础。 在项目实施的过程中,项目实施者大多把精力放在了编码阶段,而需求调研和系统设计往往不被重视。没有严格的需求调研和分析,最终的软件产品会偏离用户的真正需求。如果没有设计,只能建立一个不稳定的系统结构。如下图所示:
在项目实施过程中,以上各个流程都不应该被忽略(重大项目更是如此),任何一个环节的遗失都可能引起项目方向的偏差,甚至失败。项目管理者可以在此基础上,完善项目管理流程,以降低项目实施的风险。 三、项目文档管理 项目管理者必须在系统开发过程中做好项目文档管理。项目文档是项目实施的依据,也是项目设计、编码、测试、修正、培训和验收的依据。 根据以上项目流程,项目实施过程中应包含以下所必须的文档:
2.4 实例—使用gdb调试器 1.编写实例程序gcctest.c,见2.2小节的开头部分 2.编译 3.启动GDB,执行程序 启动gdb,进入gdb调试环境,可以使用gdb的命令对程序进行调试。 [root@localhost gdbtest txt]# gdb //启动gdb GNU gdb Fedora (6.8-27.el5) Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later
Asterisk基本配置 Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3Voip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和 chan_sip.so Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3Voip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和 chan_sip.so******
Asterisk安装指南 2010-03-20 10:49 1、选择操作系统 据说Asterisk对大多Linux支持的都比较好,内核版本2.6.9-55.EL安装起来很顺利,2.4的麻烦一些。注意安装系统的时候选择上开发环境的包。2、在/usr/src目录中下载Asterisk相关安装包并解压 #cd /usr/src https://www.wendangku.net/doc/0b2681774.html,/pub/libpri/releases/libpri-1.4.10.tar.gz https://www.wendangku.net/doc/0b2681774.html,/pub/zaptel/releases/zaptel-1.4.12.1.tar.gz(dahdi asterisk1.6以后就不用这个,用https://www.wendangku.net/doc/0b2681774.html,/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.6.1+2.6.1.tar.gz) https://www.wendangku.net/doc/0b2681774.html,/pub/asterisk/releases/asterisk-1.6.2.tar.gz https://www.wendangku.net/doc/0b2681774.html,/pub/asterisk/releases/asterisk-addons-1.6.2.0.tar.gz https://www.wendangku.net/doc/0b2681774.html,/pub/asterisk/releases/asterisk-sounds-1.2.1.tar.gz # tar -xvzf *.tar.gz 3.安装libpri # cd libpri-1.4.9 # make # make install 4.安装zaptel # cd .. # cd zaptel-1.4.12.1 # make # make install # make config 5.安装asterisk # cd .. # cd asterisk-1.4.24.1 # ./configure # make # make install
嵌入式Linux视频教程 相关搜索:简体中文, 学习方法, 视频教程, 普通话, 嵌入式 中文名: 嵌入式Linux视频教程 资源格式: 光盘镜像 学校: 成都国嵌嵌入式培训中心版本: 成都国嵌嵌入式培训中心的基于广州友善之发行日期: 2010年 地区: 大陆 对白语言: 普通话 文字语言: 简体中文 视频光盘目录结构 国嵌视频1.iso -学习方法与课程体系介绍(学前必看) -学习方法介绍.avi -国嵌嵌入式课程体系.pdf -嵌入式Linux学习方法.pdf -国嵌课程1-嵌入式入门体验班(上) -第1天(嵌入式系统概述) -国嵌体验入门班-1-1(嵌入式系统概述).avi -国嵌体验入门班-1-2(ARM概述).avi -国嵌体验入门班-1-3(嵌入式Linux概述).avi -国嵌体验入门班-1-4(2440开发板介绍).avi -国嵌体验入门班-1-5(软硬件环境搭建).avi -第2天(开发板快乐体验) -国嵌体验入门班-2-1(开发板系统安装).avi -国嵌体验入门班-2-1(开发板系统安装-Jlink方式).avi -国嵌体验入门班-2-1(开发板系统安装-并口方式).avi -国嵌体验入门班-2-2(裸机程序体验).avi -国嵌体验入门班-2-3(QT系统体验).avi -国嵌体验入门班-2-4(Android系统体验).avi 国嵌视频2.iso
-国嵌课程1-嵌入式入门体验班(下) -第3天(Linux系统体验) -国嵌体验入门班-3-1(Linux定制安装).avi -国嵌体验入门班-3-2(Linux命令).avi -国嵌体验入门班-3-3(VI使用).avi -国嵌体验入门班-3-4(Linux系统管理).avi -国嵌体验入门班-3-5(Shell编程).avi -国嵌体验入门班-3-6(Qcd功能演示).avi -国嵌体验入门班-3-7(必修实验).avi -国嵌课程2-嵌入式Linux应用开发班 -第1天(编程基础) -国嵌应用班-1-1(GCC程序编译).avi -国嵌应用班-1-2(GDB程序调试).avi -国嵌应用班-1-3(makefile工程管理).avi -国嵌应用班-1-4(必修实验).avi -第2天(文件时间编程) -国嵌应用班-2-1(系统调用方式访问文件).avi -国嵌应用班-2-2(库函数访问文件).avi -国嵌应用班-2-3(时间编程).avi -国嵌应用班-2-4(必修实验).avi -第3天(多进程程序设计) -国嵌应用班-3-1(进程控制原理).avi -国嵌应用班-3-2(进程控制程序设计).avi -国嵌应用班-3-3(必修实验).avi -第4天(进程间通讯) -国嵌应用班-4-1(进程间通讯概述).avi -国嵌应用班-4-2(管道通讯).avi -国嵌应用班-4-3(信号通讯).avi -国嵌应用班-4-4(共享内存通讯).avi -国嵌应用班-4-5(必修实验).avi -第5天(进程间通讯) -国嵌应用班-5-1(消息队列).avi
一、设置断点(BreakPoint ) 我们用break 命令来设置断点。正面有几点设置断点的方法: break
asterCC安装配置手册 一.安装环境 1.安装程序:astercc-0.14-beta-rc1.zip 2.操作系统:CentOS Linux or Redhat Linux with mysql 3.硬件要求:X86 CPU 1GHz 1GB RAM 20GB HardDisk Ethernet Adaptor 二.安流流程 1.安装CentOS Linux or Redhat Linux 2.下载安装程序: https://www.wendangku.net/doc/0b2681774.html,/news/astercc-and-astercc-box-released-014-beta-rc1 3.ssh登录后台,解压程序包 [root@sc38 ~]# unzip astercc-0.14-beta-rc1.zip 4.进入astercc-0.14-beta-rc1,更改可执行权限并执行install.sh脚本,根据提示进行安装 [root@sc38 astercc-0.14-beta-rc1]# chmod 755 install.sh [root@sc38 astercc-0.14-beta-rc1]# ./install.sh Please enter database information database host(default localhost): 设置数据库地址,默认为localhost database port(default 3306): 设置数据库连接端口,默认为:3306 database name(default astercc): 设置数据库名,默认为astercc database user name(default root): 设置数据库连接用户,默认为root database user password(default null):eLaStIx.2oo7 设置数据库连接密码,如果本机已安装Elastix,则密码为eLaStIx.2oo7 database bin path(default /usr/bin): 设置mysql的程序路径,默认指定/usr/bin Please enter the Asterisk infomation:
目录 1.1参数调整 (2) 1.2电机调试 (2) 1.2.1例程 (2) 1.2.2说明 (3) 1.3颜色传感器调试 (3) 1.3.1例程 (3) 1.3.2说明 (4) 1.4巡线传感器调试 (4) 1.4.1例程 (4) 1.4.2说明 (6) 1.5舵机调试 (6) 1.5.1例程 (6) 1.5.2说明 (10) 1.6关于机器人的使用 (10)
1.1参数调整 参数直接写在setup函数的开头,如:SPEED1=150;。 SPEED1:左轮速度(0-255);SPEED2:右轮速度(0-255); 以上两个参数用于控制机器人巡线行进时的速度。左右电机由于质量上的差异,同一PWM值下速度可能有些许不同,故需要分别设置。 TURN:转弯速度(0-255); BACK:刹车延时(>=0毫秒); DELAY:转弯延时(>=0毫秒)。 1.2电机调试 1.2.1例程 #include "Car.h" Car mycar(8,9,10,11,5,6); void setup(){ mycar.Mode(); mycar.Infer(1,1); } void loop(){ mycar.Move(140,140,8,1000);
} 1.2.2说明 电机调试主要是检测当机器人前进时电机的转向是否正确。使用Car类的Infer成员函数进行检测,其中两个参数分别对应左右轮,参数值只取0和1。通过改变参数,可改变电机转向。例如:使用上述例程进行调试时,若左轮后退,则应将参数改为:mycar.Infer(0,1);。 1.3颜色传感器调试 1.3.1例程 #include "Function.h" //包含变量的定义和函数的实现 #include "ColSensor.h" //颜色传感器类 #include "Track.h" //巡线传感器类 #include "Car.h" //小车类 #include "ColQueue.h" //队列类 #include "Servo.h" void setup(){ mysensor.Mode(); Ready(); }
用GDB调试程序 GDB概述 ———— GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UN IX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3、当程序被停住时,可以检查此时你的程序中所发生的事。 4、动态的改变你程序的执行环境。 从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细节上,你会发现GDB这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。让我们一一看来。 一个调试示例 —————— 源程序:tst.c
1 #include
GDB调试精粹及使用实例 一:列文件清单 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和>)和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。 利用set args 命令就可以修改发送给程序的参数,而使用show args 命令就可以查看其缺省参数的列表。 (gdb)set args –b –x (gdb) show args backtrace命令为堆栈提供向后跟踪功能。 Backtrace 命令产生一张列表,包含着从最近的过程开始的所以有效过程和调用这些过程的参数。 三:显示数据 利用print 命令可以检查各个变量的值。 (gdb) print p (p为变量名) whatis 命令可以显示某个变量的类型 (gdb) whatis p type = int * print 是gdb的一个功能很强的命令,利用它可以显示被调试的语言中任何有效的表达式。表达式除了包含你程序中的变量外,还可以包含以下内容: l 对程序中函数的调用 (gdb) print find_entry(1,0) l 数据结构和其他复杂对象 (gdb) print *table_start $8={e=reference=’\000’,location=0x0,next=0x0} l 值的历史成分 (gdb)print $1 ($1为历史记录变量,在以后可以直接引用 $1 的值) l 人为数组 人为数组提供了一种去显示存储器块(数组节或动态分配的存储区)内容的方法。早期的调试程序没有很好的方法将任意的指针换成一个数组。就像对待参数一样,让我们查看内存中在变量h后面的10个整数,一个动态数组的语法如下所示: base@length 因此,要想显示在h后面的10个元素,可以使用h@10: (gdb)print h@10 $13=(-1,345,23,-234,0,0,0,98,345,10)
Linux下安装呼叫中心服务器(ASTERISK+FreePBX) 一、环境要求: 操作系统:centos 5.0以上(以最小化形式安装) Linux内核版本:2.6.22 Asterisk版本:asterisk V.1.6.2.18 FreePBX版本:FreePBX:2.9.0 以rpm方式安装好的LAMP环境 以root身份登录 二、所需软件包 https://www.wendangku.net/doc/0b2681774.html,/pub/telephony/asterisk/asterisk-1.6.2.1 8.tar.gz https://www.wendangku.net/doc/0b2681774.html,/freepbx-2.9.0.tar.gz 三、安装步骤 1、Lamp的安装 下载所有软件包到/usr/local/src路径 配置yum源,安装相关软件 yum –y update yum install –y httpd http-devel mysql mysql-devel mysql-server php php-devel php-mysql yum install php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl php5-gd php-db yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml
yum install e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear php-pear-DB php-gd php-mysql php-pdo kernel-devel ncurses-devel audiofile-devel libogg-devel openssl-devel mysql-devel zlib-devel perl-DateManip sendmail-cf sox yum install gcc gcc-c++ wget bison mysql-devel mysql-server php php-mysql php-pear php-pear-DB php-mbstring nano tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel php-gd audiofile-devel gtk2-devel subversion kernel-devel yum install festival festival-dev yum install ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev yum install zlib1g zlib1g-dev yum install bison bison-doc yum install install libxml2 libxml2-dev yum install libtiff4 libtiff4-dev yum install libasound2 libgsm1 libltdl3 libpq4 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev yum install libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl mkdir /var/lib/mysql chown –R mysql:mysql /var/lib/mysql /etc/init.d/httpd start chkconfig –level 35 httpd on mysql_install_db chown –R mysql.mysql /var/lib/mysql
软件测试流程规范 测试人员要站在用户的角度来思考,这个产品是不是用户需要的。 一、软件发布流程流程: (1)、产品需求分析:根据客户或者用户提出的功能需求,对产品功能逻辑进行需求的分析,了解客户需要一个什么产品。 (2)、设计测试用例:根据客户的需求,进行功能流程设计,主要包括正确的逻辑和错误的逻辑,同时需要设计一些特殊内容输入,如特殊字符、空格以及不同的环境。 (3)、测试用例评审:将设计好的测试用例与领导开发同事一起进行评审,检查是否有遗漏的地方。 (4)、执行测试用例:开发人员在功能开发完毕后完成在开发环境的测试后,提交到测试环境,测试人员开始执行测试用例。 (5)、跟进测试问题:开发修复问题后,对BUG进行修复后的测试跟进工作,在产品上线前需要将版本的BUG进行一次修复确认测试。(6)、提交测试报告:完成一个迭代版本的测试之后,需要提交次版本的质量情况。 二、软件测试类型: (1)、单元测试:对软件中最小的可测试单元进行检查和验证,这个一般开发人员自己就做了。
(2)、集成测试:是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。这里测试人员可以根据设计的测试用例来执行功能测试。 (3)、系统测试:简单的说就是对整个软件进行测试,执行整个系统的全部测试用例。(但是系统测试还包括恢复测试、安全测试、压力测试) (4)、验证测试:通俗的可以理解为是对软件系统的检查,软件是否满足功能需求,这个可以根据需求文档来进行,验证测试也可以理解为客户的验收测试。 三、测试用例的编写规范 (1)、测试用例包括以下内容:用例编号、测试项目、功能模块测试小标题、操作步骤、问题详细描述、PASS&FAIL、优先级、研发确认、测试者&时间、验收结果、备注。 (2)、测试用例表格文件命名规则:项目名称+版本号+更新日期(年月日),如果有自己习惯的方式可以不按照这样命名。 (3)、BUG跟进表包括以下内容:编号、BUG小标题、开发者、优先级、创建时间、是否完成、完成时间、类型、状态。 (4)、测试结果数据:主要记录用例的执行情况和BUG的修复情况。详细信息见下图:
1.测试分类 1.1.系统测试 系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。 1.2.确认测试 模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。从测试原理上分为:白盒测试、黑盒测试和灰盒测试。 1.3.白盒测试 通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。 1.4.黑盒测试 通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。 在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。 黑盒测试方法主要有等价类划分、边界值分析、因—果图、错误推测法。等价类划分:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法。 1.5.灰盒测试 灰盒测试就像黑盒测试一样是通过用户界面测试,但是测试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的。甚至于还读过部分源代码。 因此测试人员可以有真对性地进行某种确定的条件/功能的测试。从软件特性上分为功能测试和性能测试。 1.6.功能测试 是指为了确保软件系统功能实现的正确性,完整性和其他特性而进行的测试。 性能测试:是指为了评估软件系统的性能状况,和预测软件系统性能趋势而进行的测试和分析。 END
GDB调试及实例 一:列文件清单 1.List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和>)和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。 利用set args 命令就可以修改发送给程序的参数,而使用show args 命令就可以查看其缺省参数的列表。 (gdb)set args –b –x (gdb) show args backtrace命令为堆栈提供向后跟踪功能。 Backtrace 命令产生一张列表,包含着从最近的过程开始的所以有效过程和调用这些过程的参数。 三:显示数据 利用print 命令可以检查各个变量的值。 (gdb) print p (p为变量名) whatis 命令可以显示某个变量的类型 (gdb) whatis p type = int * print 是gdb的一个功能很强的命令,利用它可以显示被调试的语言中任何有效的表达式。表达式除了包含你程序中的变量外,还可以包含以下内容: l 对程序中函数的调用 (gdb) print find_entry(1,0) l 数据结构和其他复杂对象 (gdb) print *table_start $8={e=reference=’\000’,location=0x0,next=0x0} l 值的历史成分 (gdb)print $1 ($1为历史记录变量,在以后可以直接引用$1 的值) l 人为数组 人为数组提供了一种去显示存储器块(数组节或动态分配的存储区)内容的方法。早期的调试程序没有很好的方法将任意的指针换成一个数组。就像对待参数一样,让我们查看内存中在变量h后面的10个整数,一个动态数组的语法如下所示: base@length 因此,要想显示在h后面的10个元素,可以使用h@10: (gdb)print h@10 $13=(-1,345,23,-234,0,0,0,98,345,10)
如何在Linux中使用gdb调试C程序 无论多么有经验的程序员,开发的任何软件都不可能完全没有bug。因此,排查及修复bug 成为软件开发周期中最重要的任务之一。有许多办法可以排查bug(测试、代码自审等等),但是还有一些专用软件(称为调试器)可以帮助准确定位问题的所在,以便进行修复。 如果你是C/C++ 程序员,或者使用Fortran 和Modula-2 编程语言开发软件,那么你将会很乐意知道有这么一款优秀的调试器- GDB - 可以帮你更轻松地调试代码bug 以及其它问题。在这篇文章中,我们将讨论一下GDB 调试器的基础知识,包括它提供的一些有用的功能/选项。 在我们开始之前,值得一提的是,文章中的所有说明和示例都已经在Ubuntu 14.04 LTS 中测试过。教程中的示例代码都是 C 语言写的;使用的shell 为bash(4.3.11);GDB 版本为7.7.1。 GDB 调试器基础 通俗的讲,GDB 可以让你看到程序在执行过程时的内部流程,并帮你明确问题的所在。我们将在下一节通过一个有效的示例来讨论GDB 调试器的用法,但在此之前,我们先来探讨一些之后对你有帮助的基本要点。 首先,为了能够顺利使用类似GDB 这样的调试器,你必须以指定的方式编译程序,让编译器产生调试器所需的调试信息。例如,在使用gcc 编译器(我们将在本教程之后的章节用它来编译C 程序示例)编译代码的时候,你需要使用 -g 命令行选项。 IT网,http://it 想要了解gcc 编译器手册页中关于 -g 命令行选项相关的内容,请看这里。 下一步,确保在你的系统中已经安装GDB 调试器。如果没有安装,而且你使用的是基于Debian 的系统(如Ubuntu),那么你就可以使用以下命令轻松安装该工具: sudo apt-get install gdb 在其他发行版上的安装方法,请看这里。 现在,当你按照上述的方式编译完程序(gcc -g 命令行选项),同时也已经安装好GDB 调