导读:作者怪怪写了一篇《由Java设计模式想到测试技术》文章,他认为一个合格的测试架构师要完全的理解测试技术、要能实时的掌握新的测试技术并应用于团队、要能抽象并创新出新的能应用于本身团队的测试技术。以下是文章内容:
最近一直在看Junit源码,也看了很多Junit的源代码分析,看到里面都提到了Java设计模式,什么Command模式,Observer模式,Composite模式等等。以前就知道有Java设计模式,这次通过看Junit源码发现这个设计模式真的是非常的有用,而且对于代码设计和架构设计有很多的指导作用,那大部分的Java开发人员在使用Java设计模式的时候,主要是为了可重用和扩展代码,增加代码的逻辑性和可靠性。让人感觉就是非常的High,也让人感觉这才是真的有技术含量,这里我就会联想到架构师,系统分析师等比较牛的人,那些人至少是把这些设计模式理解和使用的非常精通的境界,什么情况下使用什么设计模式能启动什么样的效果,这些东西一说出来,在项目的系统技术方案评审和架构设计的时候,这就代表着水平和技术实力。甚至是很牛的架构师就是开发一些新的设计模式出来,让其他的开发人员来使用这些设计模式,使其写的代码更具有可靠性和扩展性。
这里我就想到了测试架构师,自从了解了Java设计模式,就大概了解了开发架构师的一些内部职能,自己从事测试行业这么长时间了,还是不能完全明确体会到测试架构师到底具体是做什么呢,给其他的测试人员能够带来什么,给需要开发的项目或系统能带来什么,这里就不说其他人的见解,就谈下我个人的理解:
首先,一个合格的测试架构师要完全的理解测试技术。
这里的测试技术包括需求分析技术,测试设计技术,测试执行技术等;对比与开发架构师,有哪个开发架构师不了解甚至是使用基本编程技术,编程语言语法,设计模式,肯定是对这些方法和设计模式使用的炉火纯青,达到非常精通的境界。这里就不能看出作为一个测试架构师能具有的能力了,开发架构师对项目或系统的贡献是技术方案,架构设计的合理,设计模式的合理应用,能够让开发人员的代码更有质量和可测试性;测试架构师对项目或系统的贡献是最佳的测试策略,测试模型的合理应用,测试设计技术和需求分析技术的合理应用,能够让测试人员更快的进行测试设计,进行测试代码的编写,发现较隐含的bug。
其次,一个合格的测试架构师要能实时的掌握新的测试技术并应用于团队。
这里同样对比与开发架构师,我们的开发架构师不仅仅提供一些技术方案的指导,还掌握了JVM,J2EE,EJB等一系列技术的发展和动态,了解这些是否有最新的技术来改变或替代,并探索是否适合本公司内部应用,或作出较有深度的分析报告。那我们的测试架构师也是一样,不仅仅能够完全的应用和指导测试策略和测试模型,而且还需要了解国内外最新发展的新的测试技术(需求分析技术,测试设计技术,测试执行技术,优秀的工具),并探索这些技术在本公司内部应用,研究并定制化或完善这些最新的测试技术,提供最新技术的实施方案并亲自实践拿到最新的分析报告,知道其他的测试人员参与最新技术的应用,目的只有一个提升测试人员的技术能力,或是掌握多样化测试技术手段,或是更快的发现bug,或是发现更深层次的bug。
最后,一个合格的测试架构师要能抽象并创新出新的能应用于本身团队的测试技术。
这里说合格,估计有点高,我们可以看到开发架构师,能够抽象并开发新的设计模式的毕竟是少数,内部团队使用的设计模式相对来说容易一点。那么对于测试架构师也是一样,需要针对新的业务模式,新的系统架构模式抽象和创新出新的测试技术(需求分析技术,测试设计技术,测试执行技术,优秀的工具),并能实践与公司内部团队,并提供新测试技术指导和完善,如果能够服务于整个测试行业的测试人员的话,那就成了真正的大师了,我们的24个经典的设计模式不就是真是大师开发的吗。就好比等价类分析或因果图分析一样,牛B的测试架构师就应该可以开发或创新出类似的测试技术出来,让所有测试人员能够快速的进行测试设计,提高测试覆盖率。
总结:
这里用到了测试技术,个人理解的需要再次强调一下,由于是和设计模式相对,本来个人觉得使用测试模型更合适,类似于探索式测试的三大模型;但后来觉得有点狭隘,相比较与开发架构师所掌握的技术来说,测试技术要少一些,但是测试需要站在整个系统质量的角度来看,就必须在了解这些开发技术上,充分的利用测试技术来体现出自己的价值,就是提供最优的服务。所谓最优就是在成本,质量和进度上达到完美的结合点,那么测试架构师的作用就是帮助一个测试团队怎么去找到这个结合点,怎么去实施并取得相应的结果,怎么能去不断的优化自己提供的测试方案,测试技术指导,优秀工具等。
对于一个开发人员来说,我们敬佩一个开发架构师,绝不是因为他代码写的好,写的快,没有bug,最关键的是他能给我们在开发过程中,甚至在未来的新技术中都能提供很好且很合理的建议和指导。那么我作为一个测试人员,我也会敬佩一个测试架构师,我敬佩他的原因肯定是他能完全的透析我要测试的项目或系统,并给出非常合理的测试策略或方案,对于一些异常或特殊模块进行测试技术的指导来提高测试覆盖率,也可以快速的进行开发小工具帮助我进行更有效的测试,更多异常的测试。这些技能无不需要厚重的测试技术的积累和相关经验的抽象和创新。
原文链接:http://www.cnblogs.com/guaiguai/archive/2011/01/28/1946977.html
分享到:
相关推荐
讲到设计模式,人们首先想到的语言就是c#或者是java,最不济也是c++,一般来说没有人会考虑到c语言。其实,我认为设计模式就是一种基本思想,过度美化或者神化其实没有必要。其实阅读过linux kernel的朋友都知道,...
1 欢迎来到设计模式世界:设计模式入门 模拟鸭子应用 Joe想到继承 利用接口如何? 软件开发的不变真理 分开变化和不变部分 设计鸭子的行为 测试鸭子的代码 动态地设置行为 封装行为的大局观 ...
《Head First设计模式》作者Eric Freeman和ElElisabeth Freeman是作家、讲师和技术顾问。Eric拥有耶鲁大学的计算机科学博士学位,E1isabath拥有耶鲁大学的计算机科学硕士学位。Kathy Sierra(javaranch.com的创始人)...
5. **MVC设计模式**:Model-View-Controller(MVC)是一种常见的软件设计模式,特别适合于GUI应用。在本系统中,模型层处理数据逻辑,视图层展示用户界面,而控制器层协调两者之间的通信。 6. **异常处理**:Java中...
12. **设计模式**:介绍常用的设计模式,如单例模式、工厂模式等,并探讨它们的应用场景。 13. **最佳实践**:总结一些开发过程中的最佳实践,包括代码规范、重构建议等。 通过以上内容的学习,读者不仅能掌握Java...
1 欢迎来到设计模式世界:设计模式入门 模拟鸭子应用 Joe想到继承 利用接口如何? 软件开发的不变真理 分开变化和不变部分 设计鸭子的行为 测试鸭子的代码 动态地设置行为 封装行为的大局观 ...
1 欢迎来到设计模式世界:设计模式入门 模拟鸭子应用 Joe想到继承 利用接口如何? 软件开发的不变真理 分开变化和不变部分 设计鸭子的行为 测试鸭子的代码 动态地设置行为 封装行为的大局观 ...
另外,这本书还讨论了Java的高级主题,比如反射、代理、设计模式、网络编程等,这些内容对于想要深入了解Java语言的读者来说非常有帮助。书中还包含了一些关于软件开发的现代观点,例如敏捷编程、测试驱动开发等,...
Java考试通常包括Oracle Certified Associate (OCA), Oracle Certified Professional (OCP)等,涉及的内容广泛,从基本语法到高级设计模式都有可能。 【详细知识点】: 1. **基础语法**:Java的基础语法是解答任何...
4. **MVC模式**:应用Model-View-Controller设计模式,分离业务逻辑、数据模型和用户界面,提升代码可维护性。 5. **会话管理**:了解如何在JSP中实现用户会话跟踪,以便在不同页面间保持用户状态,例如保存用户的...
3. **Struts**:Struts是基于MVC(模型-视图-控制器)设计模式的Java Web框架,它帮助开发者构建结构清晰且易于维护的Web应用程序。Struts 1是早期版本,而Struts 2则是其后续版本,引入了更多现代框架的特点。 4. ...
由于没有具体的标签信息,我们将根据常见的软件开发实践来探讨可能涉及的编程语言、框架、设计模式和技术栈。 1. **编程语言**: 通常情况下,项目名称中包含“gram”字眼,特别是在与电子设备相关的项目中,我们...
基于struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是MVC设计模式的一种变化类型。Struts是一个web framwork,而不仅仅是一些标记库的组合。但 Struts 也包含了丰富的标记库和独立于该框架工作的...
8. **设计模式**:在Java开发中,可能会应用到各种设计模式,如单例、工厂、观察者等,以提高代码的可读性和可维护性。 9. **日志记录**:项目可能会使用Log4j、SLF4J或Java内置的日志API来记录程序运行时的信息,...
3. **设计模式与架构**:了解并能够应用设计模式是高级程序员的标志。面试中可能会讨论面向对象的设计原则和系统架构,如单例模式、工厂模式等。 4. **软件工程与敏捷开发**:理解软件开发的生命周期,包括需求分析...
Java的“恐龙”还体现在一些过时的设计模式上,如Singleton(单例模式)。虽然单例在某些场景下仍然是有用的,但过度依赖单例可能会导致代码难以测试和扩展。现代Java提倡使用依赖注入和工厂模式来更好地管理对象的...
高级编程通常要求程序员熟练掌握多线程处理、异常管理、反射、泛型编程、设计模式、输入/输出流处理以及网络编程等技术。这些概念对于构建健壮、可维护、高效的Java应用程序至关重要。通过研究文件包中的例子,学生...
- 掌握设计模式,如工厂模式、单例模式、观察者模式等,提高代码的灵活性和可维护性。 7. **测试驱动开发(TDD)** - 学习编写单元测试,使用测试框架如Python的unittest或Java的JUnit。 - 了解TDD的基本流程:先...
合理的设计模式和面向对象原则将使代码更易于理解和维护。 8. **数据存储和读取**:游戏进度或高分榜可能需要持久化存储。你可以使用文件系统、数据库或者Java的序列化技术来实现。 9. **调试和测试**:最后,有效...
此外,Java的开发遵循一定的规范和最佳实践,例如SOLID原则、MVC设计模式、TDD(测试驱动开发)等。如果"fuvar-master"包含了测试代码,那么说明该项目遵循了良好的开发习惯,测试代码可以帮助确保代码质量并减少bug...