测试概念篇

news2025/1/12 15:45:17

目录

  • 调试和测试的区别
  • 软件测试的概念
  • 软件测试和软件开发的区别
  • 优秀的测试人员应该具什么素质
  • 为什么要做测试
  • 软件的生命周期
  • 什么是Bug
  • 什么是需求
  • 测试用例是什么
  • 产品的生命周期
  • 软件测试贯穿于软件的整个生命,如如何贯穿?
  • 开发模型
    • 瀑布模型(面向文档的软件开发模型)
    • 螺旋模型
    • 增量模型
    • 敏捷模型
  • 测试模型
    • V模型
    • W模型

调试和测试的区别

1.目的不同
测试的任务是发现程序中的缺陷;
调试的任务是定位并且解决程序中的问题。
2.参与角色不同
测试主要是由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行。
调试由开发人员完成。

3.执行的阶段不同

测试贯穿整个软件开发生命周期;

调试一般在开发阶段。

软件测试的概念

软件测试就是执行和运行软件的过程,其目的是为了发现软件功能和需求不相符合的地方,或者寻找实际输出和预期输出之间的差异。

软件测试和软件开发的区别

研发主要以编码为主,而测试以测试为主,开发为辅。
难易程度:开发广度小,专业度高。测试广度大,专业度低
工作环境:基本类似
薪水:中小企业总体比研发低,自动化等专业测试领域和研发基本无差距。大厂研发测试基本无差别
发展前景:自动化测试、安全测试等领域发展前景和研发基本一致。
繁忙程度:一般比研发轻松,但敏捷模式下差距不大,产品发布前压力比较大
技能要求:测试要求更广泛:业务能力,设计和架构分析能力,测试手段和工具使用,用户模型分析和理解,编程能力

优秀的测试人员应该具什么素质

答案包含但不限于以下几个方面:

  1. 思维模式
    逆向思维:开发盖房子,测试拆房子。不走寻常路。
    案例:手机中有两条通话记录,进行删除。删除为0后,继续删除。
    发散性思维:探求多项答案
    案例:测试一台自动售票机。正向,逆向,边界,压力,性能,耗电量,断电,外观,没零钱…
  2. 兴趣
    真的有兴趣么?而不是开发加班多,不想编码?
  3. 性格特征
    好奇心
    成就感
    敏感
    不浮躁
    善于怀疑
    批判性思维:清楚–准确、切题–深刻,有意义,有逻辑性–公正、全面
  4. 能力
    快速学习能力
    沟通能力
    文字能力
    开发能力
  5. 责任感和压力
    责任感:测试往往是产品的最后一个检验者;测试的工作成效很难衡量,测试用例执行、bug数目的多少都无法说明产品是否能够交给用户使用。所以,责任感是最重要的测试必备素质之一。
    压力:来自开发人员、用户、上级、自己的压力。测试人员的压力比想象中的要大。

为什么要做测试

答案同优秀的测试人员应该具备的素质。

软件的生命周期

六个阶段:需求分析阶段,计划阶段,设计阶段,编码阶段,测试阶段,运行维护阶段。
在这里插入图片描述

什么是Bug

当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。当需求规格说明书没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能和要求时,就是软件错误;

什么是需求

需求就是满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。

需求主要分为两种: 用户需求 和 软件需求
用户需求:可以理解为就是甲方提出需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。这种需求一般是比较简略的,并且用户需求是五花八门的
软件需求:也就是功能需求,详细描述了开发人员必须实现的软件功能
开发人员和测试人员的直接工作依据就是软件需求

用户的需求能否作为测试和开发的直接工作依据?
肯定是不能的,因为大多数的公司在进行软件开发时,是把用户需求转化为软件需求,这个过程依据,
比如技术是否可行,市场是否可行,成本投入和受益占比等多方面分析的

测试用例是什么

测试用例的存在就是要解决两个问题,测什么,怎么测

测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素

产品的生命周期

开发流程/软件的生命周期

