【测试】概念篇

news2024/12/28 11:19:22

目录

🌟一、了解软件测试

🌈1、什么是软件测试

🌈2、软件测试与开发的区别(常考)        

🌈3、一个优秀的软件测试人员应该具备的素质

🌟二、需求与测试用例、软件错误,软件生命周期

🌈1、需求是什么?

🌈2、从测试人员角度看需求

🌈3、什么是测试用例?(重要)

🌈4、什么是软件错误(BUG)?

🌈5、软件的生命周期?

🌟三、开发模型与测试模型(重要)

🌈1、瀑布模型(Waterall  Model)

🌈2、螺旋模型(Spiral Model)

🌈3、增量,迭代

🌈4、敏捷(重要!)

🌟四、软件测试模型

🌈1、软件测试V模型

🌈2、软件测试W模型


🌟一、了解软件测试

🌈1、什么是软件测试

        测试是一个过程,这个过程是由测试人员来验证软件的特性是否符合需求。特性包括:功能相关和非功能相关。最常见的理解就是:软件测试就是找UG,发现缺陷。软件测试只是一个样本试验,具有不可穷尽性。

🌈2、软件测试与开发的区别(常考)        

开发测试
工作内容利用编程语言开发软件理解需求,设计测试用例,执行测试,发送测试报告
技能要求深度要求广度要求
发展前景初级开发-中级开发-高级开发-架构师-CTO初级测试-中级测试-高级测试-项目经理/产品经理
薪资待遇/中小企业总体小于开发,大企业基本和开发持平

❓问题1:软件测试与调试的区别?

1)执行阶段不同:测试在前。测试在开发没有写代码的时候就已经在测试了。测试贯穿整个生命周期。调试是在开发写出来部分或者整体代码才进行,调试一般发生在开发阶段。

(2)参与角色不同:测试时测试人员和开发人员一起。黑盒测试主要由测试人员完成,单元/集成测试主要由开发人执行。 -调试则由开发人员执行。

(3)目的不同:调试:发现问题并解决;测试则发现问题。

(4)手段区别:调试:Debug+代码逻辑; 测试:根据各种方法:等价类划分,边界值法,判定表法...

🌈3、一个优秀的软件测试人员应该具备的素质

        (1)技能相关:掌握自动化测试技术,有一定的编程能力,优秀的测试用例设计能力;

        (2)非技能相关:沟通能力,快速学习的能力,开发能力,文字能力,探索性思维,兴趣,有一定的抗压力,责任感等。

🌟二、需求与测试用例、软件错误,软件生命周期

🌈1、需求是什么?

        需求主要分为:用户需求和软件需求。

        (1)用户需求:简单理解为是甲方提出的需求。如果没有甲方,那么就是指在终端用户使用产品的时候必须要完成的任务。这种需求一般比较简略。

        (2)软件需求:又叫做:功能需求。一般在进行软件开发的时候会把用户需求转换为软件需求,软件需求是开发人员和测试人员工作的直接依据。一般会有一个软件需求规格说明书。

 

🌈2、从测试人员角度看需求

        为什么说需求是测试人员开展软件测试工作的依据?

        在具体设计测试用例的时候,首先需要搞清楚每一个业务需求对应的多个软件功能需求点,然后分析出每个软件需求功能点对应的多个测试需求点,最后针对每个测试需求点设计测试用例。可以总结为:业务需求——>软件功能需求点——>测试需求点——>设计测试用例。

        以用户登录功能为例,主要分解为以下过程:

❓ 问题2:为什么需求对测试人员这么重要?

       (1) 从软件功能需求出发,需要无遗漏的识别出测试需求是至关重要的,这直接关系到用例的测试覆盖率

       (2)对于识别出的每个测试需求点,都需要采取具体的设计测试用例的方法来进行测试用例的设计。        

🌈3、什么是测试用例?(重要)

        (1)测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包括:测试环境,操作步骤,测试数据,预期结果等。测试用例解决了两大问题:测什么,怎么测。       

        🌰一个简单的测试用例:用户注册成功

步骤动作:期望的结果:
进入注册页面,选择注册系统展示出注册页面
输入符合要求的个人姓名,邮箱,性别,密码,确认密码,同意协议书,提交注册信息。系统进行注册操作,发送激活邮箱,注册成功后,跳转到注册成功页面。
用注册的邮箱和密码,进行登录功能登录成功,系统展示欢迎界面
测试方式手工
重要程度非常重要
测试环境CHROME,IE10+
测试前提系统运行正常,邮件服务器已经开启
功能模块注册登录

 那么测试用例有什么作用呢?

          在测试过程中,可能会因为没有全面的了解所有功能,所以测试的覆盖率无法衡量。对新版本的重复测试很难实施,并且存在大量的冗余测试而影响了测试效率。而设计测试用例就可以解决以上问题。

  • 测试用例可以保证测试质量;
  • 测试用例是测试人员执行测试的重要工作依据;
  • 测试用例是自动化实施的重要依据;
  • 测试用例可以降低工作人员的工作重复性。

