下面的框图代表一个非负整数的除法程序。x1是被除数;x2是除数;z1中存放程序加工后得到的商;z2中存放得到的余数y1、y2是程序加工时使用的工作单元。START 表示程序的起始,HALT表示程序的终止。方框中是同时赋值语句,如(y1,y2):=(O,x1)
表示将y1置0值的同时,将y2的值置为x1。圆框内是测试语句,用于控制程序加工的流程。如框图中的语句y2≥x2
表示当y2的值大于等于x2时,程序按yes的箭头继续执行;否则按no的箭头继续执行。 为验证程序,必须首先将程序所要实现的目标形式化,即使用数学公式表达程序加工的初始数据的范围(称作输入谓词)和程序加工的结果(称作输出谓词)。
若约定各个变量的取值都是整数,上述除法程序的输入谓词和输出谓词分别为 在用归纳断言方法证明程序正确性时,还必须在程序的框图中设置一些数学公式,称作断言,表示程序执行到该处时,程序中变量应满足的数学关系。输入谓词可选作起点处的断言,而输出谓词可选作终止点处的断言。
在除法程序中设置三个断言,A处和C处的断言分别为上述输入和输出谓词,B处断言为(x1=y1x2+y2)&(y2≥0) (1)
反映了y1、y2中存放商数和余数的中间结果值。
验证程序的正确性,就是证明在程序的任何一种可能的加工过程中所设置的断言都是成立的。程序的一个加工过程就是框图中的一个流程。除法程序的所有可能的流程都是由图上的三条路径组合而成:由A至B由B出发回到B由B至C。这样,验证程序的正确性,就是证明对任一条路径,只要起点的断言成立,则终点的断言也成立。
以第二条路径为例,它是一条环路。要证明下列命题:若程序执行到环路的起点B时,断言(1)成立,则程序执行一周,再达到B点时,断言(1)仍然成立。
环行该圈,就是在(y2≥x2)成立的条件下,执行赋值语句(y1,y2):=(y1+1,y2-x2)
而上述语句的执行结果是使 y1的取值为执行前y1的值加1,y2的取值为执行前y2的值与x2的差,其他变量的值不变。为保证执行该赋值语句后断言(1)仍然成立,就要求将断言(1)中的y1代为(y1+1),y2代为(y2-x2)后得到的公式在执行该语句前成立。即(x1=(y1+1)x2+(y2-x2))&(y2-x2≥0) (2)
在执行上述赋值语句前成立。但已知执行该语句前断言①和测试条件(y2≥x2)均成立。由此推断公式②是成立的。这样就完成了对第二条路径的验证。对其余两条路径的验证也是类似的。从而可以证明除法程序的正确性。
归纳断言方法是由建立断言和对各条路径逐条验证两部分组成的。建立断言是一种创造性的工作,而验证路径的工作尽管繁琐,却是机械的。如何由计算机系统协助用户归纳出合适的断言,是程序验证研究中的重要课题。
用上述方法只能证明在输入谓词成立的前提下,程序终止时输出谓词一定成立。但不能证明在输入谓词成立时,程序一定能终止。不讨论程序终止性的程序验证称为程序部分正确性的验证。包括终止性的验证,则称为程序完全正确性的验证。
程序验证技术除了用于证明程序的正确性,或辅助用户编制正确程序外,还可从程序正确性角度评价程序设计方法和程序设计语言的优劣。但是,保证程序正确性的有效办法,不是在编制程序后再去验证,而是设法在编制过程中,使用适当的技术,使产生的程序是正确无误的。这类技术叫作程序综合和程序变形。程序验证技术和程序综合变形技术相互参照,共同发展。
数控机床故障诊断有故障检测、故障判断及隔离和故障定位三个阶段。第一阶段的故障检测就是对数控机床进行测试,判断是否存在故障;第二阶段是判定故障性质,并分离出故障的部件或模块;第三阶段是将故障定位到可以更换的模块或印制线路板,以缩短修理时间。为了及时发现系统出现的故障,快速确定故障所在部位并能及时排除,要求故障诊断应尽可能少且简便,故障诊断所需的时间应尽可能短。为此,可以采用以下的诊断方法:1、采用测量的方法
数控机床数控系统为了调整、维修的便利,一般在进行印制电路板制造时,都设置有检测用的测量端子,可利用这一设备进行故障的分析,查找和判断,参照电气原理图和控制系统的逻辑图等资料,沿着发生故障的通道,一步一步地测量,直到找到故障点为止。
采用测量法要求维修人员要较好的掌握电路图和逻辑图,真正了解电气元器件的实际位置,而且采用测量法查找故障不一定要从起点一直测量到终点,可采用优选法进行,这样可以节省大量时间。
2、采用检查参数的方法
参数直接影响着数控机床的性能,它是保证数控机床正常运行的前提条件,造成参数出现问题的原因一般有以下几种情况,一种情况是当电池电力不足或是受到外力干扰时,容易造成部分参数的丢失或变化,进而导致数控机床无法正常工作,这时只要及时的调整、核对参数就可以把故障排除掉;一种情况是在数控机床长期闲置不用的情况下,也容易造成参数的丢失,应对措施就是检查和恢复参数;还有一种情况是由于数控机床在长期的运行过程中,造成机械运动部件的磨损,电气元器件性能发生了变化,造成了参数也出现调整的情况,这种情况下,及时把参数修正过来就好。
3、采用查找信息的方法
当数控机床出现故障时,可根据自诊断信息、报警信息、查阅说明书有关的处理方法,快速解决故障,恢复机床的正常运行,例如,当数控机床的存贮器溢出的时候,这是可查阅相关说明书,按照说明书上的处理步骤,将读写开关打开,删除贮存器内容,重新输入程序,问题就得到了快速解决。
4、可采用替换备件的方法
如果数控机床发生了故障且无报警信息,这种情况下,可在大致分析故障起因的基础上,利用备用的印刷电路板、集成电路芯片或元器件替换有疑点的部分,这样做的好处就是可以把故障范围缩小到印刷线路板或芯片以及,为故障的查找节约了时间,现在很多数控机床的维修中都采用这种方法进行诊断,然后用备件替换损坏模块,使数控机床迅速恢复正常运转的状态。
5、直观检查法,直观检查法是故障分析必用的方法,它是利用感官,通过采取询问、目视、触摸、通电等办法来进行检查。这种方法具有很多的局限性,比如,一些技术人员仅仅靠自身的主观想法和经验来进行狭隘的判断。
6、仪器检查法,这种方法是使用常规的电工仪表,对每个组的交流、直流电源电压以及相关直流进行测量,找出故障所在。比如,用万用表来对各个电源的状态进行检查,或者对电路板上设置的相关信号状态进行测量。
7、信号和报警指示分析法,在数控系统和给进伺服系统、电气装置中安装故障指示灯,结合指示灯的状态以及相应的功能说明,以及指示的内容来对故障进行排除。
8、接口状态检查法,将PLC集成在其中,在CNC和PLC之间形成接口信号,并且相互进行连接。一部分故障是由于接口信号遗忘、错误而造成的。这些接口信号有一部分可以在接口板、输出板上进行显示,或者用PlC编程器调出。
第一类测试方法是试图验证软件是“工作的”,所谓“工作的”就是指软件的功能是按照预先的设计执行的;而第二类测试方法则是设法证明软件是“不工作的”。还有两大类:白盒法和黑盒法。
白盒法:你清楚程序的流程时,用不同的数据测试你程序的代码,验证程序的正确性,有:条件测试,路径测试,条件组合。。。。
白盒法用在程序开发阶段的前期。
黑盒法:主要用于程序开发阶段的后期,即程序的流程测试正确后,测试程序的结果。有什么因果法,边缘值法等。
具体你可以买本软件工程方面的书看看。
还有一下方法:
功能测试:可接受性测试:用户界面测试:探索或开放’型的测试:性能测试:回归测试:强力测试:集成与兼容性测试:装配/安装/配置测试:国际化支持测试:本地化语言测试:
这些都是测试的方法.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)