为什么需要这个岗位,软件测试是干什么

news2025/7/19 11:15:23

目录

一、软件测试概念

二、软件测试目的

三、软件测试基本原则

四、软件测试主要工作内容

五、软件测试方法

六、测试工程师的职责

七、为什么要软件测试这个岗位

一、软件测试概念


软件测试:为了发现软件错误和缺陷(统称bug)而执行程序的一个过程。

软件测试是软件开发过程的重要组成部分,是用来确认一个程序的功能或性能是否符合开发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。

二、软件测试目的


最直观的目的肯定是通过对软件系统或程序的测试,发现其中的错误。

软件测试的目的具体如下:

 验证软件需求和功能是否得到了完整的实现

尽可能早的发现软件中的bug

尽可能多的发现软件中的bug

验证软件是否可以发布

对软件的质量、性能、效率做出合理的评估

预防用户使用可能出现的问题

预防下个版本可能出现的问题

三、软件测试基本原则


所有测试的标准都是建立在用户需求之上的,测试的目的在于发现系统是否满足规定的需求;
“尽早地和不断地测试”,越早进行测试,缺陷的修复成本就会越低;
程序员应避免检查自己的程序,由第三方进行测试更客观有效;
穷举测试是不可能的;
充分注意测试中的群集现象,一段程序中一发现的错误数越多,其中存在的错误概率越大,因此对发现错误较多的程序段,应进行更深入的测试;
设计测试用例时应包括合理输入和不合理输入,以及各种边界条件、特殊情况下要制造极端状态和意外状态;
注意回归测试的关联性,往往修改一个错误会引起更多错误;
测试应从“小规模”开始,逐步转向“大规模”;
测试用例式设计出来,不是写出来的,应根据测试的目的,采用相应的方法设计测试用例,从而提高测试的效率,更多的发现错误,提高程序的可靠性;
重视并妥善保存一切测试过程文档(测试计划,测试用例,测试报告等);
对测试错误结果一定要有一个确认的过程

四、软件测试主要工作内容


软件测试主要工作内容是验证和确认,下面分别给出其概念:

1、验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。

(1)确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;

(2)程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;

(3)评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。

2、确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件。

(1)静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;

(2)动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。

3、软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。

从不同的角度出发,软件测试可以划分为不同的分类:

(1)从是否关心软件内部结构和具体实现的角度划分

A.白盒测试

B.黑盒测试

C.灰盒测试

(2)从是否执行程序的角度

A.静态测试

B.动态测试。

(3)从软件开发的过程按阶段划分有

A.单元测试

B.集成测试

C.确认测试

D.验收测试

E.系统测试

五、软件测试方法


软件测试一般分为白箱测试和黑箱测试。

1、黑箱测试

  黑箱测试(black-box testing),也称黑盒测试,是软件测试方法,测试应用程序的功能,而不是其内部结构或运作。测试者不需具备应用程序的代码、内部结构和编程语言的专门知识。测试者只需知道什么是系统应该做的事,即当键入一个特定的输入,可得到一定的输出。测试案例是依应用系统应该做的功能,照规范、规格或要求等设计。测试者选择有效输入和无效输入来验证是否正确的输出。

  此测试方法可适合大部分的软件测试,例如单元测试(unit testing)、集成测试(integration testing)以及系统测试(system testing)。

2、白箱测试

  白箱测试(white-box testing,又称透明盒测试glass box testing、结构测试structural testing等)是一个测试软件的方法,测试应用程序的内部结构或运作,而不是测试应用程序的功能(即黑箱测试)。在白箱测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的流动路径,并确定适当的输出,类似测试电路中的节点。

  白箱测试可以应用于单元测试(unit testing)、集成测试(integration testing)和系统的软件测试流程,可测试在集成过程中每一单元之间的路径,或者主系统跟子系统中的测试。尽管这种测试的方法可以发现许多的错误或问题,它可能无法检测未使用部分的规范。

六、测试工程师的职责


1、参与软件项目的需求分析,关注项目需求的可测性,并能预先评估项目的风险;