🌈4、什么是软件错误(BUG)?

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

🌈5、软件的生命周期?

        软件的生命周期指的是软件产品从设想到不再使用而结束的时间。主要分为6个阶段:需求分析——>计划——>设计——>编码——>测试——>运行维护。

解释:        

        (1)需求分析:分析需求是否合理,需求是否完整;

        (2)计划:就是指这个项目由谁来开发,由谁来测试,什么时候开发结束,什么时候测试结束,什么时候产品上线等;

        (3)设计:开发人员来设计项目底层如何实现,要输出一个技术文档(详细的记录了在软件技术上如何实现,接口,库表,定时任务,mq等);测试人员设计测试用例;UI设计师:将需求文档转换为图片,做UI设计稿等;

        (4)编码:开发人员开始开发软件,测试人员设计测试用例;

        (5)测试:执行测试,提交BUG,验收BUG;

        (6)运行维护:将项目推到线上,如果发现线上BUG,则进行修复后重新上线。

🌟三、开发模型与测试模型(重要)

🌈1、瀑布模型(Waterall  Model)

特点:瀑布模型是一个线性模型。主要特点是每一个阶段只执行一次。

优点:每个阶段做什么事情都非常明确。

缺点:测试人员介入需求太晚,以至于如果有问题发现的时间也太晚。如果发现了问题,需要不断的回溯向前找问题。

适用于较小的项目。

🌈2、螺旋模型(Spiral Model)

        一般在软件开发初期阶段需求不是很明确的时候,采用渐进式的开发模式。螺旋模型是代表之一。

特点:每一次实施之前都要进行风险分析。

优点:风险分析可以避免一些未知的问题。

缺点:一旦风险分析出现错误就会带来损失,因此风险分析需要一定的成本。

对于规模庞大,复杂度高,风险大的项目。

🌈3、增量,迭代

        增量开发能显著降低项目风险,结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。因此,在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作。

        增量通常和迭代混为一谈,但是其实两者是有区别的。增量是逐块建造的概念,例如画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……而迭代是反复求精的概念,同样是画人物画,我们可以采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。

🌈4、敏捷(重要!)

敏捷宣言

 敏捷开发有很多种方式,其中scrum是比较流行的一种。。

(1)scrum里面的角色

        scrum主要由product owner(PO)产品经理, scrum master(SM)项目经理、team研发团队(开发RD,测试QA)组成。

  • product owner负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。
  • scrum master 负责召开各种会议,协调项目,为研发团队服务。
  • 研发团队由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。

(2)scrum的基本流程

        迭代开发:scrum会将产品的开发分解为若干个小sprint(迭代),周期从1周到4周不等,但一般不会超过4周。参与的团队人数一般是5人-9人。每周期要迭代完成的user story是固定的。每次迭代会产生一定的交付。

scrum的基本流程如下: 

🌟四、软件测试模型

🌈1、软件测试V模型

特点: 线性的。左边是开发,右边是测试。

优点:每个阶段干什么事情非常清晰。同时测试被划分成许多类型。

缺点:测试人员介入太晚,测试和开发是并行的。

🌈2、软件测试W模型

特点:W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成:开发一个V,测试一个V。

优点:测试人员早早介入了需求,测试与开发是同步进行。有利于尽早地全面的发现问题。

缺点:不能拥抱变化,意味着不能适用于敏捷。需求、设计、编码等活动被视为串行的;测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。


        周末啦😁继续努力鸭~

 

 

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

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

相关文章

一旦80%的开发人员都开始利用ChatGPT提升工作效率后,挑战与机遇在哪里?

其实我现在已经开始逐渐开始喜欢上ChatGPT了,上班时间摸摸鱼,和ChatGPT畅谈一下理想,遇见一些不太熟练的代码也懒得去上网查了,直接问一问ChatGPT,然后自己再放置到自己的代码里,改一改,很完美。…

快递出入库管理APP开发 收发快递更方便

网购的盛行让收发快递成为很多人日常生活必不可少的一个环节,对于快递公司来说,每天有那么多的快递,如果没有一个好用的管理系统的话,不仅麻烦还很容易出现纰漏,所以快递出入库管理APP软件就显得很必要了。 快递…

python-imageio库简单使用

目录 imread_v2() get_reader() 使用imageio方法将彩色视频变为黑白视频 相关:python-动图制作及分解_觅远的博客-CSDN博客 imageio是一个用于读取和写入图像及视频数据的库,支持多种格式,且可以使用NumPy数组进行操作。常用方法&#xff…

JS逆向 -- 某平台登录加密分析

一、打开网站,使用账号密码登录 账号:aiyou123.com 密码:123456 二、通过F12抓包,抓到如下数据,发现密码加密了 三、加密结果是32位,首先考虑是md5加密。 四、全局搜索pwd,点击右上角&#xf…

C# 纯text文本字符添加上下角标

