敏捷开发的QA再怎么做
敏捷测试就是要求尽早测试、频繁测试,及时提供反馈。为了快速响应、迭代上线
敏捷QA主要体现在:
敏捷QA需要在参与的,QA并行的同时工作在多个迭代:可能在当前迭代进行验收测试同时分析下一个迭代,编写和测试用例。
1..质量的快速反馈,便于调整。
2.每个阶段提出自己的建议,不能等到结束
3.保证质量下限,对于PRD的输出还是要有一定标准
4.发现风险
敏捷要做哪些:
持续集成:通常每人每天至少集成一次,每次集成通过自动打包,静态检查,自动上传部署(脚本实现),自动单元测试(开发有一套单元测试脚本),自动集成测试(自动化用例测试),自动发邮件 。早上来第一个事情当天要解决,清零。避免产品最终集成时爆发大量问题。
每日晨会看板:每个团队每天大概花15-30分钟,回顾昨天做了什么、昨天有些什么问题、介绍每个人今天计划做些什么工作(特点:是站着开会)。。QA可以参加晨会,根据自己的观察提出问题。:用户故事可以用看板,QA任务可以用看板管起来,
结对编程:两位程序员在一台电脑前工作,一个负责敲入代码,而另外一个实时检视每一行敲入的代码;
用户故事:用户故事强调编写验收测试用例作为验收标准,QA可以引导项目团队如何编写用户故事、验收标准。
迭代回顾会议:在每轮迭代结束后举行的会议,目的是分享好的经验和发现改进点,促进团队不断进步。会议结论要跟踪闭环。QA同样可以参加回顾会议,引导团队如何召开,并跟踪改进事项。
DevOps分成以下过程
持续集成:频繁进行集成以便快速发现问题。
持续交付:将完成测试的代码都可以上线的,会部署到“类生产环境”中 由PO决定。
持续部署:已交付的代码在通过评审之后,自动部署到生产环境中。
持续监控:通过专业的监控软件,按事先设置的监控策略,监控业务应用以及系统平台的运行情况,形成监控报告和监控展示。
持续反馈:基于监控的结果作数据分析,提供建议方案,如针对应用的监控,实现应用的弹性伸缩等能力。
持续改进:基于反馈的意见,启动新的改进计划流程。
devops工具链支持上面的技术
1、监控工具
比较老牌的就是Zabbix,Nagios,用Zabbix的感觉是最多的。
国内的有小米开源的OpenFalcon。
这类监控工具一般是对服务器、服务(中间件,数据库)做一些常用指标的监控。
2、性能分析/APM工具
APM很多时候被认为是监控的一个细分领域。
但在现代复杂分布式系统架构下,APM工具往往更能准确、直接的帮助用户定位到性能瓶颈,比如哪一个URL访问慢、哪一个方法执行慢、哪一个SQL执行慢。
现在商用的APM工具不少,国外的有Newrelic,国内知名的就有听云、Oneapm、透视宝这些。
开源的也有Pinpoint(naver开源)、Zipkin(twitter开源)、CAT(大众点评开源).
3、批量+自动化运维工具
这里就比较多了,知名的有Puppet、Ansible、Chef、Saltstack这些。
Puppet和chef是比较早期的工具,受众面也很大,不过这两个工具基于ruby实现,现在要找到熟悉ruby的人来做这块的二次开发可不容易。
而ansible和saltstack则相对新生代一些,目前用户基数增长很快,基于python实现,要找做二次开发的人也相对容易的多。
4、集中日志分析工具
在一个服务器比较多的环境下,如何集中的管理和分析、查询日志,已经变成一个比较强的需求了。
想象一下,如果发生了某个错误,你还得一台台机器去翻日志文件,是不是很蛋疼。
在这个需求驱动下,就诞生了一些集中日志分析工具。
在开源领域,比较知名的就是ELK这一套工具了,涵盖了日志采集、上报、搜索、展现这一类基本需求,现在比较多的上规模的企业都用这个,网上资料也大把。
核心实现机制都是通过一些日志采集代理(类似Filebeat)去爬日志文件,将最新的部分提交到采集服务端,后端再对接搜索引擎,能支持很快速、准确的搜索即可。
有一个国内不怎么知名的Sentry日志收集服务,比较轻量级,本身是Python做的,与各种语言的日志框架做了非常好的集成,可以很方便的集中收集异常日志,并分配给对应的开发人员。
它在github上有10000多个star了,这在DevOps相关的软件里,都是排名非常靠前的了。
5、持续集成/发布工具
我接触的人都是用Jenkins的,没有用其他的,可能跟我所在的技术圈子有关。
集成打包的过程其实一般都比较简单,配好版本库和打包脚本就行。
但发布的过程就比较复杂,有些是全量发布,但也有非常多的IT团队采用增量发布。
这个方面如果想用工具,还是得先分析清楚现有的发布流程,手工情况下怎么做,哪些能通过自动化工具来完成。
6、IaaS集成
最近两年的公有云推广比较迅速,很多新的服务器采购都被导入到云上去了。
现在主流的公有云都提供了比较完备的API,基于这些API也可以做一些针对基础资源的自动化操作,比如游戏行业的快速开服。