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

Stella981
• 阅读 345

软件质量其实是在软件开发生命周期中慢慢形成的,或者说,软件质量是内建的(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
2年前
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中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
RobotFramework接口自动化的设计思想
自动化终极思想:以目标为导向,不断抽象沉淀,消除冗余,做到测试数据与测试代码分离1、自动化测试对人员的要求1、对测试人员的技能要求较高,需要自己写测试代码或看得懂别人的测试代码;2、需要根据版本迭代进行更新测试用例,有一定的维护成本;3、自动化能发现的缺陷数(bug)远远少于手工测试,产出低;4、自动化测
新支点小玉 新支点小玉
4个月前
从定义和实施帮你对软件测试进行全解析
软件测试是软件开发过程中的一项重要环节,它的目的是确保软件能够满足预期的需求和质量标准,为客户提供高质量的产品或服务。本文将从定义和实施角度对软件测试进行解析,帮助读者更好地了解软件测试。一、定义软件测试是一种质量保证活动,旨在检测软件产品是否满足用户需求
新支点小玉 新支点小玉
4个月前
人工智能在软件测试中的应用
随着信息技术的飞速发展,软件测试的重要性越来越凸显。传统的软件测试方法往往需要耗费大量时间和人力,而且难以发现一些深层次的缺陷。为了提高软件的质量和可靠性,越来越多的企业开始探索人工智能技术在软件测试中的应用。人工智能在软件测试中的应用可以有效地提高测试的
新支点小星 新支点小星
4个月前
CNAS中兴新支点——软件测试报告模板分享
第三方检测机构推荐联系方式杨先生:13276637512微信:yangxs132766375121、测试背景:本次测试的软件是一款名为“XXX”的应用程序,主要用于解决某种需求。本次测试目的是发现软件中的问题和缺陷,并进行优化,以提高软件的质量和用户体验。
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
稚然 稚然
3个月前
软件测试之python高级软件测试开发第15期直播课
//下仔のke:https://yeziit.cn/15205/软件测试是软件开发过程中的重要组成部分,主要目的是发现软件中的错误和缺陷(统称为“bug”),验证软件是否满足用户需求和设计要求,从而提高软件的质量和可靠性。软件测试的原则包括:尽早进行软件测
新支点小玉 新支点小玉
4个月前
防患于未然,上线前测试环节怎么能少?
软件测试作为一种重要的软件开发流程,被许多企业所重视,它旨在通过对软件进行全面的测试,确保软件产品质量,满足用户需求。软件测试不仅仅是简单的检测,而是一个系统性的、有组织的测试过程,它包括许多不同步骤,其中每一步都要进行精细的测试。一、测试的重要性1、确保
新支点小玉 新支点小玉
4个月前
软件测试报告具体包含哪些内容?
一、什么是测试报告?测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。二、测试执行和结束的准则1.测试执行的结束原因1)测试达到预期目的后,按计划结束2)受时间进度、资源的