《软件测试开发》概念篇

news2024/11/24 15:34:04

目录

一.什么是测试

二.测试与开发之间的区别1.工作内容上的区别

2.技能要求上的区别

3.发展前景

测试与调试之间的区别

三.优秀的测试人员所应具备的素质

四.需求

需求的概念

需求的产生,需求是怎么来的?

测试人员眼中的需求

需求的重要性

测试人员如何深入理解需求

五.测试用例

概念

测试用例的重要性

六.BUG

概念

评判标准

七.软件生命周期

概念

详细介绍

八.开发模型

瀑布模型

螺旋模型

增量、迭代

敏捷

scrum是敏捷开发模式中的一种实现

敏捷宣言

scrum中的角色

敏捷开发流程

软件测试V模型

软件测试W模型 


一.什么是测试

测试:测试是一个过程,是测试人员验证软件的特性是否符合需求

软件特性:特性分为功能相关的特性与非功能相关的特性,后续再进行详细介绍

二.测试与开发之间的区别
1.工作内容上的区别

开发:主要的工作内容是利用编程语言进行软件开发,修复BUG和开会...

测试:理解需求,设计测试用例,执行测试,发送测试报告......

2.技能要求上的区别

测试:测试人员在技能广度上要求更高

开发:开发人员在技能深度上要求更高

3.发展前景

测试:初级测试->中级测试->高级测试->架构师->CTO

开发:初级开发->中级开发->高级开发->项目经理/产品经理

测试与调试之间的区别

1.阶段不同:测试贯穿软件开发的整个声明周期,而调试只能等开发人员写出部分代码或者全部代码之后才能进行

2.参与人员不同:调试是由开发人员来完成,而测试是测试人员和开发人员共同参与,一般而言,黑盒测试是由测试人员完成,而部分的白盒测试是由开发人员来完成的(如部分单元测试和部分系统测试)

3.目的不同:调试的目的是发现并解决问题,而测试的目的是为了发现问题

4.手段不同:调试通常使用debug+打断点和利用代码间的逻辑进行,而测试则是使用丰富的测试方法,如等价划分法,边界值法,判定表法......

三.优秀的测试人员所应具备的素质

分两个方面进行讲述:

技能相关:包括测试用例的设计方法和编程能力......
非技能相关:沟通能力,文字表达能力,抗压力以及责任感等等

四.需求

需求的概念

需求:满足用户需要或者正式规定文档中所具有的条件和权能,需求可以分为用户需求和软件需求 

用户需求:由甲方(用户提出来的需求),这类需求一般比较简单,对需求的描述也不是非常清楚。

软件需求:由产品(人员)设计产生,详细描述需要实现的功能需求

需求的产生,需求是怎么来的?

需求主要由产品经理通过各种渠道收集用户需求信息,并由此生成一份完整且详细的需求文档

测试人员眼中的需求

测试人员会将业务需求划分为不同的软件功能模块,将每个模块细化为不同的功能和测试点,根据每个细化的功能和测试点从功能相关,兼容性相关,安全性相关,外观相关,易用性相关等方面设计不同的测试用例 

例如:

需求的重要性

如果对于软件设计的需求不清楚,或者没有需求,会导致很严重的问题。比如如果开发人员和测试人员对于软件设计的需求没有得到统一,在这种情况下一旦项目上线,由于可能测试人员对于项目的需求水平较低,而没有考虑全面的测试用例,可能会导致很严重的问题;同时开发和测试需求不统一两者在项目协作上效率也会很低。

例如我们拿登录这样一个业务需求来说,如果需求不清楚,将会导致我们对登录的方式,账号密码的来源和账号密码的显示形式都不清楚,则会有极大的可能性导致测试人员设计的测试用例与开发人员开发的软件不匹配,测试也可能会导致漏测的产生

漏测:软件测试人员测试用例不全面,在软件上线之后出现BUG

测试人员如何深入理解需求

需求是在需求评审会议中产品经理通过需求文档的形式向测试人员介绍需求,后续测试人员通过产品的需求文档和开发方的技术文档,并通过后续与产品经理和开发人员之间的沟通深入理解需求

五.测试用例

概念

