软件测试与开发的未来

 今天与何老大的一些交流,引发一些心中很久的感想表达一下,主要是针对我们开发过程一些幻想,最后给出实现的规化方式。

  1、云开发平台

  我们开发人员整天忙忙碌碌,重复最多的就是编写代码->编译->简单测试->改代码->编译...

  云开发平台正是为解决这个问题而来,它是什么呢?

  所谓云,就是对使用者透明,所谓云开发平台,是指对我们开发人员(测试人员)几乎透明的编译调试环境。

  你要做什么?

  告诉它你的项目地址,告诉它你的编译方式。

  它帮你做什么?

  1、监控你的项目,有提交时帮你编译,返回编译结果。

  2、准备环境,提供一个云端返回的编译完成的主机(我们的测试机),可以登录ssh进行测试。

  2、开发过程自动化测试

  我们现在正在测试前移,甚至在需求阶段介入,我这里不关注需求的测试方法,只说测试前移怎么去做? 我们现在在强调前期的代码审查测试,前期的逻辑检查,这些属于白盒但是静态检视,我以为这些可以去做好,但仅仅对前期测试来说能暴露的问题有限,更多的时候需要靠更多的编码经验。

  而开发人员在编码时更多的时间花费在调试(大约80%不为过),这部分工作实际上可以减少很多,而且大家也知道,如果更多的时间用来设计与编写高质量代码,测试的工作量也会更少,能够有效提高整个研发效率,而现在的问题是,开发不知道如何利用工具改进开发过程。

  开发过程自动化测试是指,提供一种易用性框架,利用自动化测试优势,将过程的重复工作实施自动化测试,将每次都需要验证的测试点实现自动化验证。

  效果是:

  开发设计完成,开发编码。

  测试前移,准备测试点,编写自动化用例。

  利用某一个统一的平台进行交付自动运行。

  难点一:对测试人员要求较高,但我们可以培养。

  难点二:对开发有一定惯例限制,但每一次的限制用的好可以带来更大的自由(好处)。 像如今满大街的智能机不是对键盘的限制使用吗?

  最后一点,也是最宏大的。

  3、研发管理平台:

  越来越多的流程,越来越繁琐的文档,越来越混乱的IT系统,经常这个账号记不清另一个账号无法登录的。

  申请序列号这种小事都需要助理来处理,试想我们如果有一套完善的认证系统不可以自动下发序列号吗? 系统会记录的更清楚。使用的人也会得到最快速的响应。

  开发改了需求没有通知我!!!

  忘了xx文档的svn地址了!!! 找其他人问还十分不好意思,有时候还得不到立刻答复,又影响他人。

  SQA累死累活的跑路收集各种信息,但却依然可能受到大家的数据置疑。

  一项流程更新,通报了全研发体系却大部分的人在真正执行时仍然遗忘。

  。。。

  问题已经比较突出了。我们应该怎么做?

  研发管理平台,正是我们的需要。

