软件测试必备知识

news2025/1/6 18:44:58

一、软件测试的基本概念

①需求

IEEE规定:软件需求是(1)用户解决问题或达到目标所需 条件或权能。(2)系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或权能。一种反应上面(1)或(2)所述条件或权能的文档说明。它包括功能性需求及非功能性需求,非功能性需求对设计和实现提出了限制,比如性能要求,质量标准,或者设计限制。

在多数软件公司,会有两部分需求:用户需求和软件需求。

用户需求:可简单理解为甲方或者终端用户提出的需求,该需求一般比较简略。

软件需求:又叫功能需求,该需求会详细描述开发人员必须实现的软件功能,大多数情况下软件需求将作为测试和开发的工作依据。

软件需求分析点:

技术角度分析:技术上是否可行,人力/资金投入成本
是否存在较大的市场需求
成本和受益的占比

②测试用例

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

测试用例解决了测什么和怎么测这两大问题。

③Bug

1️⃣当且仅当产品规格说明书存在且正确时,程序的实现与规格说明书要求不匹配的时候,那就是软件错误。
2️⃣当产品规格说明书没有提到某功能时,以用户为准,也就是说,当程序没有实现其用户合理预期的要求是,那就是软件错误。

④产品的生命周期:

  1. 需求分析

市场分析、投入和受益的占比、技术上实现是否可行

  1. 计划

什么时候开始?什么时候结束?

  1. 设计

将一个大的需求拆分成一个个具体课实施的任务。(设计哪些接口,采用什么框架,采用哪些技术。)

  1. 编码

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

  1. 测试

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

  1. 运行维护

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

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

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

⑤软件测试的生命周期

  1. 需求分析

测试人员需要站在用户角度思考问题:软件需求是否合理?
技术角度思考问题:技术上是否可行?是否还有优化空间?
测试的角度思考问题:是否存在业务逻辑冗余/冲突
  1. 测试计划

什么时候开始测试,什么时候测试结束,耗时多久。

  1. 测试设计与开发

写测试文档,明确标注使用到的测试方法、测试工具、测试形式等。参考需求文档、技术文档等编写测试用例。

  1. 测试执行

充分利用测试用例和其他工具对项目尽可能做到全方位的测试。

  1. 测试评估

评估产品是否存在其他的质量问题以及功能演示。

二、开发模型和测试模型

1、瀑布模型

使用场景:需求固定的小项目。

特点:线性结构,每个阶段只执行一次,是其他模型的基础框架。

缺点:

