首页 > 其他分享 >从软件工程角度看测试

从软件工程角度看测试

时间:2022-11-12 21:01:20浏览次数:47  
标签:交付 软件工程 质量 测试 角度看 软件 软件测试

转载:https://www.cnblogs.com/imyalost/p/16866157.html

这是软件工程系列的第六篇文章,我想从软件工程的角度来谈谈关于软件测试的一些话题。

 

软件工程的核心

软件工程简单来说就是多人参与、有计划有步骤的构造一个符合质量标准的软件产品的过程。参与人越多、产品越复杂、流程越繁琐,最终构造的软件产品就越可能出现问题。

软件工程出现的初衷,就是为了摆脱软件质量危机,其核心内容是要用工程化的方法去规范软件开发,让软件开发项目可以按时保质完成的同时且成本可控

抽象归纳可以称之为一个核心三个方法,即:以软件开发为核心,对开发过程组织+对方法的运用+对工具的使用

以工程方法,解决复杂性下软件质量的不可控,所以质量是其最核心的部分。

 

软件测试的本质

记得刚开始从事软件测试工作时,那个时候测试的岗位很多企业的定位是QC,就是质量检测和控制。

从软件测试工程师的日常工作来说,绝大多数时间都是在分析需求写case、发现bug、跟进bug解决和验证。

近几年的软件测试岗位,开始逐渐变为了QA,即质量保障。

看似只是一个名词的变化,其实背后对应的是企业对软件测试这个岗位有了更多的要求和期望。

当然也有同学会自嘲自己是点工、PageClienter等,面试造火箭入职拧螺丝的背后也存在很多无奈。

无论行业如何变化,软件测试的本质还是和软件质量息息相关的。

前面的文章聊过,质量保障需要“风险可识别+问题可追踪+结果可验证+数据可量化”,才能最大限度的实现其价值。

CKL老师也提到过“业务可验收、研发可实现、测试可验证、部署可交付”等类似理念,本质是在描述如何评估软件质量。

那么,质量保障应该如何理解?我们可以从软件质量保障和交付生命周期的三个阶段来做不同的定义。

需求设计质量

我们谈软件质量,不可避免要从它的源头说起,而源头就是需求和设计阶段要做的事情。

这个阶段包括原型图、PRD文档、交互设计、技术方案、测试用例等几项重要产出物,当然他们有一定的前后依赖关系。

在需求设计阶段,我个人认为比较重要的有如下几点:

  1. 需求评审(是否有遗漏、描述不清、存在逻辑漏洞等);
  2. 设计评审(设计是否满足需求要求、是否合理美观友好);
  3. 方案评审(方案实现难易程度、可测性、是否需要更多资源);
  4. 用例评审(场景是否尽可能覆盖、和技术方案实现是否吻合);

为什么要做大量评审工作?因为如果源头存在问题,那么研发过程和用户使用质量就无从谈起,方向错了就全错了。

评审的价值在于从用户使用场景角度出发,通过评审提问,把需求逐步澄清并形成验收条件,产、研、测三方共同确认,形成共识,以保证大家对需求的认知不发生偏差,为后续团队正确的做事提供有价值的指导。

研发过程质量

软件质量是构建出来的,不是测试出来的”。

测试的本质是验证研发交付的产出物是否达到需求设计及预期的标准。并不能直接带来质量的提升,只能通过种种手段多维度的去验证是否达标,并通过流程规范、度量标准等去保障最终的交付物达标。

因此,我们常说的各种测试技术手段,都是验证和保障交付质量的手段,而不是构建质量的手段。

当然,开发有自己的一套体系,比如编码规范、单元测试覆盖率等,这里不做详细描述,我们重点关注测试维度。

用户使用质量

用户使用质量,指的是软件线上发布后,我们对用户使用过程进行追踪并采集数据进行评估度量的过程

软件工程是将软件研发过程进行科学管理以控制质量,通过流水线的形式进行交付上线。

而软件测试则是通过一系列手段来验证最终的交付产出物是否达到预期的质量标准。