它的核心功能:

  1、统一接入认证体系。保证内网安全可靠,并提供完善的日志。

  2、集成研发流程,提供从需求到发布的过程跟踪。 可强制限定开发经理与测试经理的活动。 并做到智能提醒。( 试想,每天我作为开发经理只需要登录一下系统就知道接下来该干什么, 每天只需要一次提交每日进展即可,并可随时查询项目成员的代码提交质量; 而项目责任人无需过多信息,通过研发管理平台即可收集到项目的信息)

  例如,需求过程可以简化, 只需要一次录入需求, 以后每次需求变更,所有相关人员自动接受邮件,任何需求过程均被记录,系统发布前提供需求完成情况,自动形成可发布文档。

  3、集成自动化测试, 提供统一的静态扫描并与ATM做接口。提供数据仓库可以随机构建有效数据,提供虚拟化硬件平台,任何人在需要的时候一键获取测试主机进行快速接入验证。

  4、具备数据分析甚至挖掘能力,提供一定的SQA职责,供决策使用。

  我们来初步分析一下,

  1、云开发平台

  实现难度: 中(监控svn应该不成问题, 提供调试编译环境,这点可通过部门虚拟设备解决,我们自动化已经基本解决虚拟设备实现克隆,开启,关闭,甚至修改ip,执行任何命令的操作,剩下的就是工作量与需求问题, 其他难度在于解决不同环境部署的约束)

  实现工作量: 低

  实现效果: 能够节省每个开发人员的重复操作并易出错的问题。

  限制: 需要开发人员配合实现代码文件存放和命名约束,以及相关需求细化。

  2、开发过程自动化测试

  实现效果:大规模提高发包与测试回归速度

  实现难度:中

  实现工作量:中(在于如何设计一个简单易用的框架来快速编写和执行自动化,这里与ATM平台不同的在于它是轻量级,更易于完成非关键字级的验证。并支持更多的语言。)

  3、研发管理平台

  实现效果最佳。

  这个就不分析了,可以通过分步去做。

  为什么想到这些?

 首先,测试与开发是分不开的。我们测试的目的,保证版本质量,另一个也十分重要的在于提高测试效率。

  开发的目的,快速高质量发布新版本,高可维护。细致一想,提高测试效率不简单在于测试过程,而是整个开发过程; 而高开发快速发布一部分依赖于测试的快速测试,除了高可用的架构以外,依赖于快速有效的自动化,依赖于高效率的工具。

  不然,开发每次迭代10%开发,测试验证110%的功能局面无法得到任何改变,我们又苦又累却得不到结果。

  为什么单元测试在我们项目中实施失败?

  1、没有好用的工具, 如果有一个只需要写业务测试代码的单元测试框架被牛人整合出来,何担心没人去用?

  2、没有明确的目标,或对目标效果要求太紧。 我们缺乏十分有效的数据度量,缺乏有经验的人,仅仅靠人的自觉基本上很难推行这些项目走向成功。

  关于开发语言,

  大多数人就像大多数人一样倾向于选择大多数人使用的语言, 而谓之于“最佳实施”...

  而如果我说,学一门脚本语言吧,你可能会说, 没听说过图灵等价吗?( 意指 任何计算机语言的表达能力是等价的,一门语言可以完成的事件,理论说另一门语言肯定可以完成) 脚本语言啊,太弱了吧? 不能开发大项目吧?

  实际上,目前是Lisp类的语言的天下,从perl开始, python, ruby已经不只是开发小型项目了。大家都在使用vCenter的时候,知道它是什么写的吗? 实际上,它的web页到启动脚本均用的python。 javascript已经火了N久了,最近的Node。js把它从前端发展到后端。

  是什么原因? 高效的开发效率, 强大的表达能力, 越少的代码往往意味越少的维护成本。有兴趣的同学可以关注下<<黑客与画家>> 作者是硅谷的投资之父,揭秘了viaweb快速开发的秘密。

  我们可以尝试部分内部项目采用它。

  关于开发效率, 最近关注:

  github.com(一个git托管平台) 开发语言rails,python,ruby 开发周期,3个人3个月上线(2008年),目前管理项目5000万

  zhihu.org(一个知乎类似的问答) 开发语言rails,开发周期1周2个人。

  淘宝运维平台(内部)(一键发布平台,目标:关闭运维部门,说笑了,这个正是运维部门在做:) )开发语言rails, 开发周期6个月1个人,目前基本上线。

  如何充分利用动态语言的开发效率可以在这些内部项目更快的发布与维护。

  说这样好像与上面没关系啊, 就像老大说的,没有人限制你要做什么。能够达到目标的一切措施都可以试试。

  以上一点想法,吐吐为快。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-29 20:14:21

软件测试与开发的未来的相关文章

专业软件测试人员发展的未来

专业软件测试人员发展的未来 根据Google/微软一些大公司开发和测试融合分工新的趋势,未来的IT世界有可能会发展出一种新的场景和分工: 基本的功能测试设计执行和白盒测试技能应该让所有开发人员都所具备,然后才能解放出专业的测试人员去做复杂的测试工作(非功能测试.beta测试.测试执行平台打造等),有时间去研究如何提高整个研发团队的测试质量与测试效率,更好地辅导开发人员掌握基本测试技能,当然开发人员依然要通过交叉测试来解决测试心理学的问题(不能自己测试自己).开发将对自己的局部代码质量负责,测试专

移动应用开发的未来:Java与HTML5

位于旧金山培训公司Marakana Inc的CEO Mark Gargenta说,移动应用开发的未来在于混合应用的涌现,那时Java代码.t和HTML5混乱的工作就会得到建议,并由Android架构师和设计师接手. 混合Android应用有一些特别的功能,是由HTML5编码,另外一些功能是在本地Java中编码的.HTML5与本地应用的二分法产生了一些问题,如应用的哪一部分应该使用基于浏览器技术开发,而又是哪一部分应该使用本地代码开发.TechTarget网站向Gargenta寻求了这些问题的答案