2、负责软件项目的测试方案制定,设计测试数据和测试用例,并进行相互评审;

3、实施软件测试,完成对产品的集成测试与系统测试,对产品的功能、性能及其他方面的测试负责;

4、对项目总的问题进行跟踪分析和报告,推动测试中发现问题及时合理地解决;

5、汇总测试执行情况,编制相关报告。

七、为什么要软件测试这个岗位


1、现在软件系统越来越复杂,一个软件系统可能由几个几十个人一起开发的,单个开发可能只熟悉他所有编写的模块,对于其他有影响的模块不熟悉,容易产生错误

2、开发自己写的代码自己不容易检查出错误,开发也有可能遗漏需求功能或者缺失异常处理,需要测试来帮助他们检查软件是否有bug ,是否符合产品设计,是否符合用户习惯,异常是否都已经处理, 

3 、现在市场竞争激烈,对软件开发的周期和质量要求越来越高, 如果没有测试,开发很难再短时间内开发出客户满意的系统,导致软件的经济效益不好

总之一句话, 如果没有测试,软件的质量很难得到保证!

既然看到这里,在收藏的同时,也请不吝啬的点个赞呗!期待 ~

绵薄之力【资源分享】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接
拿走:

 

文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群自行领取即可,拿走不谢。
 

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

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

相关文章

网络协议(八):传输层-TCP(三次握手、四次挥手原理)

网络协议系列文章 网络协议(一):基本概念、计算机之间的连接方式 网络协议(二):MAC地址、IP地址、子网掩码、子网和超网 网络协议(三):路由器原理及数据包传输过程 网络协议(四):网络分类、ISP、上网方式、公网私网、NAT 网络…

拒绝摆烂!神仙网站Python自学,一路从入门闯到最后,边学边玩

前言给大家推荐3个边玩边学python的网站在刚接触编程,培养对其持续的兴趣是最最重要的事情辣!!!因为前期需要大量的基础代码知识积累,这个过程对于不少人来说还是挺枯燥的,很有可能学到一半就放弃了&#x…

中电金信:金融数字化转型路在何方?这里有答案

近期,媒体大数网整合了业内10份研究报告,详解金融数字化转型的思路、方法与路径。其中「中国电子金融级数字底座“源启”白皮书」也被收录其中。让我们一同阅读文章,探究金融数字化转型相关问题的答案吧。 当前,金融科技正在回归…

大厂跟进ChatGPT,为什么百度“文心一言”成色最好?【快评】

作者 | 曾响铃 文 | 响铃说 赶ChatGPT热度,百度3月初就要发布与ChatGPT类似的人工智能聊天机器人服务“文心一言”(英文名:ERNIE Bot),似乎无法提振资本市场对百度的信心。 2022年第四季度及全年未经审计的财报发布…

Python-基础知识

Python是什么 Python是计算机编程语言。 Python是解释型语言:Python在执行时,首先会将.py文件中的源代码转换成Python字节码,然后再由Python虚拟机来执行编译好的字节码。 名词解释 Python解释器(Interpreter)&#…

Text to image论文精读ALR-GAN:文本到图像合成的自适应布局优化