那么,谁该对软件质量负责呢?

 

谁对软件质量负责?

通过上文可以看出,软件质量的构成主要由需求设计质量+研发过程质量+用户使用质量三者决定。

换个角度来理解就是软件质量=功能质量+代码质量+过程质量

功能质量用来评估软件产品是否满足用户的预期需要,代码质量很大程度上决定了最终交付质量的下限,过程质量则是整个研发交付过程是否足够标准高效。

因为影响质量的因素,除了需求和代码,还有投入的成本、涉及的范围以及时间。

既然软件质量的构成和影响因素有多方面,那么软件质量也并不是独独由测试工程师负责。

有一点需要明确的是:在工作中一定要权责对等,而不是按照岗位名称定责甩锅。

按照软件质量=功能质量+代码质量+过程质量的公式,那么应该由如下三种角色对软件质量负责。

  • 功能质量:软件测试工程师;
  • 代码质量:软件开发工程师;
  • 过程质量:项目经理/项目负责人;

我一直有个观点是技术本身不产生价值,需要借由业务的商业价值来体现技术的价值,技术对业务提供支撑和服务

所以无论是测试还是开发或者项目经理,其实本质利益是一致的。

权责分明,利益明确,保持一致的方向和质量保障理念,才能更好的交付高质量的软件产品。

标签:交付,软件工程,质量,测试,角度看,软件,软件测试
From: https://www.cnblogs.com/ceshi2016/p/16884657.html

相关文章

  • 测试架构需要具备哪些能力
    转载:https://www.cnblogs.com/imyalost/p/16834322.html这篇文章是软件工程系列知识总结的第五篇,同样我会以自己的理解来阐述软件工程中关于架构设计相关的知识。相比于......
  • Pytest接口测试框架实战项目搭建(三)—— 统一登录处理
    一、前言业务系统的登录均要经过统一登录系统S,本篇演示2个业务系统的登录,一个是内部业务系统C,一个是外部用户使用的系统W,因为账号密码以及headers信息都不一样,所以要......
  • 软件产品测试之压力测试
    压力测试是一种性能测试方法,通过迫使软件处于极端情况发现性能瓶颈。在极端情况下软件更容易暴露出性能问题。因此采用压力测试分析实时软件的性能以保障它的质量。其实就......
  • 软件工程实验二 结对编程
    一、题目要求我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:(1)能够自动生成四则运算练习题(2)可以定制题目数量(3)用户可以选择运算符(4)用户设置......
  • 黑盒、白盒、灰盒测试
    黑盒、白盒、灰盒测试点击查看代码白盒测试:白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用......
  • 软件测试之编写用例的重要性
    1.深入了解需求的过程一个项目立项开始,测试就开始介入,我们从产品的PRD文档、用户交互图,视觉图等相关文档去熟悉产品的各个模块,各个业务流程。或者在产品规划和设计......
  • 一个简单的查询学生信息的接口测试
    Test作业提交学习笔记编写一个业务接口(登录,查找学生等)打包成jar包在本机上面执行相应的命令,通过浏览器访问接口获得数据。(可选)将该jar包放在服务器上面运行,通......
  • 渗透测试的复现任务
    流程报告(WalkThroughWriteUp)一、漏洞渗透测试按照复现内容首先将easyfilesharingserver拖移到靶机(Windows)并解压然后在kali虚拟机中使用nmap—sV目标IP地址得到......
  • zt 1588及其是测试和格式
    https://www.eefocus.com/test-measurement/293049IEEE1588及其测试方法简介2012-02-0820:46预计 18 分钟读完申请入驻>>1IEEE1588概述IEEE1588定义了......
  • Pytest接口测试框架实战项目搭建(二)—— tools公共方法封装
    一、前言在项目中我们要频繁地用到log日志、request请求方法、断言等,所以我们可以把这些常用的方法封装成日志,下面将逐个文件讲述下,不会讲太细,但会把源码贴出来,还有一......