英特尔以8.84亿美元收购加州软件测试及开发公司

6月5日消息,英特尔昨日宣布,将以8.84亿美元收购加州软件测试及开发公司Wind River Systems. 英特尔称,将以每股11.50美元的价格收购Wind River Systems,与Wind River Systems周三8美元的收盘价相比溢价44%.整个收购将以现金方式完成,总价约8.84亿美元. Wind River Systems位于加州Alameda,创建于1981年,主要帮助其他公司开发和测试软件,拥有员工1600人. 英特尔表示,此次并购有助于公司为嵌入式系统和移动设备

三星正在加紧开发与其未来旗舰设备配对使用的增强现实头戴设备

Engadget 获得消息称三星正在加紧开发与其未来旗舰设备配对使用的增强现实头戴设备.消息称前段时间刚被 Facebook 收购的 Oculus Rift 以及索尼的 Project Morpheus 将是这款 VR 设备所瞄准的竞争对手. 据称一些高级开发者已经获得该设备的早期版本,但最终面试的零售版将会是一款有着更强大性能的外设,也就意味着其理想配对设备将只能是未来的三星旗舰机型.三星将会使用自家的 OLED 显示屏,最低参数也会与 Oculus 的最新产品持平,后者采用的是 1080p

软件测试管理艺术的未来

概述:什么是测试管理的艺术?在物联网.云技术.移动互联网的兴起发展,三网合一成为大趋势的未来,测试管理艺术又将何去何从呢?本文旨在与对测试管理感兴趣的同仁进行探讨. 名家名言 艺术不是你所看到的东西,而是你让别人看到的东西. --埃德加 德加(Edgar Hilaire Germain de Gas) 什么是测试管理的艺术? 一提到艺术我们马上就会想到绘画.雕塑.戏剧.建筑.舞蹈.诗歌等等,但在这里我们要讨论的,是关于测试管理的艺术.首先我们来看,什么是测试?ISTQB为测试做了如下定义: 测试

七大趋势 揭秘移动应用开发的未来

毋容置疑,移动应用程序开发是一个不断发展和利润丰厚的行业,每年下载的移动应用程序带来的产值高达1790亿.当Gmail.facebook.Instagram.YouTube.twitter纷纷创造了在线社交世界,地图app.购物app和支付app让我们的生活更加便利,同时节省了大量时间和金钱.诸多原因把移动应用程序开发事业推向高峰,许多移动应用公司肯花大价钱让最好的开发人员构建他们的应用程序. 应用程序开发人员不仅帮助企业研发产品,而且帮助企业提升品牌形象,提高客户得参与度,协助市场营销等等.就

Web 开发的未来:React、Falcor 和 ES6

Widen是一家数字资产管理解决方案提供商.目前,其技术栈还非常传统,包括服务器端的Java.浏览器端的AngularJS.提供REST API支持的Jersey以及jQuery. Underscore.lodash.jQuery UI和Bootstrap等各种库.近日,该公司的首席开发人员Ray Nicholus在一篇文章中提出了一个面向未来的Web开发技术栈,用于取代现有的工具. 虽然他们已经习惯并信任现有的技术栈,但为了实现以下几个目标,Ray希望引入一个全新的技术集合: 一种新的.闪亮的

为什么说&quot;微 PaaS&quot;代表着未来应用开发的方向?

Docker 的出现,让应用 "容器化"的门槛前所未有地降低,而这一切都在改变着我们开发应用的方式. 今日不同以往.过去,一个单一的代码库就意味着一款应用功能的全部:而现在,应用被分解成为不同的功能性"片段",你可以称它们为"微服务",这些"微服务"共同发力,从而形成一个应用. 与此同时,程序员们发现自己在线上搭建运行这些应用越来越困难了.原因是这些应用不断演化,那种"以平台作为服务(PaaS)",一个平台

微软软件研发策略转变之路 从瀑布式走向敏捷开发

长久以来,身为"软件开发商"的微软的名声并不太好,倒不是人们对微软的软件产品不满意,而是其更新周期太过漫长,比如Office.Windows.SQL Server和Exchange等主打产品的更新周期都长达3年左右,这其中的主要原因就是微软在软件项目的开发中采用了瀑布式开发模式.但随着用户对软 件的需求越来越苛刻,瀑布式开发模式已经难以满足新型软件的开发要求,而微软也不得不改变自己的软件研发策略. 国外科技媒体Arstechnica日前发文对微软软件研发策略的转变之路进行了分析. 以下