Chapter 2 全程测试:闪光的思想

Stella981
• 阅读 557

软件质量其实是在软件开发生命周期中慢慢形成的,或者说,软件质量是内建的(Quality is built in),而不是测试测出来的。

贯穿于软件开发全过程的测试,不仅可以在第一时间内发现缺陷,降低缺陷带来的成本(劣质成本),而且能有效的预防缺陷的产生,构建更好的软件产品质量。

2.1 测试的左移和右移

测试左移:将测试计划与设计提前进行,以及开展需求评审、设计评审、代码评审等。

测试右移:将测试延伸到研发阶段之后的其他阶段,一般主要指产品上线后的测试,包括在线测试、在线监控和日志分析,包括alpha测试、beta测试。

2.2 测试驱动开发

“测试驱动开发(Test Driven Development,TDD)”——测试在先,编码在后。

1.UTDD(Unit Test Driven Development):在编码之前先写测试脚本,可以称为单元测试驱动开发。

2.ATDD(Assurance TDD):在需求分析时就确定需求(如用户故事)的验收标准,即验收测试驱动开发。

3.BDD(Behavior Driven Development):从ATDD演化出来一种具体落地的开发模式就是行为驱动开发,将验收标准更加明确化,可以看作ATDD的实例化。GWT(Given When Then)

4.RBE(Requirement By Example):BDD再往前推进一步,就是需求实例化,更加明确需求的具体表现。

2.3 传统研发模式的测试环

从软件工程来看,经过需求评审、设计评审、代码评审与单元测试、集成测试、系统测试和验收测试,再到产品缺陷根因分析、产品改进计划(提出新的产品需求)阶段,再进入下一个循环。

从项目管理角度看,经过测试分析、测试计划、测试设计、脚本开发、测试件评审、测试执行与监控、测试过程与结果评估、测试与西凉报告和项目总结阶段,形成项目过程环。

2.4 敏捷研发中的测试环

持续设计、持续编程、持续构建、持续集成、持续测试、持续交付。

2.5 DevOps与测试

2017年,作为一个软件工程实践,DevOps旨在统一软件开发和运维,与业务目标紧密结合,在软件构建、集成、测试、发布到部署和基础设施管理中大力提倡自动化和监控,目标是缩短开发周期,增加部署频率,更可靠的发布。

特征:

1.打通用户、PMO、需求、设计、开发、测试、运维等各上下游部门或不同角色。

2.打通业务、架构、代码、测试、部署、监控、安全、性能等各领域工具链。

2.6 小结

全程软件测试,强调软件测试不再是一个阶段,而是贯穿整个软件开发与维护的生命周期,只要软件研发项目一启动,软件测试就介入,从需求评审开始,直到产品交付后的在线测试。测试左移——TDD;测试右移——DevOps。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
新支点小玉 新支点小玉
12个月前
人工智能在软件测试中的应用
随着信息技术的飞速发展,软件测试的重要性越来越凸显。传统的软件测试方法往往需要耗费大量时间和人力,而且难以发现一些深层次的缺陷。为了提高软件的质量和可靠性,越来越多的企业开始探索人工智能技术在软件测试中的应用。人工智能在软件测试中的应用可以有效地提高测试的
新支点小星 新支点小星
11个月前
CNAS中兴新支点——软件测试报告模板分享
第三方检测机构推荐联系方式杨先生:13276637512微信:yangxs132766375121、测试背景:本次测试的软件是一款名为“XXX”的应用程序,主要用于解决某种需求。本次测试目的是发现软件中的问题和缺陷,并进行优化,以提高软件的质量和用户体验。
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
敏捷开发 敏捷开发
5个月前
实践了上万次,原来这些才是敏捷测试需要遵循的原则
与传统的阶段性测试不同的是,敏捷测试能够将测试集成到整个软件开发过程中,尽早、及时地发现缺陷,帮助交付有价值的高质量产品。传统测试与敏捷测试的比较大的区别在于:在瀑布方法中,测试只能在开发结束后进行;在敏捷方法中,测试是贯穿在整个开发过程中的,同时可以在需
新支点小玉 新支点小玉
1年前
防患于未然,上线前测试环节怎么能少?
软件测试作为一种重要的软件开发流程,被许多企业所重视,它旨在通过对软件进行全面的测试,确保软件产品质量,满足用户需求。软件测试不仅仅是简单的检测,而是一个系统性的、有组织的测试过程,它包括许多不同步骤,其中每一步都要进行精细的测试。一、测试的重要性1、确保
新支点小玉 新支点小玉
1年前
软件测试报告具体包含哪些内容?
一、什么是测试报告?测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。二、测试执行和结束的准则1.测试执行的结束原因1)测试达到预期目的后,按计划结束2)受时间进度、资源的