软件测试 —— 答疑篇

news2024/11/29 8:46:28

什么是软件测试:

软件测试是不是就是找 bug
软件测试就是证明软件不存在错误的过程
软件测试就是为了证明程序能够正确运行
刚新买来一部手机,我们要干什么?
一场考试 , 做完一遍题目之后 , 进行一遍检查 , 就是在 " 测试 "
买一台电视 , 安装好之后打开试试看能不能正常使用 , 也是在 " 测试 "
概念:验证软件功能是否满足用户的需求。
  • 1979年,Glenford Myers(美 梅尔斯),<软件测试艺术>[The Art of Software Testing]:为了发现错误而 执行程序或者系统的过程
  • 1983年,Bill Hetzel在《软件测试完全指南》(Complete Guide of Software Testing)一书中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。
  • 1983年,IEEE软件工程标准术语:使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试的定义随着发展而不断扩展,但是不可否认的是软件测试最基本的活动就是找bug。而不同的定义只 是说明了测试的目的以及如何来衡量测试是否成功。

软件测试的发展:

1. 软件调试
2. 独立的软件测试( 1950~
3. 软件测试的第一次定义( 1973~Bill Hetzel ),软件测试就是对程序能够按预期的要求运行建立起一种信心
4. 软件成为专门的学科( 1980~
5. 开发与测试的融合( 2000~

测试与调试的区别:

目的不同
测试的任务是发现程序中的缺陷;调试的任务是定位并且解决程序中的问题。
参与角色不同
测试主要是由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元 / 集成测试主要是由开发人员执行。调试由开发人员完成。
执行的阶段不同
测试贯穿整个软件开发生命周期,调试一般在开发阶段。

软件测试岗位有哪些

1. 软件测试开发工程师( SET ), software engineer in test google 的角色划分
开发角色,工作重心为可测试性以及通用测试基础框架。编写单元测试框架和自动化测试框架。 SET 关注质量提升和测试覆盖率。
2. 测试工程师( TE ), test engineer google 的角色划分
SET 关系密切,但把用户放在第一位来思考。 TE 组织整体测试实践,并进行分析总结,驱动测试执行,构建端到端的自动化测试。
3. 软件开发测试工程师( SDET ), software development engineer in test ,微软的角色划分
通常称为测试人员( Tester ),负责高标准的测试和质量保证,需要编程能力
4. 按测试对象划分: WEB 测试工程师、 APP 测试工程师、游戏测试工程师 、嵌入式测试工程师
5. 按是否手工:手工测试、自动化测试
6. 按测试分类:功能测试、性能测试、安全测试等
7. 按级别:初级、中级、高级、资深、组长、主管、经理、总监等

软件测试在不同类型公司的定位

  • 无组织性
  • 专职VS.兼职
  • 项目性VS.职能性
  • 综合性
1. 无组织性
最简单的软件测试组织形式就是没有任何组织的测试,几个人就把所有软件测试工作做完,这样做没有任何分工、没有任何层次结构。
简单的软件测试组织带来的问题是:软件测试依附在软件开发的组织下,不能真正发挥软件测试的威力。
一两个人的软件测试缺乏交流和思维的碰撞,导致测试人员的进步非常有限。缺乏测试的组织,导致测试无计划进行,测试人员疲于应付各项突如其来的测试任务,测试经验也得不到很好的总结。
2. 专职 VS. 兼职
按照测试人员的职责明确程度,可以划分成兼职测试和专职测试两大类。目前在很多软件企业,尤其是小规模的软件企业,往往没有专职的测试人员。在做测试工作的同时还要兼顾软件幵发、配置管理、技术文档编写、用户教育、系统部署实施等工作。
即使是在一些比较大规模的软件企业,拥有专门的质量部门,也会有兼职的情况,最常见的兼职工作是测试+配置管理,或者测试 +QA 。这种方式的好处是节省成本,可以充分利用资源。但是这样测试人员缺乏专门的独立的发展空间,不利于测试的纵深方向的发展,很难把测试做得精细,也不利于测试经验的积累和测试知识的传播。
当然,由于目前软件企业的现状,很多企业还是使用这种方式。新入行的测试人员来说,可以认为这是对自己很好的锻炼机会。
测试本身的要求就是知识面要广,而这些工作有助于从不同层面、不同角度、不同角色的位置考虑软件的相关问题。
3. 项目性 VS. 职能性
按测试人员参与项目的形式来划分,可分成项目型和职能型。
项目型的测试组织是指测试人员作为项目组成员之一紧密地结合到项目中,与项目组其他人员紧密协作,一般是从头到尾跟着项目走。当然,也有些项目是到了中后期才考虑把测试人员加入到项目中。这种类型的测试组织一般不会有测试组长,测试的管理由项目的主管或项目经理负责。当然,在一些大的项目中,会划分出幵发组长、也会划分出测试组长,但是最终报告的对象都是项目经理。因此项目经理是负责测试资源调配和测试计划的主要人员。
而职能型的测试组织是指测试人员参与到项目中是以独立的测试部门委派的方式进入的。
在这种结构中,一个测试人员有可能不仅仅测试一个项目的产品,可能会同时测试多个项目的产品。测试人员也可能不是长期稳定地从头到尾参与一个项目。
测试人员不向项目主管或项目经理报告工作,而是向自己所在的部门经理报告工作。并且这种结构的项目经理也可能是虚拟的,或者由多个部门经理共同担当。
这两种方式各有利弊。项目型的好处是测试人员参与的力度很强,能深入了解项目方方面面的信息,有利于稳定持续有效地测试出更多细节问题;但是同时也有弊端,就是测试人员受项目负责人的管理,在对待Bug 的处理意见上往往受到约束,同时由于过于亲密,很可能出现“ 网开一面 ,不能严格要求的惜况。并且由于缺乏独立的组织,测试人员的知识可能局限在项目组内传播,不利于测试经验在不同项目组之间的传播。某些测试人员在这种组织中可能会感到孤独和无助。
而职能型的好处是能避免项目型的部分问题,并且能节省部分测试资源,充分利用各个项目阶段之间的时间差来合理利用测试资源;但是也不可避免地存在一些问题。例如,深入程度不够,尤其是对项目涉及的领域知识和业务知识理解可能不够深入,导致测试的问题比较表面。
项目性:

 职能性:

4. 综合性

尽管独立的测试部门会有一些不可避免的问题,例如参与项目的深入程度,容易导致 扔过墙 的测试。但是很多软件企业还是倾向于建立一个相对独立的软件测试组织。一个理想的软件测试组织可以是综合和兼容了几种结构方式的组织。
例如,可以将项目型结构和职能型结构组合并加以改造。测试部门是独立的部门,测试部门经理根据各项目组中项目经理的请求,结合公司对项目的投入和重点方向,决定委派哪些测试人员加入到项目组,并且长期稳定、持续地跟进项目,在项目的各个阶段都参与并做测试的相关工作内容。测试人员作为一种服务资源供项目组调用,测试的结果和报告作为评估软件产品质量的必要参考信息,为项目经理做出产品发布的决定提供参考价值。

一个优秀的测试人员所具体的素质

1. 思维模式
逆向思维:开发盖房子,测试拆房子。不走寻常路。
案例:手机中有两条通话记录,进行删除。删除为 0 后,继续删除。
发散性思维:探求多项答案
案例:测试一台自动售票机。正向,逆向,边界,压力,性能,耗电量,断电,外观,没零钱 .....
2. 兴趣
真的有兴趣么?而不是开发加班多,不想编码?
3. 性格特征
好奇心
成就感
敏感
不浮躁
善于怀疑
批判性思维:清楚 -- 准确、切题 -- 深刻,有意义,有逻辑性 -- 公正、全面
4. 能力
快速学习能力
沟通能力
文字能力
开发能力
5. 责任感和压力
责任感:测试往往是产品的最后一个检验者;测试的工作成效很难衡量,测试用例执行、 bug 数目的多少都无法说明产品是否能够交给用户使用。所以,责任感是最重要的测试必备素质之一。
压力:来自开发人员、用户、上级、自己的压力。测试人员的压力比想象中的要大。

软件测试的学习方式及内容

学习方法:
以实践为主,理论为辅。
学习内容:
概念 -- 基础 - 用例 - 进阶 - 管理 - 项目实践 - 工具(禅道 - 持续集成 - 功能自动化 - 性能自动化)

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

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

相关文章

迅为RK3399开发板创建android工程

打开 AndroidStudio 软件&#xff0c;点击“Start a new Android Studio project”新建一个 Native C工程&#xff08;因为我们要调用本地库&#xff0c;所以要创建这个 C实例工程&#xff09;&#xff0c;点击“Next” 2.填写创建信息&#xff0c;如下图所示。最后点击“finis…

台灯应该买什么样的才能护眼?盘点好用的护眼台灯

现在我们很多家长对自己孩子的视力十分关心&#xff0c;生怕自己的孩子是近视、远视、弱视等等。对于父母而言&#xff0c;在孩子读书压力大课业重的关键时期&#xff0c;为孩子选择合适的桌椅&#xff0c;保护灯具从而保护孩子的眼睛是非常重要的事情!那么买给孩子读书做功课的…

全网最全!保姆级教程!XRD数据分析工具HighScore3.0.5+数据库2021下载、安装及使用教程...

编辑&#xff1a;研路科研人Sci “研路漫漫&#xff0c;伴你同行” 01 目录 1.目录 2.软件下载 3.介绍 3.1 概含介绍 3.2 特点介绍 4.下载、安装教程 4.1 软件安装教程 4.2 数据库导入教程 5.使用教程 5.1导入文件 5,2 寻峰 5.3 背底扣除 5.4 检索 5.5 导出报告 02 软件下载 压…

yolov5自动训练/预测-小白教程

文章目录 引言一、配置参数设置1、数据参数配置2、模型训练参数配置3、模型预测参数配置 二、一键训练/预测的sh介绍1、训练sh文件(train.sh)介绍2、预测sh文件(detect.sh)介绍 三、本文训练main代码解读1、训练main函数解读2、数据加工与参数替换 四、本文预测main代码解读1、…

MFC扩展库BCGControlBar Pro v33.6亮点 - 流程图、Ribbon Bar功能升级

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版 v33.6已正式发布了&#xff0c;此版本包含了对图表组件的改进、带隐藏标签的单类功能区栏…

数据结构--7.1散列表(哈希表)查找

散列表查找 我们要在a[ ] 中查找key关键字的记录&#xff1a; ——顺序表查找&#xff1a;挨个儿查找 ——有序表查找&#xff1a;二分法查找 ——散列表查找 记录的存储位置 f&#xff08;关键字&#xff09; 散列技术是在记录的存储位置和它的关键字之间建立一个确定的…

shell脚本命令

Shell命令是在类Unix操作系统中使用的命令行解释器&#xff08;shell&#xff09;中执行的命令。Shell命令可以用于执行系统命令、操作文件、进行文本处理、管理进程等。以下是一些常见的Shell命令&#xff1a; 1. ls&#xff1a;列出当前目录下的文件和文件夹。 2. cd&#x…

泡泡玛特加速海外布局,泰国首店开业吸引超千名粉丝排队

自2022年起&#xff0c;泡泡玛特全球门店布局加速&#xff0c;在包括英国、美国、新西兰欧美国家均开设新店面&#xff0c;2022年7月&#xff0c;泡泡玛特全球首家旗舰店落地首尔。泡泡玛特自2018年年底开始规划出海&#xff0c;截至目前&#xff0c;在全球已经拥有50多家门店&…

解锁前端Vue3宝藏级资料 第五章 Vue 组件应用 1( Props )

本章带领大家理解组件、props、emits、slots、providers/injects&#xff0c;Vue 插件 等Vue组件使用的基础知识。 5.1 组件注册5.2 Props5.2.1 组件之间如何传值5.2.2 参数绑定 v-bind5.2.3 参数类型5.2.4 props 默认与必填5.2.5 验证设置5.2.6 useAttrs 属性设置 第一章 Vue3…

Centos7安装wps无法打开及字体缺失的问题解决

在centos7上安装了最新的wps2019版本的wps-office-11.1.0.11704-1.x86_64.rpm&#xff0c;生成了桌面图标并信任&#xff0c;可以新建文件&#xff0c;但是软件无法打开。在终端执行如下命令&#xff0c;用命令行启动wps&#xff1a; cd /opt/kingsoft/wps-office/office6/ ./…

深度学习修炼(二)全连接神经网络 | Softmax,交叉熵损失函数 优化AdaGrad,RMSProp等 对抗过拟合 全攻略

文章目录 1 多层感知机&#xff08;全连接神经网络&#xff09;1.1 表示1.2 基本概念1.3 必要组成—激活函数1.4 网络结构设计 2 损失函数2.1 SOFTMAX操作2.2 交叉熵损失函数 3 优化3.1 求导计算过于复杂&#xff1f;3.2 链式法则导致的问题&#xff1f;3.3 梯度下降算法的改进…

自定义协议、序列化与反序列化

在编写TCP和UDP程序的时候&#xff0c;我们很自然的就使用了读取的函数对数据进行获取&#xff0c;对于UDP来说提供的是无连接的以数据报的形式进行传输&#xff0c;对于TCP来说是面向数据流的&#xff0c;在之前的程序中我们只是进行了读取的操作&#xff0c;但是并没有对读取…

通讯网关软件008——利用CommGate X2Mysql实现OPC数据转储Mysql

本文介绍利用CommGate X2MYSQL实现从OPC Server读取数据并转储至MYSQL数据库。CommGate X2MYSQL是宁波科安网信开发的网关软件&#xff0c;软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示&#xff0c;实现从OPC Server读取数据并转储至MYSQL数据…

Go语言进化之路:泛型的崛起与复用的新篇章

一、引言 泛型编程在许多编程语言中都是一项非常强大的特性&#xff0c;它可以使程序更加通用、具有更高的重用性。然而&#xff0c;Go语言在很长一段时间内一直没有提供泛型功能。在过去的一些版本中&#xff0c;Go语言开发者试图引入泛型&#xff0c;但最终都因为各种原因被…

分布式系统——分布式系统知识脑图

摘要 本博文主要介绍分布式系统知识脑图&#xff0c;帮助大家更好的快速的了解分布式系统相关知识。同时也是为大家在工作中应对分布式系统设计提供相关参考。 一、分布式系统知识脑图 博文参考

origin自定义颜色

点击图例&#xff0c;然后点击菜单栏的颜色右边的三角形。选择自定义颜色 在红绿蓝里输入自己想要的颜色配比。点击确定 如图&#xff0c;定义好五组颜色。我这里用的是比较经典的五色配图 蓝&#xff1a;1,86,153 黄&#xff1a;250,192,15 橙&#xff1a;243,118,74 浅蓝…

mysql workbench常见问题

1、No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar 方法一&#xff1a;双击你要使用的库 方法二&#xff1a;USE 数据库名 2、复制表名&#xff0c;字段名 3、保存链接

【PostgreSQL内核学习(十一)—— (CreatePortal)】

CreatePortal 概述CreatePortal 函数GetPortalByName 函数PortalHashTableLookup 函数 MemoryContextAllocZero 函数 AllocSetContextCreate 函数ResourceOwnerCreatePortalHashTableInsert总结 声明&#xff1a;本文的部分内容参考了他人的文章。在编写过程中&#xff0c;我们…

AI大模型服务应用场景

大模型是指模型具有庞大的参数规模和复杂程度的机器学习模型。在深度学习领域&#xff0c;大模型通常是指具有数百万到数十亿参数的神经网络模型。这些模型通常在各种领域&#xff0c;例如自然语言处理、图像识别和语音识别等&#xff0c;表现出高度准确和广泛的泛化能力。伴随…

2023-9

内核向应用层发送netlink单播消息&#xff1a; nlmsg_unicast -> netlink_unicast -> netlink_sendskb -> __netlink_sendskb -> 把skb链入struct sock 的 sk_receive_queue 链表中&#xff0c;再调用sk->sk_data_ready(sk); -> sock_def_readable -> wak…