前言     接触了许多非测试和新入行的测试从业者,听到最多的问题就是:“测试是否被需要?“   团队职能介绍     <暗黑者1>中有句台词,“专案组有五个职能角色构成,侦探.网警.痕迹侦查专家.法医还有心理学专家”.     软件项目开发也是个分工明确的系统工程,不同的人员扮演了不同的角色,可以分为:项目.产品.开发.测试.美工等等.       项目经理负责分配资源,确定优先级,协调与客户和用户之间的交往.     产品经理负责市场调查并根据产品.市场及用户等的需求,确定产品功能的定义.…
重复无聊的定义 测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法.它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行.这有助于编写简洁可用和高质量的代码,并加速开发过程.(来源百度百科) 重复无聊的过程 测试驱动开发的基本过程如下: 快速新增一个测试(编者注:并非快速) 运行所有的测试(有时候只需要运行一个或一部分),发现新增的测试不能通过 做一些小小的改动,尽快…
如今,随着移动互联网的浪潮越翻越涌,移动APP测试工作的现状已经成了那本"家家难念"的经.不管公司大小,不管测试哪种类型的APP,让广泛测试者苦不堪言的就属重复性最多,测试工作量最大的功能测试.而这个系列文章将逐一解构一些问题. 笔者通过对目前大型的安卓市场和APPstore进行调查,其实我们可以发现每天都不乏有有创意的,能够针对市场需求的APP上线,但不管当时这些APP是不是排在榜单前列,过不了多久,它们便在应用市场中销声匿迹,变成所谓的"僵尸"应用. 面对这些如…
摘要 本文介绍了传统软件开发(着重介绍了传统软件开发中常用的瀑布模型)和敏捷软件开发,以及敏捷开发和传统开发的对比. 一.传统软件开发 比较常用的几种传统软件开发方法:瀑布式开发.迭代式开发.螺旋开发作了对比分析. 瀑布式开发:1970年Winston Royce提出了著名的"瀑布模型",直到80年代早期,它一直是唯一被广泛采用的软件开发模式,瀑布模型将软件生命周期划分为制定计划.需求分析.软件设计.程序编写.软件测试和运行维护等六个基本活动,并且规定了它们自上而下.相互链接的固定次序…
Alpha: Alpha是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用. 是希腊字母的第一位,表示最初级的版本 alpha就是α,beta就是β alpha版就是比beta还早的测试版,一般都是内部测试的版本 -------------------- Beta: 很容易理解就是测试版,这个阶段的版本会一直加入新的功能. RC:RC就是Release Candidate(候选版本)的简称 Candidate是候选人的意思,用在软件上就是候选版本.Release.…
不久前,我接受了51Testing的访问,讨论了软件测试的一些问题.以下是全文. 1.史亮老师,作为我们51Testing的老朋友,能和我们说说您最近在忙些什么吗? 自2011年起,我加入Microsoft Office部门,参与了Microsoft Office 2013的研发,主要工作是测试Windows版本的Office产品.目前,我正参与研发下一代的Microsoft Office,主要工作是测试产品和开发测试辅助工具. 今年,我的新书<软件测试实战>问世.这本书基于一个很朴素的想法:…
<软件开发与创新:ThoughtWorks文集:续集> 基本信息 原书名:The thoughtWorks anthology, volume 2:More essays on software technology and innovation 作者: 美国ThoughtWorks公司 译者: ThoughtWorks中国公司 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115342942 上架时间:2014-2-14 出版日期:2014 年1月 开本:16开 页码…
[转]James Bach:测试人员的角色 2015-05-13 以前,我是个开发人员.我不喜欢这个工作,无尽的压力让我疲惫.我几乎从未感觉到自己的工作做得足够好.我从未有过真正的休息.如果我没做好,我们就可能超过最后期限,或者是发布了一个垃圾产品.此后成为一个测试经理(test manager),感觉就像是休假一样. 测试同开发比起来,是一个非常模糊的工作——有很多的余地.我要做的仅仅是找问题. 我曾经认为测试的职责就是找问题. 找问题很简单,但是时间长了就会发现这样很难让人满意.我想让产品变…
敏捷软件开发_实例2 上一章中对薪水支付案例的用例和类做了详细的阐述,在本篇会介绍薪水支付案例包的划分和数据库,UI的设计. 包的划分 一个错误包的划分 为什么这个包是错误的: 如果对classifications更改就要影响payrolldatabase更改,还会迫使transactions更改,tansactions重新发布和编译测试就是不负责的,transactions没有共享封闭性,每个类都有自己变化的敏感,所以发布的频率非常高,是不合理的. 调整一下: 将具体类和具体类打包,抽象类和抽…
如今在软件开发圈里混,Agile,DevOps,Cloud是大家经常挂在嘴边的词,其实大家各自都有在应用层上的经验,但是如何把三者很好的结合起来,这是所有项目管理者困惑和需要的问题. Agile让我们的项目更加拥抱变更. 持续集成和持续交付让我们更快的进行自动化交付. 自动化持续部署也让开发团队,运维团队受益颇多. Infrastructure也逐步向Cloud迁移. 作为一个软件开发的项目经理,我的团队一步步推进,演变,一切都那么地和谐.虽然我们在最大化地自动化,工具化,无论是管理层还是项目团…
1 引言 真正的问题,不是电脑是否具备思考能力,而是人类是否具备这种能力                     ________B.F.Skinner<计算机科学> SaaS模式不同于传统软件不仅仅体现在运营的服务上,同时在软件开发的方式和技术上也有很大的不同. 如何开发SaaS软件,开发SaaS软件将用到哪些技术这都是我们要研究的主要内容. 2 实现SaaS软件的关键技术 l SOA技术 SOA与SaaS被被称作挛生姐妹确实并不为过,SOA与SaaS是现代软件服务领域的二架马车,它们奔蹄狂…
前言:流程是由若干个任务节点组成,流转过程就是从一个节点转移到下一个节点,通常需要不断切换用户身份来完成流程的测试,这样使得测试效率比较低下,本文从实战出发,介绍常见的两种快速测试方法,用于提升流程测试和实施的效率. 1. 流程快速测试介绍 流程引擎的核心功能是保证流程正常流转,流程是由若干个节点组成,真实的业务系统是每个用户完成各自的任务后,分发给下一步任务节点,再由下一步的任务接收人员办理任务,以此循环前进,直至流程流转结束. 如果按照这样的测试策略,每一步都需要变换用户身份来完成功能测试,…
操作系统 解释堆和栈的区别. 分配在堆的内存与分配在堆栈的内存有什么不同 分配在堆的内存要手动去释放 线程与进程的区别 多线程中栈与堆是公有的还是私有的 在多线程环境下,每个线程拥有一个栈和一个程序计数器.栈和程序计数器用来保存线程的执行历史和线程的执行状态,是线程私有的资源. 其他的资源(比如堆.地址空间.全局变量)是由同一个进程内的多个线程共享 mutex mutex - C++ Reference http://www.cplusplus.com/reference/mutex/mutex…
对公司招聘职位有兴趣的童鞋可以把简历发送到zhangzhiqiang@ymatou.com,我们HR会快速给你答复. 互联网软件开发工程师 岗位职责: 1.参与洋码头各个平台(www.ymatou.com/www.xlobo.com/洋码头APP扫货神器)的开发 任职要求: 1. 5年以上相关工作经验: 2. 熟悉ASP.Net框架,熟练掌握.net(C#)及MSSQL开发技术,熟悉webService.熟悉Linq,对Web开发技术(Ajax.HTML.JavaScript.jQuery.CS…
在测试过程中和不同开发合作,往往会发现一些bug都是大多数开发人员常出现的错误,为了帮助开发人员,也减少测试的重复工作量,非常有必要将以往出现的bug做整理,分析原因,让开发知道这些bug, 避免再次出现, 让测试人员腾出更多的时间去发现新的bug, 所以,测试开发需要做bug预防. Web测试bug预防: 1. 分辨率. 在不同分辨率下网页显示的效果和状态,这个需要产品人员在产品开发之前就明确的. 2. 浏览器的兼容性.明确需要兼容哪些浏览器及浏览器的版本(360,IE,Chrome,fire…
手机这个词早已经同吃喝玩乐一样.成为了人们生活中的必备元素. 尤其是iPhone一炮走红之后,不但手机世界发生了巨大变化,整个科技产业似乎都格局性的改变.直至今日,手机市场的竞争更是日趋白炽化,这就给软件开发人员再次创造了空前的机会.然而厂商家数众多,对应的操作系统也是林林总总,作为软件开发人员不管是个人还是公司都面临着系统选择之惑.究竟选择哪一家,选择哪一类系统才干获得丰收,将与当年PC系统选择一样,会深深困惑每一位程序开发人员.接下来就由笔者给大家扒一扒手机软件开发人员的系统[注1]选择之道…
对于刚接触软件开发的初学者,在下载eclipse时,对官网上面提供的各种版本的选择犹豫不决.下面将对常用的几个版本进行介绍. Eclipse版本 Eclipse Standard 该版本是eclipse最基础的版本,适合Java se个人开发者.或希望根据自己需求配置插件的开发者使用. Eclipse IDE for Java EE Developers 该版本集成了Java ee开发常用插件,方便动态web网站开发.适合Java web开发者使用.集成了XML编辑器.数据库查看工具,提供jsp…
前言   目前主流国产芯片为RV11XX.RK33XX.Hi35XX系列,本系列开启Hi3516系列的开发教程.   Hi3516DV300芯片介绍   Hi3516DV300为专业行Smart IP Camera Soc. 主要特点      芯片逻辑框图    Hi3516DV300 HD IP专门用于做摄像机解决方案      开发板 开发板实物    开发板资源        开发版本提供资料   总的资料如下:    我们主要用到的就是"03硬件文档"和"04海思原…
一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端   24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器    想体验服务的时候才会去找服务端体验服务 S:服务端    24小时不间断的提供服务,即时监听,随时待命 实际上B/S架构也是C/S架构的一种 两种事物要想相互通信最基本的方式是通过一个规定好的协议去执行,然后就能得到有效沟通(通信),比如不同国家的人要想互相通话就得有个全球的语言标准——英语,全世界基本语言就是英语…
简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项目中涉及到的知识点,例如DTO,应用服务层,整洁架构,领域对象(如实体,聚合,值对象)等. 笔者也曾经提到,ABP依赖于领域驱动设计这门方法论,由于其门槛较高,给使用者带来了不少理解上的难度.尤其是三层架构对.NET开发者影响太深,有时很难对领域驱动设计产生直观的理解. 在本文中,打算从传统的简单三层架构谈起,介绍一个实际场景下的三层业务逻辑实现,然后再与领域驱动设计中的对应实现形成对比,以便让开发者形成直观…
敏捷软件开发:又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新兴软件开发方法,是一种应对快速变化的需求的一种软件开发能力. 与传统软件工程相比,它们的具体名称.理念.过程.术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作.面对面的沟通(认为比书面的文档更有效).频繁交付新的软件版本.紧凑而自我组织型的团队.能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中"人"的作用. 本文将介绍敏捷软件开发的历史背景与发展,…
原文作者:kkun 原文地址:http://www.cnblogs.com/kkun/archive/2011/07/06/agile_software_development.html 敏捷是什么 敏捷开发是一种软件开发方法,基于迭代和增量开发,通过自组织,跨团队,沟通协作完成开发工作. 敏捷宣言的诞生 2001年2月11日到13日,17位软件开发领域的领军人物聚集在美国犹他州的滑雪胜地雪鸟(SnowBird)雪场.经过两天的讨论,“敏捷”(Agile)这个词为全体聚会者所接受,用以概括一套全…
软件开发过程(process) 是一个将用户需求转化为软件系统所需要的活动的集合. 软件生命周期(SDLC,Software Devlopment Life Cycle) 软件从孕育.诞生.成长.成熟.衰亡等阶段称为软件生命周期. 早期系统开发的生命周期以结构化的方法具体分成了六个阶段:问题的定义及规划.需求分析.软件设计.程序编码.软件测试.运行维护. 而随着面向对象方法和统一软件开发过程(RUP)方法论的提出,出现统一过程的生命周期,在统一过程中以迭代的方式重复一些列组成系统生命周期的循环,…
UML http://www.uml-diagrams.org http://www.umlchina.com/index.htm 统一建模语言(UML)始于1997年的一个OMG(对象管理组织)标准,它是一种图形化.可视化的语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置. UML是一种建模语言,而不是一个开发过程. UML统一了各种方法对不同类型的系统.不同开发阶段以及不同内部概念的不同观点,从而有效的消除了各种建模语言之间不必要的差异.它实际上是一种通用…
AC6102开发板USB3.0测试和使用说明 概述 AC6102上集成了一颗Cypress 推出的高性能USB3.0传输芯片CYUSB3014,Cypress称之为EZ-USBFX3.该芯片性能强劲,功能强大,接口简单,非常适合用于各种需要高速数据传输的场合,以下为摘自EZ-USBFX3数据手册中关于该芯片的介绍: 赛普拉斯EZ-USBFX3是新一代USB3.0外设控制器,具有高度集成的灵活特性,可帮助开发人员为任何系统添加USB3.0功能.EZ-USBFX3具有一个可进行完全配置的并行通用可编…
敏捷软件开发 VS. 传统软件工程 软件工程这一术语1968年被提出,之后美国软件工程专家巴利·玻姆对十多年间研究软件工程的专家学者们提出的一些准则与信条,于1983年对提出软件工程的七条基本定理,将软件工程这一学科具体化,软件工程中开发与管理软件的方法也不断完备.而敏捷软件开发于2001年由Kent Beck和其他16位知名软件开发者提出,敏捷开发是人们对于传统软件开发方式的一种提出的新的挑战.本文将具体介绍软件传统工程与敏捷软件开发两种方法,并对两者进行对比分析. 一.传统软件工程 软件工程…
简介 TCL集团股份有限公司创立于1981年,是全球性规模经营的消费类电子企业集团之一,广州2010年亚运会合作伙伴,总部位于广东省惠州市仲恺高新区TCL科技大厦.旗下拥有TCL集团.TCL多媒体科技.TCL通讯科技.通力电子等四家上市公司.形成多媒体.通讯.家电和部品四大产业集团,以及房地产及投资业务群,物流及服务业务群. 笔试 笔试主要由两部分组成 性格测试,网申完后就会发邮件到你的邮箱要求你进行性格测试 专业测试,性格测试后的一两天就会要求你上完进行专业方面的测试,考得相对比较基础,主要考…
前言: 最近在研究Modbus开发,如果只是简单的了解了一些modbus基础知识,但是不够系统和全面. 其实,modbus虽然比较简单,但是如果不注意有很多坑,特别是寄存器的位数,大小端处理,浮点数,长整数的处理等等.目前也没有什么合适的书籍系统介绍,帮助理解的. 刚刚搜了一下,只有最近清华出版的<Modbus软件开发实战指南>不错,应该是Modbus开发方面第一书,很系统很全面. 内容着重讲述如何快速入门并精通Modbus软件开发技术,适用于初学Modbus通信协议的读者,可以看看. 清华出…
一.前言:Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成和持续部署变成可能. 本文演示样例是一个JavaWeb项目,环境如下: 服务器:CentOS 7.3.1611主机一台 代码管理:git 编译打包:maven 发布部署:tomcat7 本试验以下下载.解压.执行等操作均在主机/home/centos目录下进行 传统工作模式需要通过手动操作大概完成如下几个步骤: 1.拉取代码…
华为软件开发云配置管理 服务和Github是国内外比较有代表性的代码托管平台,它们以git作为版本管理工具,使项目中身处各地的人员可以协同工作,主要操作涉及仓库.分支.提交.pull request等知识.本文将讲述它们的操作和区别. Github介绍 一.注册 填写个人资料,邮箱激活. 二.仓库 1.仓库类型 私有仓库:每月缴纳7美元,后期可以随时调整成其它免费的公共仓. 公有仓库:免费,所有人可见. 2.新建仓库 一个仓库通常用于单个工程,仓库可以包含文件夹,文件,图片,视频,表格等任何项目…