技术标签: 测试
我的同事肖然在 《ThoughtWorks的敏捷开发》一文中介绍了ThoughtWorks敏捷开发的全貌,并在其中简单介绍了ThoughtWorks是怎么做质量内建和敏捷测试的。我作为一名加入ThoughtWorks已经7年的QA,想更为详细的介绍一下这些内容,希望能帮助业界中仍对于敏捷测试有疑虑和困惑的团队建立起自己的敏捷测试体系和实践,从而帮助团队更好的实施敏捷软件开发。
在目前的软件开发领域,敏捷依然没有被广为采用,很多人诟病其:
其实大多都是在不了解敏捷开发中质量内建与敏捷测试的情况下得出来的。如果只是阅读《敏捷宣言》,是很难以理解其中关于质量内建和敏捷测试的相关内容。所以通过长期的项目实践,我们对质量内建以及敏捷测试总结出了一套自己的理论和实践体系。
业界有很多所谓敏捷开发流程,比如Scrum,Kanban等,但是其中测试相关的内容相对较少,并且不够系统化和细节化,所以业界就出现了很多测试人员,他们总结了测试人员应该在敏捷开发中如何进行测试工作。由于很多测试人员也是公司或者团队在Scrum和Kanban的转型中接触和学习到敏捷,然后通过有限的资料以及自悟在团队中进行敏捷测试,又在一知半解下又去宣传敏捷测试或者去抵制敏捷测试,导致敏捷测试甚至敏捷本身在国内乱象丛生。
首先敏捷测试一定是敏捷开发方法的一部分,所以敏捷开发方法论里面应该需要包括敏捷测试的相关内容,但是现在业界中所谓的一些标准的敏捷开发流程里面却很少包含系统化的测试实践。由于敏捷测试实践或者说敏捷实践的核心就是缩短反馈周期,逐步优化整个系统。并且因为每个团队的情况都是有差距的,所以通过同一种标准的方式去要求所有不同的团队,则会产生很多负面的效果。
现在业界已经有不少通用的敏捷测试实践,以及一些在特定条件下面的经典流程(后面会介绍一个经典的敏捷测试管理流程)。其次对于大规模敏捷开发中的敏捷测试来讲,其核心还是在开发团队里面合理使用各种敏捷测试实践,缩短测试反馈周期。
因此不管敏捷开发还是敏捷测试里面的敏捷都没有一个所谓统一的最终敏捷,应该是需要越来越敏捷的状态才是最好,然后最终达到自己项目的一个稳定敏捷状态就可以。
ThoughtWorks没有Tester这个职位,而是叫做QA。这里的QA不是”Quality Assurance”,而是"Quality Analyst”——质量分析师。其主要工作是在承担项目部分权责的情况下,负责各种质量相关的工作,通过各种实践让团队中所有人都会对质量负责,并做一部分质量相关的工作。
QA每天都可能需要根据不同的情况而相应改变自己的工作内容,虽然每天主要的工作内容仍然是测试相关的各种工作,但是并不一定需要自己独立完成它们,其中还包括把所有团队成员组织起来,一起协作完成这些工作。并通过各种实践,让每个成员都能承担最适合自己的质量相关的工作。QA需要了解并熟悉所有质量相关的活动和工作,并根据项目的情况将它们合理的组合起来使用。我们还总结出了一些敏捷测试的原则:
文章浏览阅读161次,点赞5次,收藏3次。财务数据、员工信息、工资信息、客户和业务数据等被员工非法获取、外泄
文章浏览阅读936次,点赞22次,收藏26次。React核心基础
文章浏览阅读2k次。linux系统查看磁盘空间的命令是【df -hl】,该命令可以查看磁盘剩余空间大小。如果要查看每个根路径的分区大小,可以使用【df -h】命令。df命令以磁盘分区为单位查看文件系统。本文操作环境:red hat enterprise linux 6.1系统、thinkpad t480电脑。(学习视频分享:linux视频教程)Linux 查看磁盘空间可以使用 df 和 du 命令。df命令df 以磁..._df -hl
文章浏览阅读923次。uses ComObj;var ExcelApp: OleVariant;implementationprocedure TForm1.Button1Click(Sender: TObject);const // SheetType xlChart = -4109; xlWorksheet = -4167; // WBATemplate xlWBATWorksheet = -4167_range[char(96 + acolumn) + inttostr(65536)].end[xlup]
文章浏览阅读2.3k次。上图为任务代码,在任务具体执行的方法中使用,一定要写在方法内使用SpringContextUtil.getBean()方法实例化Spring service类下边是ruoyi-quartz模块中util/SpringContextUtil.java(已改写)import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.s..._ruoyi-quartz无法引入ruoyi-admin的service
文章浏览阅读2w次,点赞10次,收藏77次。yum,全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。可以这么说,yum 是改进型的 RPM 软件管理器,它很好的解决了 RPM 所面临的软件包依赖问题。yum 在服务器端存有所有的 RPM 包,并将各个包之间的依赖关系记录在文件中,当管理员使用 yum 安装 RPM 包时,yum 会先从服务器端下载包的依赖性文件,通过分析此文件从服务器端一次性下载所有相关的 RPM 包并进行安装。_centos7配置yum源
文章浏览阅读921次,点赞17次,收藏19次。方位估计是信号处理领域中一个重要的问题,它涉及到了信号的方向和角度的估计。在无线通信、雷达、声呐等领域,方位估计都有着重要的应用。本文将介绍三种常用的方位估计算法:MUSIC算法、加权MUSIC算法和ROOT-MUSIC算法。首先我们来介绍MUSIC算法。MUSIC算法是一种基于信号子空间的方法,它利用信号子空间的特性来实现方位估计。
文章浏览阅读73次。分页指定DOM页页页页页页导入插件。
文章浏览阅读1.1k次,点赞30次,收藏24次。图像分割是医学图像分析中的关键步骤,它可以将图像中的不同组织或结构区分开来。模糊聚类算法是一种常用的图像分割方法,但其聚类中心的选择对分割结果有很大的影响。本文提出了一种基于 Crow 搜索优化(CSO)算法的模糊聚类算法,用于医学图像分割。CSO 是一种新型的群智能优化算法,具有收敛速度快、鲁棒性强等优点。本文将 CSO 应用于模糊聚类算法的聚类中心优化,以提高分割精度。
文章浏览阅读1k次。04 常用组件4.1 TextViewTextView (文本框),用于显示文本的一个控件。文本的字体尺寸单位为sp :sp: scaled pixels(放大像素). 主要用于字体显示。文本常用属性:属性名作用id为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该..._
文章浏览阅读3.7k次,点赞3次,收藏14次。多个定时器同步触发启动是一种比较实用的功能,这里将对此做个示例说明。_stm32 定时器同步
文章浏览阅读348次。出处 : http://www.cnblogs.com/mythou/p/3187881.html本来想分析AppsCustomizePagedView类,不过今天突然接到一个临时任务。客户反馈说机器界面的图标很难点击启动程序,经常点击了没有反应,Boss说要优先解决这问题。没办法,只能看看是怎么回事。今天分析一下Launcher启动APP的过程。从用户点击到程序启动的流程,下面针对WorkSpa..._回调bubbletextview