工作的需求,需要在GridView列HeaderText中插入带入带有上标和下标的字符串,比如这样的一个字符串:。。 解决办法:使用转义字符加Unicode的NumEntity就可以实现了。定义字符串如下:"O"。其中O为 。 实现&…

Linux系统目录树结构以及解释

FHS标准 Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最…

rk平台调试音频(从驱动到apk)

需要实现的功能: 输入:hdmiin、uvc、mic可以实时切换 输出:耳机和HDMI OUT同时输出声音 这里注意:mic是存在hedset情况,4节耳机,即可输出又可输出同时进行 开发情况: 一、先熟悉大致的Andro…

【24】核心易中期刊推荐——图像处理研究大数据及智能处理研究

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…

springboot内嵌tomcat文件上传路径不存在问题原因

错误提示: 临时文件目录被删除,导致文件上传报错,我们使用的是linux系统,10天没有使用,就会被删除 代码: 解决办法: 配置文件中自定义临时文件上传目录 server:port: 9090tomcat:basedir: /crm/tmp 特殊情况: 当我上传小文件的时候可以上传成功,大文件的时候上传失败 猜测可…

利用Linux的corntab定时任务和shell脚本,解决傻妞卡死、发信息没反应、一直卡在即将重启、查询数据异常等问题

利用Linux的corntab定时任务和shell脚本,解决傻妞卡死、数据异常等问题 安装corntab创建shell脚本添加corntab定时任务 原理 定时杀死傻妞进程,并自动重启傻妞 安装corntab Linux crontab是用来定期执行程序的命令。 CentOS安装命令如下 yum -y insta…

【Android -- 开发工具】Source Insight 4.0 安装和使用教程

简介 Source Insight 工具是一款功能强大的代码阅读器,它能使大量的代码产生联系,方便阅读,而且支持各种语言的程序代码。 安装 & 激活 1. 下载 下载地址 直接点击下载即可,我下载的是 4.0 版本。 然后按照步骤安装完成即…

chatGPT给出Python time.sleep()假死(挂起)的解决办法

1. time.sleep()假死(挂起)的原因与解决办法 最近,使用chatGPT帮着写程序,完成通过API获取天气数据的程序,运行起来后出现了状况:莫名其妙的的假死(程序被挂起来,不执行了&#xff…

项目结构如何改造(利用RuoYi-Vue脚手架开发一个健身房会员管理系统,改造项目结构)

项目结构如何改造(利用RuoYi-Vue脚手架开发一个健身房会员管理系统,改造项目结构) 1. 全局查找替换(Ctrl Shift R)2. 全局查找替换版本号3. 全局查找替换模块名4. 修改项目名5. ShiftF6 重命名模块6. ShiftF6 重命名…

Nginx配置使用GeoIP2模块

一、Nginx简介 Nginx(engine x)是一个免费的、开源的、高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个…

不废话!CentOS 8 安装docker的详细过程

目录 1.更新系统 2. 安装依赖包 3.添加 Docker YUM 仓库 4.安装 Docker 5.启动 Docker 6.设置 Docker 开机自启 7.测试 Docker 1.更新系统 dnf update 这里直接输入y,耐心等待更新即可 直到看到complete表示更新完毕 2. 安装依赖包 Docker 需要一些依赖包才能正常…

什么是工业互联网?5G到底能在工业互联网中承担哪些重任呢?

一. 从消费互联网到工业互联网 在这个互联网如我们生活中的水和电一样无孔不入的时代,不能联网的设备是可耻的。它们像是一个一个的信息孤岛,原始而静寂。 然而50年前,这样的信息孤岛却是这个世界的常态,直到美国阿帕网的诞生…

运营-7.内容模型

在内容产品生态中,核心就是内容,内容驱使着所有的角色运转。具体而言,在整个生态模型中,内容的链条从上游 到下游的环节如下: PGC(Professionally-generated Content)专业生产内容 传统的门户…

最强无监督单目深度估计Baseline--MonoViT--简介与代码复现

1. 无监督单目深度估计 单目深度估计是指,借助于深度神经网络,从单张输入视图中推理场景的稠密深度信息;该技术可以广泛用于自动驾驶、虚拟现实、增强现实等依赖于三维场景感知理解的领域,同时也可以为其他视觉任务提供多模态深度…

部署simple-chat项目

simple-chat介绍:此项目是基于openAI3.5模型的h5端人工智能聊天项目,无需翻墙即可体验。 simple-chat线上地址:simple-chat simple-chat项目地址:GitHub - AMxiaoming/simple-chat nginx部署前端步骤: https://blo…

Android WebRtc+SRS/ZLM视频通话(1):虚拟机安装Ubuntu

Android WebRtcSRS/ZLM视频通话(1):虚拟机安装Ubuntu 来自奔三人员的焦虑日志 秉着没事找事的原则,这里直接从服务器安装开始说起,也当记录自己这一路以来的愚昧之举,由于没有物理服务器,这里以…