软件设计与自动化测试学习历程感悟

上一篇 / 下一篇  2011-10-26 18:21:07 / 个人分类:领域发展与思考

   序言:最近一段业余时间都在进行web编程设计,采用的是JSP技术,虽然JSP在网站设计上过于复杂,可是其能帮助学习java的思想,而且觉得在理解自动化测试方面颇有些帮助。自动化测试设计也是软件产品设计的一种,不过为了在此区分,一个为被测试软件的设计,一个为测试软件的设计。前者是面向特定用户使用的,后者是面向测试人员使用的,前者是为了帮助特定用户实现某个场景、提高生活效率。后者是为了帮助测试人员完成测试工作,提高测试效率。

 回想自动化测试过程和软件设计学习过程,后来看了一个人所谓的软件设计学习历程,颇有感悟,当然,只是在这里说说自己的感受,也许说的有点乱,读者需要保持一颗自我和清醒的心。

 

 软件设计学习过程:

  某位人士23岁毕业,对Java的优雅设计情有独钟,其Java技术之旅开始了。
   1
、最开始三个月,开始接触Java,比如接口、继承、封装等,买了本《Think in Java》天天啃,并且同时做项目实践。猛学了三个月后,对面向对象编程OOP熟悉了,原来脚本式思维和对象思维确实有差别。

   2
、三个月后,开始啃《Core Java》,《Effective Java》,对Java有了更深入的了解,回调的概念也有了,逐渐接触到更高的层次,面向对象设计OOD,这时又看了一本书《Head First Design Patterns》,感觉设计模式特别有趣。再写代码,已经不是面向实现编程,而是面向设计编程。感觉写Java代码太简单了。逐渐了解了WebWorkWeb框架的使用。
   3
、六个月过去了,Java瘾越来越大,逐渐开始往更高层次攀登,这时,又看到两本书《企业应用架构模式》、《UML和模式应用:面向对象分析与设计导论》,已经开始从设计往面向对象分析OOA、架构攀登了。Hibernate已经比较熟悉了,了解Hibernate背后的持久化技术、Spring背后的IoC容器、组装技术原理。
   4
、一年后,他逐渐脱离了Java语言,开始看这类书《面向模式的软件体系结构1》。这个阶段持续了一年,并且对以前的学过的设计模式,如命令模式、观察家模式有一个更深入的了解。因为两年的企业应用开发,他已经熟悉了Java EE的十来种规范,对Web容器和Servlet规范的关系有很深的理解,对JDBC规范和数据库驱动程序的关系也很了解。他正在经历Java开发的快速上升期
   5
、两年后,他突然发现,他学的很多东西都没用,都是纸上谈兵,比如,在自己的企业应用开发中,Command模式、Template从来没有用过。他还发现,本来100行写的一个功能,花了1000行,就是为了所谓的设计优雅性:可扩展。而实际上,还没有等到扩展,该系统就已经废掉了。他发现原来设计模式主要用在系统框架开发,而不是应用开发,一般开发人员不用,只需要理解。他还发现,他认真学过的JMSJCAJTAEJB像是从来没有用过。突然他想通了,JMSJTA可能是一种无奈的选择:处理遗留系统。当他开始对自己两年学到的知识进行反省、批驳时,他已经有了技术辨别能力,知道技术推广也不是那么纯洁,也有商业炒作。这时候,他已经不限于Java了,开始了解C#Ruby,发现Java可能并不太适合互联网开发,PHP可能更适合,ROR开发更快但需要在牛人的手里。两年后的这个时候,他才开始真正驾驭Java,他已经不再限于Java,而是企业应用。这个时候,技术提升的速度越来越慢了,因为不知道还可以学习什么新技术。因为他发现,原来这些东西,最深层次的,都是几十年前的技术概念:消息系统、异步通讯、事件机制等等
....
   6
、三年过去后,他已经不再限于企业应用,而是解决方案,技术只是一种解决问题的方式,比如企业信息化成功的关键,恐怕不是技术,而是企业本身的业务流程成熟度;企业信息化成功的关键,不是处理好了技术,而是处理好了几位企业高官的利益。这时候,对IT行业新闻,逐渐有判断力和免疫力。他突然发现,技术的力量很有限,商业才是最大的驱动力量。而此时,他已经不再钻研技术细节,比如JVM的垃圾回收机制,如果他在一个技术研发型公司,比如普元,可能还会深入挖掘技术。如果他在东软这类行业应用开发企业,这类企业的口号是Beyond Technology,这时候他再执迷于技术而轻业务,恐怕不太受欢迎。这个时候,技术的提升,就会进入一个平台期。
 
   

 自动化测试学习过程:

 自动化测试的整个学习过程中,不断在探索,虽然时间不算很长,但是确实是在一直在思考、一直在观察、一直在领悟:

    1、刚开始的时候,是从手工测试入手,偶然之间开始了自动化测试之旅,发现自动化测试很神奇,在进行自动化测试用例撰写过程中(命令行的填充),对脚本技术(tcl)猛学了几个月。

2、若干月后,随着自动化测试用例加多,偶然开始有了结果的输出、日志的记录以及脚本库。在不清楚所谓的框架时,形成了一个简单的“框架”。

3、之后,需要对界面进行测试,开始研究自动化测试工具,之后在领悟了其神奇之后,开始疯狂的学习商业自动化测试工具(RFTQTP等),因为主要是研究RFT,被其ITCL的框架深深打动、后来在实践过程中,脱离了录制,开始迷恋基于工具的各种框架。RFTITCLQTP的轻量级框架以及各种工具的自动化测试框架,后来也学会了自己去拓展这些框架。