测试用例是为了实施测试面向被测试的系统提供的一组集合,这组集合包括:序号,测试标题,测试环境,操作步骤,测试数据,预期结果等要素。测试用例是测试人员执行测试的重要依据。

我们拿测试用户登录的一组用例来讲述:

测试序号:001 测试标题:用户登录的正常测试 测试环境:本地 操作步骤:输入账号,输入密码,点击登录 测试数据:账号+密码 预期结果 :登录成功

我们再举一个我们之前博客系统的一个测试用例:

测试用例的重要性

测试用例是测试人员执行测试的重要依据:我们在执行测试之前要先设计好测试用例,所以它是测试人员执行测试的重要依据。

测试用例是自动化测试的重要依据:我们进行自动化测试虽然不需要人工手动执行测试过程,但是仍需人工设计好测试用例
测试用例降低测试人员的重复性:如果我们要进行的测试可以分为很多项,需要不同的测试人员进行协作测试,如果不规定好每个测试人员所需要测试的用例,很容易造成同一个测试项多个测试人员的重复测试
测试用例可以保证测试质量:只有设计出完成且高质量的测试用例,才能保证测试的质量

六.BUG

概念

在规格说明正确的前提下,程序与规格说明不匹配的现象我们称之为BUG

评判标准

BUG的评判标准主要依赖于以下两个点:

①规格说明中存在,且规格说明确保正确,程序与规格说明不符,则说明出现了BUG

②规格说明书中没有提到的功能,以用户作为最终的评判标准,当程序最终没有实现用户的合理预期功能时,我们称出现了BUG

七.软件生命周期

概念

即需求,计划、设计、编码、测试、运行维护

详细介绍

需求产生与需求分析:产品人员将用户需求转化为软件需求 ,并生成需求文档,根据需求文档进行需求分析,并分析需求是否合理和完整

计划:规定项目整体规划,即项目有谁开发,由谁维护,什么时候开始开发和开发结束,什么时候测试结束,什么时候上线等等

设计:开发人员设计项目底层如何实现,输出一个技术文档(详细记录了软件技术上如何实现,接口,库表,定时任务,mq......) 和UI设计稿(UI设计师将需求文档转化为图片)

编码:开发人员开发软件,测试人员设计测试工具,设计测试用例

测试:执行测试,提交BUG,验收BUG

运行维护:将项目推到线上,如果发现线上BUG,此时需要修复和重新上线

八.开发模型

瀑布模型

 

特点:每个阶段都是线性执行的

优点:每个阶段的目标都很明确

缺点:测试人员介入太晚,如果出现问题,只能一步一步向前回溯,直到发现问题所在

适用项目:小型项目

螺旋模型

 

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

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