ALR-GAN是北京工业大学学者提出的一种自适应布局优化生成对抗网络,其可以在没有任何辅助信息的情况下自适应地优化合成图像的布局。 文章发表于2023年,IEEE Transactions on Multimedia(TMM)期刊(CCF B,JCR…

基于Frenet优化轨迹的⾃动驾驶动作规划⽅法

动作规划(Motion Control)在⾃动驾驶汽⻋规划模块的最底层,它负责根据当前配置和⽬标配置⽣成⼀序列的动作,本⽂介绍⼀种基于Frenet坐标系的优化轨迹动作规划⽅法,该⽅法在⾼速情况下的ACC辅助驾驶和⽆⼈驾驶都具有较强…

浅谈MySQL索引

目录 1.索引的定义 2.索引的原理 3.Hash索引与B Tree索引 4.索引的分类 5.建立索引的注意事项 1.索引的定义 索引是存储引擎用于快速找到数据记录的一种数据结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。 索…

python常见问题详解

Python python 没有多态,而是鸭子类型 多继承,没有接口,可通过语法糖实现接口的作用 lambda中只能有一句 "/"表示之前的参数是必须是位置参数,”**“表示是后面的必须是关键字参数 Python多进程 Python 多线程是伪多线…

ASE0510SH-ASEMI的MOS管ASE0510SH

编辑-Z ASE0510SH在SOT-89封装里的静态漏极源导通电阻(RDS(ON))为140mΩ,是一款N沟道中低压MOS管。ASE0510SH的最大脉冲正向电流ISM为15A,零栅极电压漏极电流(IDSS)为1uA,其工作时耐温度范围为-55~150摄氏度。ASE0510…

Mac电脑_GitHub提交项目至仓库

第一步(准备工作): Mac 电脑自带 git , 无需安装 1. 创建一个项目 demo1 在 github 上 2. 创建 ssh 密钥 打开终端: ssh-keygen -t rsa -C "your_emailyouremail.com" 此处输入两次密码, 直接…

Linux-MYSQL 登录数据库(命令行,图形化) 及 远程登录

命令行登录 :mysql 命令登录数据库语法 : mysql -u用户名 -p密码 -h 连接的数据库服务器的ip [-D] 数据库名 -p 端口注 : 上面的 mysql 命令是指的是 客户端的指令 ~!!-h : 指的就是 连接数据库服务器的 ip…

并发编程学习篇ReentrantLock设计思想剖析

一、AQS原理剖析 什么是AQS java.util.concurrent包中的大多数同步器实现都是围绕着共同的基础行为,比如 等待队列、条件队列、独占获取、共享获取等而这些行为的抽象就是基于AbstractQueuedSynchronizer(简称AQS)实现的,AQS是一…

如何使用开源 BI 工具 DataEase 实现系列数据分析呢?

当我们使用可视化分析工具制作仪表板时,可能需要制作的仪表板不是单个单个的可视化大屏,而是一系列的仪表板,我们需要用它来产生一个连续性的故事,那么这个时候我们该怎么办呢?例如说总分形式,我们需要一个…

18. linux系统基础

shell 命令解析器 命令解析器作用: 他把在终端上输出的命令 给你解析成内核可以识别的指令,内核 是经过命令解析器的加工 shell在找命令的时候,所包含的路径,就是在这些路径里去 找 找到就执行 找不到就报错 报错 要么 这个命…

mars3d加载建筑物白膜及简单建筑物样式

首先需要拥有shp格式的数据。可以通过水经微图下载,注意此软件是付费的将shp格式的数据处理为切片数据,可以使用cesiumlab处理完成得到json数据就可以在mars3d中加载了 function init() { // 判断webgl支持 if (!mars3d.Util.webglreport()) { …

20分钟10张动图8个示例带你更好的理解EventLoop

介绍 JavaScript 主要在 Node.js 和浏览器中的单个线程上执行(有一些例外,例如工作线程,这超 出了当前文章的范围)。在本文中,我将尝试解释 Node.js 的并发机制,即事件循环。 例子 我相信通过示例学习是最好的,因此我将从 4 个简单的代码示例开始。我将分析示…

持久化存储PV与PVC

1.PV与PVC PV: 持久卷(PersistentVolume)简称PV,是集群中的一块存储,可以由管理员事先供应。 可以配置NFS、Ceph等常用存储配置,相对于volumes,提供了更多的功能,如生命周期管理、大…

用了10年Postman,意想不到它的Mock功能也如此强大

最近在做一些app,前后端分离的开发模式是必须的。一直用的python flask做后端的快速POC,python本身就是一门胶水语言,开发起来方便快捷,而flask又是一个极简的webserver框架(比Django简洁)。但在这里推荐的…

关于我利用python开发的PC端标注软件及目标检测软件

如何利用python快速开发PC端目标检测及数据标注软件概述开发软件背景开发第一步:功能需求分析开发第二步: 前端分区设计开发第三步:功能开发开发第四步:程序功能的打包与检查开发第五步:程序的反馈与改善一个例子的展示…