测试:概念篇

news2024/11/15 15:54:26

目录

简单介绍测试

我们先简单的介绍一下测试工程师

简单来看看测试和开发的区别

测试的基本概念

什么是需求

BUG 的概念

测试用例

什么是测试用例?

为什么有测试用例

测试周期

开发模型

瀑布模型:

螺旋模型:

敏捷软件开发

V 模型

W 模型(双V 模型)


本章开始我们来开始了解测试。

简单介绍测试

我们先简单的介绍一下测试工程师

测试工程师,软件质量的把关者,工作起点高,发展空间大。我国的软件测试职业还处于一个发展的阶段,所以测试工程师具有较大发展前景。

传统的软件行业还是以软件测试工程师为主,但是在新兴的互联网行业大多还是以QA来命名这个职位,也就是质量保证。 ----百度百科

测试工程师其主要职责就是确保程序不会出粗(检测程序质量)。

简单来看看测试和开发的区别

难易程度 开发广度小,专业度高。测试广度大,专业度低
工作环境 基本类似
薪水中小企业总体比研发低,自动化等专业测试领域和研发基本无差距。大厂研发测试基本无差别

发展前景 自动化测试、安全测试等领域发展前景和研发基本一致。
繁忙程度 敏捷模式下差距不大,产品发布前压力比较大
技能要求 测试要求更广泛:业务能力,设计和架构分析能力,测试手段和工具使用,用户模型分
析和理解,编程能力

总之呢,二者差别不大。

软件测试与调试的区别:

目的不同:

  • 调试(Debug):确保程序做了程序员想它做的事情
  • 测试(Testing):确保程序解决了它该解决的问题

参与角色不同:

  • 测试由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行。
  • 调试由开发人员完成。

执行的阶段不同:

  • 测试贯穿整个软件开发生命周期
  • 调试一般在开发阶段

ok,测试先介绍到这里,其余的可以上网查查,我这里也是上网去查的。

我们本章的重点在于,认识测试的基本概念,有助于我们更快的融入测试这个团队中去。

测试的基本概念

什么是需求

需求的概念:

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

在绝大多数公司,需求分为两部分:

  • 用户需求
  • 软件需求

用户需求

可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成
的任务。该需求一般比较简略

软件需求

或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能

大部分公司在进行软件开发的时候会把用户需求转化为软件需求。开发人员和测试人员工作的直接依据就是软件需求。

软件需求规格说明书:

BUG 的概念

bug 的英译为:虫子;bug的由来:bug的由来 (baidu.com)

软件错误的定义:

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

测试用例

什么是测试用例?

测试用例就是一组集合:测试环境,测试数据,预期结果,操作步骤,等等

比如在 chrome 浏览器测试Leetcode 题:

测试环境:chrome 浏览器

测试数据:Leetcode 出题数据

预期结果:通过率 100%

操作步骤:写代码,提交

等等.......

为什么有测试用例

  • 测试用例提高了测试人员的工作效率(降低了工作人员的重复性问题)
  • 测试用例是建立自动化测试的基础

测试周期

人有生命周期,软件有生命周期,测试也有生命周期。

人的生命周期就是:出生 ~ 死亡

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

我们来一一分析:

  1. 需求分析:需求分析是否合理,需求是否完善
  2. 计划:交给谁完成开发,谁测试,什么时候开始,什么时候结束
  3. 编码:写代码
  4. 测试:进行测试,并提交测试报告
  5. 如果产品上线后,出现问题,测试人员要协助开发人员定位问题,解决问题。

开发模型

来简单介绍几个测试模型

瀑布模型:

制定周密计划。1970年,温斯顿·罗伊斯(WinstonRoyce)提出,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。
采用瀑布模式的项目从最初的构思到最终产品要经过一系列步骤。每一个步骤结束时,项目小组组织审查,并决定是否进入下一步。如果项目未准备好进入下一步,就停滞下来直到准备好。

如图:

特点
从测试的角度看来,瀑布模式比截至到目前为止的其他模式更有优势。
瀑布模式所有一切都有完整细致的说明。当软件提交到测试小组时,所有细节都已确定并有文档记录,而且实现在软件之中。由此,测试小组得以制定精确的计划和进度。
测试对象非常明确,在分辨是功能还是缺陷上也没有一点问题。
在瀑布模型中,测试被认为是在软件开发过程的后期阶段进行的“一次性”活动,这带来一个巨大的缺点,因为测试仅在最后进行,所以一些根本性问题可能出现在早期,但是直到准备发布产品时才可能发现。