1.测试后置:1)前面各阶段遗留的风险推迟到测试阶段才被发现,导致项目大面积返工,失去了及早修复的机会。2)必须留有足够的时间给测试活动,否则导致测试不充分,将缺陷暴露给用户(产品质量差
2.周期太长,产品很迟才能被看到和使用。
  1. 螺旋模型

使用场景:规模庞大、复杂度高、风险大的项目。

特点:螺旋模型中增加了风险分析和原型

缺点:

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

3、迭代模型和增量模型

假设一个软件,共有 A、B、C、D、E 五个功能

增量模型:可以先开发A、B需求,然后再开发C、D、E

迭代模型:先将A、B、C、D、E功能开发出来,然后不断进行完善。

4.敏捷模型

scrum模型

特点:轻流程、轻文档、中目标、重产出。

三个角色和五个重要会议

三个角色:产品经理、项目经理、研发团队
五个会议:
发布计划会议:最终确定本次迭代要完成的需求。
迭代计划会议:任务拆解、确定责任人、工时的评估。
每日会议:昨天做了什么、今天要做什么、当前遇到的问题。(每日会议结束后需要给出“可交付的软件”)
演示会议:产出用户需求。
回顾会议:总结当前迭代周期的不足,并在下一次迭代中进行优化。

V模型

V模型最早是由Paul Rook 在20世纪80年代后期提出的,目的是改进软件开发的效率 和效果,是瀑布模型的变种。

V模型特点:

1、测试过程中存在不同类型的测试。
2、测试阶段的参考标准以前面对应阶段为准。

缺点:测试后置

W模型(双V模型)

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

W模型特点:测试的对象不仅是程序,需求、设计等同样需要测试,测试与开发是同步进行的。

W模型优点:有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度。

局限性:W模型重流程,不能迎接变化,不适用于敏捷模型。

三、面试题

1、项目测试完成之后,需要进行项目上线。产品在线上运行期间我们测试人员也需要及时关注产品线上运行情况,是否出现了产品质量问题,如果出现了问题,怎么做?

答:

  1. 尝试复现(普遍都存在的问题还是个别问题),复现成功后通知项目组所以成员进行问题的定位。

  1. 尝试定位问题出现的原因,帮助开发人员尽快的定位问题并解决问题。

  1. 反思问题(为什么出现,如何解决,后续如何避免)。

⚠️ 注意:如果问题比较严重或者比较典型,通常要写一个文档。

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

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

相关文章

MyBatisPlus 批量添加

文章目录现状优化效果现状 一般来说,批量插入可以使用 MyBatisPlus 中 ServiceImpl 自带的方法 saveBatch 打开 sql 日志,application.yml 添加配置,mapper-locations 配置 mapper 路径 mybatis-plus:configuration:log-impl: org.apache.i…

LEAP模型的能源环境发展、碳排放建模预测及不确定性分析

LEAP(Long Range Energy Alternatives Planning System/ Low emission analysis platform,长期能源可替代规划模型)是一种自下而上的能源-环境核算工具,由斯德哥尔摩环境研究所和美国波士顿大学联合研发。该模型与情景分析法紧密结…

基于Jetson Tx2 Nx的Qt、树莓派等ARM64架构的Ptorch及torchvision的安装

前提 已经安装好了python、pip及最基本的依赖库 若未安装好点击python及pip安装请参考这篇博文 https://blog.csdn.net/m0_51683386/article/details/129320492?spm1001.2014.3001.5502 特别提醒 一定要先根据自己板子情况,找好python、torch、torchvision的安…

信箱|邮箱系统

技术:Java、JSP等摘要:在经济全球化和信息技术飞速发展的今天,通过邮件收发进行信息传递已经成为主流。目前,基于B/S(Browser/Server)模式的MIS(Management information system)日益…

C语言数组二维数组

C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的变量,比如 runoob0、runoob1、…、runoob99,而是…

唤醒手腕前端 Electron Gui 桌面应用开发详细教程(流程模型、进程通信、进程沙盒化)

流程模型 Electron 继承了来自 Chromium 的多进程架构,这使得此框架在架构上非常相似于一个现代的网页浏览器。 为什么不是一个单一的进程? 网页浏览器是个极其复杂的应用程序。 除了显示网页内容的主要能力之外,他们还有许多次要的职责&a…

红黑树(Insert())

文章目录红黑树代码红黑树性质红黑树vsAVL树红黑树的实现Insert()情况一:如果我插入的新节点时红色的情况二:叔叔是黑色或者不存在情况三: cur红,p为红,g为黑,u不存在或者为黑-双旋检查erase()红黑树vsAVL树红黑树的应用:红黑树 二叉搜索树 …

分布式框架RabbitMQ详解以及编程特性Base实现

消息队列MQ MQ的主要作用有: 异步 例子: 快递员发快递,直接到客户家效率会很低。引入菜鸟驿站后,快递员只需要把快递放到菜鸟驿站,就可以继续发其他快递去了。客户再按自己的时间安排去菜鸟驿站取快递. 作用:异步能提高系统的…

基于明道云平台重建医院管理流程

一、龙华区医疗信息化建设情况 首先,给大家介绍一下龙华区医疗信息化建设的情况,龙华区位于深圳市的中部,目前下属3家公立医院,2家公共卫生机构。2017年,龙华区提出了建设智慧龙华总体框架方案,龙华区卫生…

FPGA Cameralink图像生成模板,Cameralink采集卡图像采集

FPGA Cameralink图像生成模板,Cameralink采集卡图像采集。1:采集卡安装2:FPGA产生图像模板module vga_lcd_driver(input clk,input [7:0] r_i,input [7:0] g_i,input [7:0] b_i,output [7:0] r_o,output [7:0] g_o,output [7:0] b_o,output d…

《QDebug 2023年2月》

一、Qt Widgets 问题交流 二、Qt Quick 问题交流 三、其他 1.使用 QDir::toNativeSeparators() 转换路径中的 "/" 分割符为 "\" 在网上抄代码的时候,总会遇到这样的代码: file_path.replace("/", "\\"); …

界面开发(3)--- PyQt5用户登录界面连接数据库

文章目录数据库账户注册账号登录找回密码为了实现用户登录界面的登录功能,我们必须建立一个数据库,并把账号和对应的密码,存储到数据库中。如果输入的账号和密码与数据库中的一致,那我们就允许用户登录,进入新的界面。…

win10 WSL2 使用Ubuntu配置与安装教程

Win10 22H2ubuntu 22.04ROS2 文章目录一、什么是WSL2二、Win10 系统配置2.1 更新Windows版本2.2 Win10系统启用两个功能2.3 Win10开启BIOS/CPU开启虚拟化(VT)(很关键)2.4 下载并安装wsl_update_x64.msi2.5 PowerShell安装组件三、PowerShell安装Ubuntu3.…

WMS相关知识点(二)

目录一、Android 图形显示系统1. 从下层往上层理解一、Android 图形显示系统 1. 从下层往上层理解 1.1 显示屏 显示屏上的内容,是从硬件帧缓冲区的,大致读取过程为:从Buffer的起始地址开始,从上往下,从左往右&#x…

Redis持久化RDB和AOF

Redis 是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将 Redis 中的数据以某种形式(数据或命令)从内存保存到硬盘。当下次 Redis 重启时,利用持久化文件实现数据恢复。除…

《C++ Primer》 第十二章 动态内存

《C Primer》 第十二章 动态内存 动态内存与智能指针 shared_ptr允许多个指针指向同一个对象;unique_ptr则“独占”所指向的对象,weak_ptr指向shared_ptr所管理的对象。这三种类型都定义在memory头文件中。 shared_ptr类:默认初始化的智能…

Docker容器化部署.net core API

1.为API集成Docker环境。(VS自带,傻瓜式操作) 1.1 点击项目,右键,添加,选择Docker支持 1.2 找到项目根目录中的Dockerfile文件,这是VS刚刚帮我们自动生成的。进入和做如图标红地方修改。 把文…

map和set 的封装

文章目录引入key-value模型map和set底层setset的几个重要接口mapmap几个重要的接口map和set的封装引入 对于map和set的引入,我们用一道在程序中常见的问题解决: 给定一个数组int arr[]{1,2,1,3,1,4,1,5,5,2,3,4,5};,给出以下问题的解决方案&…

【基础算法】双指针---最长连续不重复子序列

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…

html基础(列表(ul、ol、dl)、表格table、表单(input、button、label)、div和span、空格nbsp)

1无序列表<ul>和有序列表<ol>1.1无序列表<ul><!-- 无序列表 --><ul><li>吃饭</li><li>睡觉</li><li>打豆豆</li></ul>1.2有序列表<ol><!-- 有序列表 --><ol><li>吃饭</li…