分享到社交媒体:

本文首发于个人网站「IT技术分享社区_编程代码交流平台」,转载请参考版权声明


敏捷软件软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台:软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台人员与敏捷团队的实践指南》一书的作者Janet Gregory提出了一个新的概念“Holistic Testing”,暂且译为“全面软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台”,指出要从更全面的视角来进行软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台。

她和Lisa Crispin的敏捷软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台课程也因此改名为“Holistic Testing”了。

01 Holistic Testing模型

Janet利用类似于DevOps循环的形式表示软件开发生命周期,分为发现、计划、理解、构建、部署、发布、观察、学习几个阶段,并指出在整个生命周期中的每个阶段都有相应的软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台活动。Holistic Testing模型如下图所示:

(图片来源于:http://janetgregory.ca/testing-from-a-holistic-point-of-view/

Janet对她这个模型有两点关键解释:

  1. 采用无限循环表示,是认为软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台应该是无限循环的,不是线性的,不应该有起点和终点,也不再谈软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台左移和软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台右移的概念。循环的左侧主要是指可以提前进行的软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台活动,确保在“做正确的事情(Do the right things)”;循环的右侧则是指通过软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台活动来发现错误并学习,以帮助“正确地做事情(Do the things right)”。
  2. 为啥不叫持续软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,是觉得持续软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台的概念被误用了。现在大家普遍会将持续软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台跟持续集成工具平台关联,认为持续软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台主要是指自动化软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,但Janet认为软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台不仅是自动化软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,还包括必要的手动软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台活动环节。

更多关于Holistic Testing的详情,请参考Janet的文章和访谈:

02 我的理解

我对Janet关于软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台的理念是非常认可的,不过为此搞出个新的概念似乎没多大必要,这个模型换汤不换药,并没有实质性的新东西。

1. 线性or环路

用线性流程来表示软件生命周期没有什么问题,毕竟一个软件产品会经历从无到有的过程,不管是增量迭代式开发,还是一步到位的瀑布式开发,都会有一个明确的起点。

当然,同时也是有反馈环存在的,并不是一条简单的直线。我在讲软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台右移(生产环境下的QA)的时候,明确提出过环路的概念,需要将生产环境获取到的数据信息用来优化业务、优化软件开发和软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台环节。在一页纸软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台策略里也有清晰的体现,如下图中生产环境与软件开发过程需要形成良性环路:

2. 持续软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台

质量内建中非常关键的一部分就是持续软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,而持续软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台应该是包括软件生命周期中每个环节的每个软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台相关活动,我在《敏捷软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台的核心》一文中提到持续软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台的时候,对其有较为详细的定义:

持续软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台是在整个开发生命周期里的各个环节(生命周期最左侧,一直延续到最右侧的生产环境)的软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台活动,以帮助快速收集反馈,从而正确地做事情。

持续软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台的内容包括持续功能软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,也包括性能、安全等的内建、持续地软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台;形式可以是静态分析、评审,也可以是动态的软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,包括手动执行的各种软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,以及持续集成流水线上的持续执行的自动化软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台。

的确会有人对持续软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台产生误解,认为主要是利用工具进行的自动化软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台,这跟大家对工具平台的热捧脱不开干系。不过,持续软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台这个说法本身是没有问题的,因为一个词被误用,而创造出一个新的概念或许没有必要。

03 写在最后

敏捷软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台也好,Holistic testing(全面软件工程,人工智能,机器学习算法,编程语言,编程代码交流平台)也罢,亦或是DevOps里的质量保障,叫什么名字其实没那么重要,关键是能真正理解背后的真正含义。如果不理解核心的内容,只是信奉某一个概念框架,实践也只能流于表面形式,没法落到实处,难以带来价值。

推荐阅读以下文章,可能有助于理解那些需要理解的东西:


本文首发于个人网站「IT技术分享社区_编程代码交流平台」,转载请参考版权声明

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注