产品的生命周期:需求分析—— 计划 —— 设计 —— 编码 —— 测试 —— 运行维护

需求分析:市场分析、技术上是否可行、成本和收益占比

计划:什么时候开始、什么时候结束、耗时多久

设计:将大的需求转变为一个个可具体执行的任务。进行开发设计(开发哪些接口、使用什么开发框架、使用什么技术)

编码:开发人员参考需求文档和技术文档等等来进行代码开发

测试:测试人员参考测试用例来设计

运行维护:

完善性维护:对功能进行完善

修复性维护:对项目中没有发现的问题要及时进行修复

预防性维护:为了避免产品在线上运行期间出现意想不到的问题,需要进行一些预防性的手段

软件测试贯穿于软件的整个生命,如如何贯穿?

软件测试的生命周期:需求分析 —— 测试计划 —— 测试设计与开发 —— 测试执行 —— 测试评估

  • 需求分析:
    用户角度思考问题:软件需求是否合理
    
    技术角度思考问题:技术上是否可行,还是否有优化空间
    
    测试角度思考问题:是否存在业务逻辑冗余/冲突
    
  • 测试计划:什么时候开始测试、什么时候测试结束、耗时多久
  • 测试设计与开发:写测试文档,明确标注使用到的测试方法,测试工具,测试形式,参考需求文档,技术文档等等编写测试用例
  • 测试执行:充分利用测试用例和其他工具对项目尽可能做到全方面的覆盖测试
  • 测试评估:评估产品是否存在其他的质量问题,功能演示
  • 开发模型

    瀑布模型(面向文档的软件开发模型)

    场景:适用于需求稳定、明确的项目。
    过程:需求分析、总体设计、详细设计、编码和调试、集成测试和系统测试。
    

    在这里插入图片描述
    特点:是一种严格遵循软件生命周期各个阶段的固定顺序的模型,每个阶段划分明确,都有固定文档或源程序流入下一个阶段。需求分析是一切活动的基础。

    缺点:

    1. 由于需求不可能精确、完整的描述整个系统,造成后期维护工作繁重,这些维护工作大多都是在修正需求分析阶段引入的缺陷。

    2. 难以适应变化,如果软件在后期出现需求变化,整个系统需要从头开始。

    3. 交付时间长,需要等到所有阶段都结束才能交付产品,导致客户无法尽快确定需求是否满足。

    4. 产生大量对客户无用的文档,确花费了大量人力,是一种重载过程。

    螺旋模型

    场景:项目规模庞大,复杂且高风险。
    特点:是瀑布模型和演化模型的结合,并增加了风险分析(引入非常严格的风险识别、风险分析、风险控制),支持用户需求动态变化。
    过程:需求定义、风险分析、工程实现、评审。
    

    在这里插入图片描述
    特点:螺旋模型中增加了风险分析和原型

    缺点:

    1. 项目中可能存在的风险性与风险管理人员的技能水平有直接关系
    2. 需要人员、资金、时间的增加和投入,可能会导致项目的成本太高

    增量模型

    场景:在系统的技术架构成熟、风险较低的时候采用。
    特点:提前进行集成测试和系统测试,缩短初始版本的发布周期,提高用户对系统的可见度
    

    在这里插入图片描述

    敏捷模型

    场景:适用于小规模软件或者小团队开发。
    特点:是一种以人为核心、迭代、循序渐进的开发方法。
    

    在这里插入图片描述

    测试模型

    V模型

    W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分
    别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。

    特点:
    1.测试过程中存在的不同类型的测试
    2.测试阶段的参考标准以前面对应阶段为准
    缺点:测试后置
    

    在这里插入图片描述
    明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间
    各阶段的对应关系

    V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功
    能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同
    的要求
    局限性:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就进入测试

    W模型

    特点:W模型重流程、不能够迎接变化、W模型不适用于敏捷模型

    在这里插入图片描述
    局限性:需求、设计、编码等活动被视为串行的;测试和开发活动也保持着一种线性的前后关系,
    上一阶段完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。对于当前软件开发复
    杂多变的情况,W模型并不能解除测试管理面临着困惑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/436142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【java】反射基础