缺点:风险分析一旦出现错误就会带来损失,同时风险分析需要一定的成本(时间人员金钱

增量、迭代

我们说一下增量和迭代的区别:

假设APP的开发包含了1,2,3,4这四个模块

增量:先开发1模块,再开发2模块,再开发3模块,再开发4模块

迭代:先开发一模块中的一部分,比如整体架构等等,再开发二模块的一部分,再开发三模块的一部分,再开发4模块的一部分,这样一直往复,直到开发结束

敏捷

scrum是敏捷开发模式中的一种实现

敏捷宣言

个体与交互重于过程和工具 :敏捷开发模式更注重开发项目中开发者之间的交互,而设计的开发过程与开发工具都是服务于开发者之间的交互
可用的软件重于完备的文档 :即使在某些特殊情况下开发人员没有生成技术文档,我们仍然可以通过与真实可用的软件生成完整的测试用例进行测试
客户协作重于合同谈判 :我们无权要求用户在项目设计之初就把所有需要实现的功能和具体细节全部写入项目合同中,而应该是用户与开发者在整个项目开发过程中进行往复的交互。(在开发过程中用户可能提出新的功能要求和细节实现)
响应变化重于遵循计划 :比起之前设计好的计划,敏捷开发模式更注重开发者如何响应变化
在每对比对中,后者并非全无价值,但我们更看重前者。

scrum中的角色

PO(产品经理):负责收集用户需求,并生成需求文档

SM(项目经理):在项目开发过程中出现的问题由项目经理负责协调帮助

Team(开发团队,包括前端开发,后端开发,测试,设计)

敏捷开发流程

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

 我们按照开发流程一一进行解释说明:

1.产品经理(PO)负责收集用户需求,并将用户需求写入需求池,从而生成product log

2.项目经理(SM)负责对所有需求的优先级进行排序,并生成项目执行计划(谁来开发,谁来测试,开发时间,测试时间....)

3.每日站会:每天早上负责对昨天的任务进行总结以及阐述是否需要帮助,对今天的任务进行计划

4.演示会议:将一个迭代周期的项目开发完成后将项目演示给组中未参与开发的人员,由他们来提出建议,如果需求合理则加入需求池,下一阶段的开发完成这个需求

5.回顾会议:对项目开发过程中出现的问题进行记录,以便后续开发出现类似问题时进行解决或提供解决方案

软件测试V模型

 我们对其进行详细介绍:
用户需求:PM收集用户需求并产出软件需求

需求分析与系统:F分析需求是否正确和完整

概要设计:对项目进行整体方面的设计,包括使用什么语言,什么框架,以及项目结构如何设计等等

详细设计:对每个功能进行详细设计,最终生成技术文档(技术文档中包括接口,库表,mq,redis,定时任务......)

编码:详细代码的实现

单元测试:测试一个一个的单元(一个类,一个方法...)

集成测试:测试某个模块

系统测试:把整个项目运行起来然后整体进行测试

验收测试:将最终成果交给产品,运营与用户进行验收

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

优点:每个阶段所要做的任务都是非常清晰的,测试被划分为了许多类型

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

软件测试W模型 

 

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

特点:开发一个V,测试一个V

优点:测试人员尽早介入了需求 测试和开发是并行的

缺点:不能拥抱变化,发生变化之后还是得一步一步向前回溯找出错误,也就意味着不适用于敏捷开发模式,测试和开发并不是完全并行,在一定程度上也是串行的 

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

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

相关文章

论文阅读 (94):Substructure Aware Graph Neural Networks (SAGNN, AAAI2023)

文章目录 1 要点1.1 概述1.2 一些概念1.3 代码1.4 引用 2 基础知识2.1 符号2.2 信息传递神经网络 (MPNN) 3 方法3.1 子图提取3.1.1 基于节点的策略3.1.2 基于图的策略 3.2 随机游走返回概率编码3.3 子图信息注入的信息传递 1 要点 1.1 概述 题目:子结构感知图神经…

《YOLOv5/YOLOv7魔术师》专栏介绍 CSDN独家改进创新实战专栏目录

💡💡💡YOLOv5/YOLOv7魔术师,独家首发创新(原创),持续更新,最终完结篇数≥100,适用于Yolov5、Yolov7、Yolov8等各个Yolo系列,专栏文章提供每一步步骤和源码&am…

测试员眼中的____是____

- 1 - 测试员眼中的开发是淘气的孩子 只有靠哄、豁、骗 才能让其完成“作业” - 2 - 测试员眼中的产品经理是女票 不管大小事,只要意见有出入 都得与其商量,才能最终拍板 - 3 - 测试员眼中的UI是艺术家 每天都操着画板(苹果显示器&#xff…

解除网页禁止复制,复制粘贴没烦恼。

参考 解除网页禁止复制,复制粘贴没烦恼。 https://zhuanlan.zhihu.com/p/344419634 安装SuperCopy插件

游戏出海长期向好趋势未改,茄子科技助力企业把握出海机遇

在中国游戏出海成为更多企业的必选题之时,如何把握出海机遇,在激烈竞争中实现增长,成为中国游戏厂商的着力点。秉承着红海将至的市场发展背景,出海全球化、本地化的战略已经成为企业大势所趋,越来越多的游戏厂商开始挑…

【3 栈和队列】共享栈

利用栈底位置相对不变的特性,可以让两个顺序栈共享一个一维数据空间,将两个栈的栈底分别设置在共享空间的两端,两个栈顶向共享空间中间延伸。 两个栈的栈顶指针都指向栈顶元素, top0-1时0号栈为空,top1MaxSize-1时1号…

智安网络|网络安全威胁多样化和复杂化,防护任务日益艰巨

随着数字化和网络化的加速发展,人们面临的网络安全问题日益增多。由于网络安全威胁的多样性和复杂性,网络安全防护变得越来越困难。 一. 网络安全威胁的复杂性 网络安全威胁种类繁多,主要包括病毒、木马、蠕虫、间谍软件、恶意软件、黑客攻击…

解决使用idea的maven打包springboot项目时,“不支持版本号17”的问题

问题描述 在idea里面使用maven的package功能,对一个springboot项目打包jar包时,出现了“不支持版本号17”的错误 经排查,本地确实装了jdk17的,而且运行mvn -version也提示有java 17 解决办法 最后发现,可能是idea…

2023年生猪行业研究报告

第一章 行业概况 生猪是指猪类动物中未经加工的、原始的、活体的猪,通常是指用于肉类生产的猪。生猪在全球范围内都是主要的肉类来源之一。它们的肉质丰富,营养价值高,同时还能用来制作各种加工肉类产品,如火腿、香肠等。 生猪养…

以太网 (数据链路层协议)

以太网 认识以太网以太网数据帧 认识以太网 “以太网” 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。 例如:规定了网络拓扑结构,访问控制方式,传输速率等&a…

你值得拥有——流星雨下的告白(Python实现)

目录 1 前言 2 霍金说移民外太空 3 浪漫的流星雨展示 4 Python代码 1 前言 我们先给个小故事,提一下大家兴趣;然后我给出论据,得出结论。最后再浪漫的流星雨表白代码奉上,还有我自创的一首诗。开始啦: 2 霍金说移民外…

数据万象AVIF图片压缩 - 小程序省流量利器

导语 微信小程序因其便捷的开发环境和天然的微信生态,使得越来越多企业平台通过小程序建立自己的业务。在小程序上使用图片非常广泛,但传统格式图片(如 JPG/PNG)占用空间大,加载速度慢,可能导致昂贵的图片…

瑞吉外卖-Day01

title: 瑞吉外卖-Day01 abbrlink: ‘0’ date: 2023-04-1 18:00:00 瑞吉外卖-Day01 课程内容 软件开发整体介绍 瑞吉外卖项目介绍 开发环境搭建 后台登录功能开发 后台退出功能开发 1. 软件开发整体介绍 作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流…

基于Java+Vue前后端分离田径运动会成绩管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

Echarts 环形图图例内容+数据+换行

由于legen.formatter return的数据并不支持直接换行所以只能用/n进行换行。但是使用\n后的内容并不能很好的进行对齐,刚开始也是困扰了我很久,毕竟UI图已经定稿只能硬着头皮上了。 说一下我的方法: 1.使用formatter 先拿到想要的数据然后用\n进行换行 …

2023年07月编程语言流行度排名

点击查看最新编程语言流行度排名(每月更新) 2023年07月编程语言流行度排名 编程语言流行度排名是通过分析在谷歌上搜索语言教程的频率而创建的 一门语言教程被搜索的次数越多,大家就会认为该语言越受欢迎。这是一个领先指标。原始数据来自…

SAP 销售订单状态修改

FM: I_CHANGE_STATUS 代码样例: FUNCTION zjkdms003. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" VALUE(I_VBELN) TYPE VBELN_VA OPTIONAL *" EX…

初中数学知识点-约数倍数

1、约数(因数)、倍数 整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。 a称为b的倍数,b称为a的约数。约数,又称因数。 2、公约数、最大公约数 几个数公有的约数,叫…

Spark(10):RDD依赖关系

目录 0. 相关文章链接 1. RDD 血缘关系 2. RDD依赖关系 3. RDD窄依赖 6. RDD宽依赖 7. RDD阶段划分 8. RDD阶段划分源码 9. RDD任务划分 0. 相关文章链接 Spark文章汇总 1. RDD 血缘关系 RDD 只支持粗粒度转换,即在大量记录上执行的单个操作。将创建 RDD …

HDLBits刷题笔记7:Circuits.Combinational Logic.Karnaugh Map to Circuit

Karnaugh Map to Circuit 3-variable 实现如下卡诺图,用sop和pos两种方式 化简: module top_module(input a,input b,input c,output out ); // sop和pos相同assign out a | b | c; endmodule4-variable 实现如下卡诺图,用sop和pos两种方…