4、之后,因为对RFT的学习,开始喜欢上了java设计,每天都享受应用java设计,开始沉迷于技术,想着如何去用技术完善自动化测试,开始不注重那些已经搭建好的脚本环境。

5、到了现在,突然回过头发现,自动化测试最害怕的事情就是一群疯狂技术者的游戏,其实最基础的还是踏踏实实的把需求做好,以前所设想的搭建的业务分层现在不是主要问题,以前设想的如何去跟踪命令行的变更问题,到现在也不是主要问题,其主要问题是一个简单的技术是否实现了其需求正常的落地了,发现现在真正用起来的东西才是最好的。而更多的技术只是在需求不能得到满足的情况下去拓展的。

6、当然,工具、编程、框架都是必须的一个过程,关键是不要纠结于一些技术细节而不去向前,要看到主要和本质的东西,其工具、编程、框架、流程最终都需要转换成思想,不管何种方式都信手拈来,成为满足需求中的一部分。所以接下来,我觉得,自动化测试的学习道路有两个阶段,第一个阶段,以技术学习为基础,不断进行技术方面的探索。然后,每隔一个阶段,跳出技术的视野,去挖掘一定的自动化测试需求,其痴迷的细节不是技术方面,而是自动化测试需求方面,从另一个角度说,也是测试的方式和需求。

7、而在学习java的过程,也接触过J2SEJ2MEJ2EE,用了swing界面,也进行web设计,进行最基础的设计、也应用了一些框架,在没有多少实践的时候,就开始专研设计模式且一直以数据结构为伴随,后来在进行整个系统设计中,也学了一点系统建模以及数据库建模,但总的来说,还是处于模糊状态,也曾迷恋过,也曾迷茫过,一直处于一种不断怀疑、不断痛苦、不断惊喜的过程。

其实个人想说的是,上两种方式,并不是去评断其好坏,不管什么方式,都有其好坏性,大家看看热闹就行,但是每种方式、每种领悟都是一段过程的结果,最重要的是我们坚定一个学习的信念不断学习下去,学习但不要迷恋于技能、要总处于一种简单的自我怀疑状态,一切以价值实现为导向即可。

 突然想起,以前看的一段话:人早期看山是山、看水是水;中期看山不是山、看水不是水、晚期看山还是山、看水还是水,也许就是说的我们这一段学习过程吧,刚开始因为单纯,所以我们能够简单应用那些知识实现我们的需要就行,后来学习的深究,各种技术交杂在一起,人难免会有点晕眩,不能把控好自己的方向,后来,才发现不论什么方式,其实最终目的还是为了需求,不管简单或者复杂,能够把控好自己,把控好整个流程就好。

    所以,自己还在技术的迷乱期,需要的还是不断的学习,这就是一个过程,所以相信,最终还是会有一个接一个的领悟,但关键是坚持啊,坚持啊,不管迷茫、不管怀疑。


TAG:

引用 删除 rhoswen   /   2013-10-11 10:08:31
5
测试菜菜鸟的蜕变 引用 删除 幽幽草哈哈   /   2011-12-30 11:45:50
Vampire_King的个人空间 引用 删除 Vampire_King   /   2011-12-28 10:01:52
1
张小A的自留地。 引用 删除 张小A   /   2011-11-29 00:24:35
来支持一下。!
散步的SUN的个人空间 引用 删除 散步的SUN   /   2011-11-04 18:44:57
哈哈,是有点绕啊~注意“安全”
原帖由vannty于2011-11-04 18:28:06发表
晕了
vannty的个人空间 引用 删除 vannty   /   2011-11-04 18:28:06
晕了
wr329805407的个人空间 引用 删除 wr329805407   /   2011-11-04 16:39:40
5
引用 删除 轻舞的moon   /   2011-10-31 17:01:37
5
散步的SUN的个人空间 引用 删除 散步的SUN   /   2011-10-27 20:06:21
哈~欢迎
原帖由乌托邦联于2011-10-27 17:26:59发表
是因为你在百度知道里面的回答 跟到这来的 哈哈!
散步的SUN的个人空间 引用 删除 散步的SUN   /   2011-10-27 20:05:30
这个阶段还痛苦...啥时候出来一起诉苦一下
原帖由xiaoyaoke于2011-10-27 11:22:42发表
你也到了这个阶段了,哈哈
乌托邦联的个人空间 引用 删除 乌托邦联   /   2011-10-27 17:26:59
是因为你在百度知道里面的回答 跟到这来的 哈哈!
cbook的个人空间 引用 删除 cbook   /   2011-10-27 11:53:25
小sun,你写的越来越有深度了。。。
逍遥客 引用 删除 xiaoyaoke   /   2011-10-27 11:22:42
你也到了这个阶段了,哈哈
xin_晴的个人空间 引用 删除 xin_晴   /   2011-10-27 10:34:19
您好,我是51Testing软件测试网的编辑,您的本篇博文被推荐至51Testing软件测试网首页发表:http://www.51testing.com/html/57/n-247857.html
感谢您关注并支持51Testing博客,期待您更多的优秀原创博文。
引用 删除 waiwjia520527   /   2011-10-26 22:11:12
 

评分:0

我来说两句

Open Toolbar