Class类 import java.io.*; import java.util.Scanner;public class Main {public static void main(String[] args) throws ClassNotFoundException {Class<String> clazz String.class; //使用class关键字&#xff0c;通过类名获取Class<?> clazz2 Class.f…

SpringBoot源码学习系列——运行流程分析

前文SpringBoot源码学习系列——构造流程分析对SpringApplication的实例化流程进行了介绍&#xff0c;完成了基本配置文件的加载及初始化&#xff0c;本文对其run方法进行介绍&#xff0c;看看Spring Boot是如何启动运行的。 run方法核心流程 可以看到&#xff0c;SpringAppli…

主机串口—虚拟机串口—linux系统串口之间的关系(实现主机和虚拟机之间的串口通信)

目录 1、准备工具 2、实现机理 3、实现过程 4、虚拟机串口 —— Linux系统串口文件 1、准备工具 VSPD&#xff1a;作用是在主机上创建虚拟串口 VSPD 下载&#xff1a;VSDP 汉化版下载VSPD 配置教程&#xff1a;VSPD虚拟串口工具实用工具–小白入门篇 | 码农家园 串口调…

MES功能设计规格书

软件功能结构 项目实施方案 概述 按总体规划&#xff0c;MES项目分三个阶段实施&#xff0c;第一阶段先在终端电器制造部和控制电器制造部进行试点实施。 第一阶段目标 建立基本的MES系统框架&#xff0c;提供工厂建模等基础功能。将目前的Excel生产排程纳入到系统管理&…

wps宏编辑器API关于msgbox和inputbox的使用说明

WPS宏编辑器API参考关于函数列举了3个&#xff1a;DoEvents、InputBox和MsgBox&#xff0c;其中DoEvents有点不好理解&#xff0c;应该在什么场景下使用也缺乏官网指导说明&#xff0c;因此本文重点讲述InputBox和MsgBox的使用说明。 1、DoEvents 处理进程的消息队列中的消息…

AI菜鸡浅谈ChatGpt

最近最火的话题可能就是Chatgpt &#xff0c;这个对话机器人横空出世&#xff0c;大大突破了人类之前对AI 对话机器人的认知和预期&#xff0c;上次这样的颠覆认知的突破还是7年前的阿法狗&#xff0c;但是这一次Chatgpt 带来的革命可能要更深远。我从以下几个方面来谈一下我对…

Centos7.6集群部署海豚调度3.1.5

目录 前置准备工作&#xff08;所有机器&#xff09;主机规划数据库规划用户规划目录规划配置/etc/hostsjdk安装进程树分析配置ssh免密部署zookeeper启动zookeeper下载DolphinScheduler 二进制包修改install_env.sh配置修改dolphinscheduler_env.sh配置文件 安装&#xff08;ty…

virtualbox 安装centos

在virtualbox安装centos时&#xff0c;遇到了一些问题&#xff0c;此处记录下&#xff0c;希望可以帮助一些小伙伴。 一、下载centos 进入官网下载地址&#xff1a;Download (centos.org) 然后选择阿里云镜像地址&#xff1a;centos-7.9.2009-isos-x86_64安装包下载_开源镜像…

TensorFlow版本与其他库的版本之间问题

使用TensorFlow的版本不一样&#xff0c;对应的库的版本也需不一样&#xff0c;这个有许多需要注意的地方。 比如Keras库&#xff0c; 当我使用tensorflow2.1.0版本时&#xff0c;安装Keras2.10.0这个库会导致运行报错&#xff0c; 那么就需要降低其版本到与之匹配&#xff…

AQS 和CAS详解

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;JDBC事务 Hibernate事务 EJB事务详解 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你…

初识Linux篇

初识Linux篇 Linux环境的搭建1.什么是Linux2.Linux环境的安装云服务器Linux安装 总结 Linux环境的搭建 &#x1f60a;首先&#xff0c;在学习Linux之前&#xff0c;先了解一下Linux&#x1f60a; 1.什么是Linux Linux是一种操作系统软件&#xff0c;就像手机中的安卓&#xff…

Vue中的导航守卫

router官网-导航守卫 导航守卫常用的主要有三种&#xff1a;全局前置守卫(beforeEach)、路由独享守卫(beforeEnter)、组件内守卫(beforeRouteEnter) 路由独享守卫 在路由配置上直接定义 beforeEnter 守卫 <body> <div id"app"><h1>欢迎使用路由&l…

在没有魔法的情况下,如果让ChatGPT帮我们写代码

ChatGPT写代码 ✋ChatGPT 是一个基于人工智能的自然语言处理模型&#xff0c;可以帮助程序员更高效地、更自然地与计算机交互。ChatGPT 可以解决程序员在日常开发中遇到的各种问题&#xff0c;例如语法错误、API 使用、代码实现、架构设计等等。 &#x1f4a5;通过与 ChatGPT…

操作系统1(什么是操作系统、程序和编译器)

1.什么是操作系统&#xff1f; 1.什么是操作系统&#xff1f; 对单一计算机硬件系统做出抽象、支撑程序执行的软件系统。通过“虚拟化”硬件资源为程序运行提供服务的软件。 操作系统可以访问任何硬件资源。 2.什么是程序&#xff1f; 程序就是一个状态机。 程序计算sysc…

面了十几家公司测试岗,我终于悟了,面试无非就是这些题

测试岗的面试其实都是大同小异的&#xff0c;这里我收集整理了185道高频面试题&#xff0c;希望对在找工作或者准备跳槽的各位小伙伴有所帮助&#xff01; 一. 测试基础 1.如何制定测试计划 参考答案&#xff1a; 测试计划包括测试目标、测试范围、测试环境的说明、测试类型…

SpringBoot 实现多个子域共享 cookie

SpringBoot 实现多个子域共享 cookie 项目信息cookie 共享需求如何实现 环境配置配置域SpringBoot 配置 https 访问 后端代码验证验证后端解析 cookie 项目信息 使用SpringBoot web框架&#xff0c;版本号 2.7.10 <dependency><groupId>org.springframework.boot&…

Ambari 操作HDP组件迁移

目录 ​ 一、集群信息 1.1 HDP版本信息 1.2 服务器信息 二、服务迁移操作 一、集群信息 1.1 HDP版本信息 1.2 服务器信息 角色 IP 组件 hdp103 192.168.2.152 NameNode hdp104 192.168.2.153 新 NameNode hdp105 192.168.2.154 旧NameNode 二、服务迁移操作 我…

6、苹果签名原理

一、iOS应用签名原理 代码签名双层代码签名描述文件 1.1 代码签名 代码签名是对可执行文件或脚本进行数字签名,用来确认软件在签名后未被修改或损坏的措施. 和数字签名原理一样,只不过签名的数据是代码. 1.1.1 简单的代码签名 - 在iOS出来之前,以前的主流操作系统(Mac/Win…

自动控制原理模拟卷5

自动控制原理模拟题五 Question1 液位自动控制系统原理示意图如下图所示,在任意情况下,希望液面高度 c c c维持不变,说明系统工作原理并画出系统方块图。 解: 当电位器电刷位于中点位置时,电动机不动,控制阀门有一定的开度,使水箱中流入水量与流出水量相等,从而液面保…

C6678-缓存和内存

C6678-缓存和内存 全局内存映射扩展内存控制器&#xff08;XMC&#xff09;-MPAX内存保护与地址扩展使用例程缓存 全局内存映射 扩展内存控制器&#xff08;XMC&#xff09;-MPAX内存保护与地址扩展 每个C66x核心都具有相同大小的L1和L2缓存&#xff0c;并且可配置为普通内存使…