解析器小结
来源:互联网 发布:linux shell删除文件 编辑:程序博客网 时间:2024/06/11 01:10
第一次用编程语言写自己的工具,挺有成就感的说~ 也有一些体会。工具的任务是把SilkTest脚本转换成python脚本。里面有一些工作特定相关的假设和需求。主要所得是心得体会啦~
Draft for SilktTest to Python transfer:
requirements:
"word1 word2" -> "word1 word2"
{ -> [
} -> ]
NULL, null, Null -> None
TRUE, true -> True
a.b.c -> a['b']['c']
["","a"] + ["","b"] -> ["","b"]
// -> #
line continuation
':' is not key delimiter in SilkTest
SilkTest keyword
=, +, -, (, ), [, ], ; , .
Addintional Plus:
1. detect what library is used in the test case , add sentence to import the library: Open_dialogname_**, Set_dialogname_**, Dlg_Set_dialogname_**, Dlg_Get_dialogname_***, Close_dialogname_***
dialoglib = lower(dialogname) + "lib"
from raftlibs import dialoglib
from dialoglib import *
2. add sentence like Activate_App(), sDocumentsDir = os.path.join(getPathToDesktop(), "TestFiles") at appropriate place
3. Function call refactor:
VerifyObjectActive()
从软件开发的角度来看:
这是一个编译器,需要完成的基本任务是1)提取字符串和注释 2)分解单词 3)转换 等等.. 这些需求适用于“编译器”这个领域。用什么结构存储中间数据,功能之间是怎么样的接口,这些是可选的,算是程序设计的一部份。程序结构之下,分隔符是什么,字符串的文法,这要看具体的处理对象。
基本任务,和加分任务可以根据难易程度和需求程度分优先级。一般把简单的最需要的任务放在前面完成。通常一个亟需的任务能够通过简单的机械化做到,是引发想开发这个软件的原因。几个亟需的任务也可以一个一个在程序中完成。当任务的个数很多很乱时,可以提取它们的共同点、合并到一个任务之中,将任务内容化为数据储存。
在实现越来越多的任务时,可能整个程序的结构都要发生改变。原先的设计不一定能保证完成后来添加的任务。改变是痛苦的,学习理论知识能帮助建立有效的结构。
理论知识研究通用的结构和算法。但是我们的需求可能很明确,用简单愚笨的结构就能实现,没有许多意外情况需要考虑。不管怎么样,理论知识能建立起一个模型和一类需求之间的纽带。不过理论的书籍很少讨论需求。会说明这这是用来干什么的,但是需求为何需要很少解释。而模型的建立来自复杂的需求,阅读理论书籍而不理解需求会有障碍。也是我觉得为什么项目开发经验的收获之一就是理解需求。
从软件测试的角度来看:
在添加任务时,一个完整的功能不一定被一个独立的模块实现,它可能被划分到几个部分中。这些部分的前趋和后继可能会需要调整。部分和部分之间有时可能重叠,有时可能不重叠,这会让人头疼。将一个功能错误地划分或者放入错误的部分就会导致问题。另外在需要覆盖所有情况时,对个别特殊情况枚举不全也会导致错误。
- 解析器小结
- MPEG2解析小结
- Dom4j解析XML小结
- 【SpringMVC框架】小结+视图解析器配置前缀和后缀
- 【SpringMVC框架】小结+视图解析器配置前缀和后缀
- SAX解析XML个人小结
- 【解析字符串】C#,简单小结
- jsoup:解析HTML用法小结
- jsoup:解析HTML用法小结
- jsoup解析HTML用法小结
- jsoup:解析HTML用法小结
- jsoup:解析HTML用法小结
- 日常小结-SAX解析xml
- JSON的各种解析小结
- java解析xml文件小结
- 【转】不同浏览器CSS解析小结
- 近况小结+Objective-c解析XML文件
- Iphone开发之xml解析流程小结
- ez Content action handlers
- mysql c api 列表(转贴自http://blog.csdn.net/loveu131/archive/2006/07/26/982629.aspx)
- 公司间交易退货配置问题
- struts2中action的路径问题以及在MyEclipse8.5中的说明(通配符等等)
- 2.给自己的生活树立目标,别浪费在没有意义的人身上
- 解析器小结
- handle_one_connection()
- FileWriter(String) 写文件换行的方法。
- 如何用delphi开发斗地主记牌器
- 摩斯码装换程序
- 创建和使用动态链接库 (C++)C#调用
- use a Content action handlers to add comment for node
- JS 实现中文的URI编码,URI编码转换成中文
- SQL中的数字格式化