螺旋模型:

如图:

特点
该模式发现问题早、成本低的特点,可以算做相当好的开发模式。
软件测试员喜欢该模式。因为通过参与最初设计的设计阶段,可以尽早地影响到产品,可以把产品的来龙去脉弄得很清楚;并且在项目末期,不至于最后一分钟还在匆匆忙忙地进行全面测试。软件测试员的测试一直都在进行,所以最后一步只是一个验证表面所有部分都没有问题。

敏捷软件开发

2001年初,在犹他州的Snowbird,由于看到很多软件开发团队陷入了不断增长的过程的泥潭,一批业界专家聚集在一起概括出了一些可以让软件开发团队具有轻量化、快速工作、响应变化能力的价值观和原则,他们称自己为“敏捷联盟”。
敏捷联盟在随后几个月,他们创建了一份价值观声明,也就是敏捷联盟宣言。这不是一份抽象的方法论集合,并没有提供任何死板僵化的开发方法和复杂的技术结构层次,而更像是一份针对客户和开发个体的箴言警句集。

敏捷宣言:

敏捷开发的核心思想是:以人为本,适应变化。

敏捷开发提倡迭代式和增量式的开发模式,并强调测试在其中的重要作用。

绿色部分很重要,但是敏捷软件中,更加注重前面部分。

V 模型

如图:

优点

  1. V模型明确地将测试分为不同的级别或阶段。
  2. 每个阶段都与开发的各阶段相对应。
  3. V模型的测试策略包括低层测试和高层测试,低层测试是为了源代码的正确性,高层测试是为了整个系统满足用户的需求。

缺点

  1. 测试是开发之后的一个阶段。实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。
  2. 测试的对象就是程序本身。忽视了测试活动对需求分析,系统设计等活动的验证和确认的功能,直到后期的验收测试才被发现。

W 模型(双V 模型)

如图:

优点

  1. W模型从V模型演化过来,实际上开发是V,测试是并行的V,测试与开发同步进行,有利于尽早地全面的发现问题。
  2. 测试伴随整个软件开发周期。
  3. 测试的对象不仅仅是程序,需求、设计等同样要测试。

缺点

  1. W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代的开发模型。

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

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

相关文章

PostgreSQL 查找重复数据(二)

创建表和测试数据: -- DROP TABLE IF EXISTS people; CREATE TABLE people (id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,name varchar(50) NOT NULL,email varchar(100) NOT NULL );INSERT INTO people(name, email) VALUES (张三, zhangsantest.com),(李…

操作系统考试复习-—第四章 分段式 段页式存储方式

分段从存储管理方式:一方面是通常的程序都可以分为若干段,另一方面是实现和满足信息共享,信息保护,动态链接以及信息的动态增长等需要。也都是以段为基本单位实现的。所以说,分段存储管理方式更符合用户和程序员多方面…

JWT认证

一、什么是JWT 官网地址: https://jwt.io/introduction/ jsonwebtoken(JWT)是一个开放标准(rfc7519),它定义了一种紧凑的、自包含的方式,用于在各方之间以JSON对象安全地传输信息。此信息可以验证和信任&…

华为nqa实验拓扑案例

bqa是一种实时的网络性能探测和统计技术,可以对响应时间、网络抖动、丢包率等网络信息进行统计。如图1所示,接口备份与NQA联动功能配置相对简单,只需在本端RouterA上配置NQA测试例,并在RouterA的备份接口上配置接口备份与NQA联动&…

自定义组件中如何注入Spring底层的组件

1.概述 自定义的组件要想使用Spring容器底层的一些组件,比如ApplicationContext(IOC容器)、底层的BeanFactory等等,那么只需要让自定义组件实现XxxAware接口即可。此时,Spring在创建对象的时候,会调用XxxA…

搞懂 API,API 常见技术使用场景分享

API(应用程序编程接口)是一种允许软件应用程序之间相互交互和通信的技术。以下是API常用的使用场景: 应用程序开发 API通常被用于网站或应用程序的开发中,以便在不同平台、语言及数据库之间获取数据或进行消息传递。例如&#xff…

探索数字化转型新道路!流辰信息微服务与您一起创未来!

科技在进步,社会在发展,办公自动化也在高速发展中。数字化转型是当下企业获得长久发展的趋势之一,在信息瞬间万变的社会中,谁掌握了核心技术,谁能与时代同步,谁就能开启新的康庄大道,谁就能在转…

VS2017配置Qt——超详细步骤教学(看完不会算你狠)

一、环境要求 visual studio 2017 vsaddin Qt14.1 mysql 注意mysql环境与msvc2017编译器环境保持一致。 mysql32位 配 msvc2017 32位 或 mysql64位 配 msvc2017 64位 注意:环境不一致会导致软件运行错误,为了避免这些错误,要将…

第1章计算机系统漫游之 “源代码的编译与执行” 及 “操作系统管理硬件”

文章目录 1、信息就是位上下文2、程序被其他程序翻译成不同的格式3、了解编译系统如何工作的益处4、处理器读并解释储存在存储器中的指令4.1 系统的硬件组成4.2 执行 hello 程序 5、高速缓存6、形成层次结构的存储设备7、操作系统管理硬件7.1 进程7.2 线程7.3 虚拟存储器7.4 文…

docker容器内使用cat命令修改文件

有时候docker容器内部没装vi 或vim命令,无法使用vi来修改文件 可以使用cat命令来查看文件 cat 主要功能一次显示整个文件:cat filename 从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件 将几个文件合并为一个文件:cat file1 file2 > fi…

最新黄金市场价格分析之干掉调整浪

等待的过程无疑是最令人心烦的。各位朋友应该试过,等待自己的朋友、亲人,等等结果,等待成绩公布等等。但是等待是我们干任何事都必不可少的过程,是我们缓冲、蓄力的阶段。最新黄金市场价格分析中的等待,体现在调整浪的…

Python心经(3)

这一节总结点demo和常用知识点 目录 有关字符串格式化打印的 lambda匿名函数,,将匿名函数作为参数传入 文件读写 生成器 python的装饰器 简单的网站代码: 有关三元运算 推导式: 新浪面试题: 有关面向对象里…

SpringBoot项目中一些常用的,工具类

推荐多使用这个: Hutool参考文档Hutool,Java工具集https://hutool.cn/docs/#/core/%E9%9B%86%E5%90%88%E7%B1%BB/%E9%9B%86%E5%90%88%E5%B7%A5%E5%85%B7-CollUtil?id%e4%bb%8b%e7%bb%8d 1:断言 断言是一个逻辑判断,用于检查不应…

芯片封装技术(三)

Interposer 是一种用于连接芯片的中间层技术,它的基底通常是一块硅基底,而硅基底也是 Substrate 的一种。因此,Interposer 与 Substrate 有一定的关系。对于RDL Interposer来说,Si Interposer的信号布线密度进一步提高&#xff0c…

[Linux] Linux文件系统

🥁作者: 华丞臧. 📕​​​​专栏:【LINUX】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 文章目录 一、Linux文件系统1.1 磁盘1.2 inode1.3 软硬…

Philosophy of life: growing flowers in your heart

Growing flowers in your heart An aged man lived in a nice cottage with a large garden in a town in England. He is seen busy looking after his flowers all time. 第一部分介绍的是: 有一个老人在英格兰的镇上有一个带大花园的屋子,他一直在忙着照顾他的花…

机器学习实战:带你进入AI世界!

机器学习是人工智能领域的一个重要分支,可以帮助我们从大量数据中发现规律,进行预测和分类等任务。然而,想要真正掌握机器学习算法,并将其应用到实际问题中,还需要进行大量的实战练习。 本文将介绍几个常见的机器学习实…

seurat -- 细胞注释部分

文章目录 brief寻找差异基因部分注释细胞部分详细参数 brief 细胞注释大概分为两步:差异基因 --> marker genes —> map reference 差异基因可以是表达量上存在差异也可以是表达细胞占比上存在差异,通常二者兼顾考虑。 marker genes 个人理解为…

蓝牙网状网络的基本原理及应用开发

借助蓝牙 5 的网状网络功能,开发人员可以增强无线连接系统(如物联网设备)的通信范围和网络可用性。但是,网状网络的低功耗无线硬件设计与网状网络软件开发之间存在着复杂的层次,这可能会使开发人员迅速陷入混乱并危及项…

GLM论文精读-自回归填空的通用语言模型

GLM作为ChatGLM的前期基础论文,值得精读。本文是对GLM论文的精读笔记,希望对大家有帮助。GLM主要思想概述,利用自回归填空的思想,基于transformer的编码器实现了同时在NLU和有无条件生成任务上较好的表现。 基本信息 原文&#…