【软件测试】软件测试入门

news2024/11/23 1:45:07

软件测试入门

  • 一、什么是软件测试
  • 二、软件测试和软件开发的区别
  • 三、软件测试在不同类型公司的定位
    • 1. 无组织性
    • 2. 专职 OR 兼职
    • 3. 项目性VS.职能性
    • 4.综合型
  • 四、一个优秀的软件测试人员具备的素质
    • 1. 技能相关
    • 2. 非技能相关

一、什么是软件测试

最常见的理解是:软件测试就是找BUG,发现软件的问题。

现实中有很多场景我们都在进行测试:

  • 考试考完以后对答案——测试我们的答案的正确性。
  • 下载完一个软件后打开运行——测试这个软件能否正确运行。

最正确的理解是:软件测试就是验证软件产品特性是否满足用户的需求


早期,人们更多的将测试看成是对软件产品“检验”,检查软件的每个功能是否运行正常。
1983年,Bill Hetzel将软件测试定义为:软件测试就是一系列活动,这些活动是为了评估一个程序或者软件系统的特性或能力,并确定是否达到了其预期的效果。
从这话我们可以看出以下两点:

  • 测试试图验证软件是“工作的”,也就是验证软件功能执行的正确性
  • 测试的活动是以测试人员“预期的结果”为依据,这里的“预期结果”指的是需求定义。

软件测试的特点:软件测试只是一个样本试验,具有不可穷尽性


二、软件测试和软件开发的区别

  • 目的不同:

    • 调试(Debug):为了确保程序做了程序员想让它做的事情。
    • 测试(Testing):为了确保程序解决了它该解决的问题。
  • 参与角色不同:

    • 调试由开发人员完成。
    • 测试由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行。
  • 执行的阶段不同

    • 测试贯穿整个软件开发生命周期
    • 调试一般在开发阶段。

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

1. 无组织性

无组织性测试最简单的软件测试组织形式,几个人就可以把所有软件测试工作做完,同时这样做没有任何分工、没有任何层次结构。

简单的软件测试组织带来的问题是:
- 软件测试依附在软件开发的组织下,不能真正发挥软件测试的威力。
- 一两个人的软件测试缺乏交流和思维的碰撞,导致测试人员的进步非常有限。
- 缺乏测试的组织,导致测试无计划进行,测试人员疲于应付各项突如其来的测试任务,测试经验也得不到很好的总结。

2. 专职 OR 兼职

按照测试人员的职责明确程度,可以划分成兼职测试专职测试两大类。

目前在很多软件企业,尤其是小规模的软件企业,往往没有专职的测试人员。在做测试工作的同时还要兼顾软件幵发、配置管理、技术文档编写、用户教育、系统部署实施等工作。

即使是在一些比较大规模的软件企业,拥有专门的质量部门,也会有兼职的情况,最常见的兼职工作是测试+配置管理,或者测试+QA。这种方式的好处是节省成本,可以充分利用资源。但是这样测试人员缺乏专门的独立的发展空间,不利于测试的纵深方向的发展,很难把测试做得精细,也不利于测试经验的积累和测试知识的传播。

当然,由于目前软件企业的现状,很多企业还是使用这种方式。新入行的测试人员来说,可以认为这是对自己很好的锻炼机会。
测试本身的要求就是知识面要广,而这些工作有助于从不同层面、不同角度、不同角色的位置考虑软件的相关问题。

3. 项目性VS.职能性

按测试人员参与项目的形式来划分,可分成项目型职能型

  • 项目型
    项目型的测试组织是指测试人员作为项目组成员之一紧密地结合到项目中,与项目组其他人员紧密协作,一般是从头到尾跟着项目走。当然,也有些项目是到了中后期才考虑把测试人员加入到项目中。这种类型的测试组织一般不会有测试组长,测试的管理由项目的主管或项目经理负责。
    在这里插入图片描述
    当然,在一些大的项目中,会划分出幵发组长、也会划分出测试组长,但是最终报告的对象都是项目经理。因此项目经理是负责测试资源调配和测试计划的主要人员。

  • 职能型
    职能型的测试组织是指测试人员参与到项目中是以独立的测试部门委派的方式进入的。

在这里插入图片描述
在这种结构中,一个测试人员有可能不仅仅测试一个项目的产品,可能会同时测试多个项目的产品。测试人员也可能不是长期稳定地从头到尾参与一个项目。

测试人员不向项目主管或项目经理报告工作,而是向自己所在的部门经理报告工作。并且这种结构的项目经理也可能是虚拟的,或者由多个部门经理共同担当。


这两种方式各有利弊:
项目型的优点:

  • 测试人员参与的力度很强,能深入了解项目方方面面的信息,有利于稳定持续有效地测试出更多细节问题。

项目型的缺点:

  • 测试人员受项目负责人的管理,在对待Bug的处理意见上往往受到约束,同时由于过于亲密,很可能出现“网开一面”,不能严格要求的惜况。
  • 此外由于缺乏独立的组织,测试人员的知识可能局限在项目组内传播,不利于测试经验在不同项目组之间的传播。

职能型的优点:

  • 能避免项目型的部分问题,并且能节省部分测试资源,充分利用各个项目阶段之间的时间差来合理利用测试资源。

职能型的缺点:

  • 深入程度不够,尤其是对项目涉及的领域知识和业务知识理解可能不够深入,导致测试的问题比较表面。

4.综合型

尽管独立的测试部门会有一些不可避免的问题,但是很多软件企业还是倾向于建立一个相对独立的软件测试组织。一个理想的软件测试组织可以是综合和兼容了几种结构方式的组织。

例如,可以将项目型结构和职能型结构组合并加以改造,测试部门是独立的部门,测试部门经理根据各项目组中项目经理的请求,结合公司对项目的投入和重点方向,决定委派哪些测试人员加入到项目组,并且长期稳定、持续地跟进项目,在项目的各个阶段都参与并做测试的相关工作内容。

测试人员作为一种服务资源供项目组调用,测试的结果和报告作为评估软件产品质量的必要参考信息,为项目经理做出产品发布的决定提供参考价值。

四、一个优秀的软件测试人员具备的素质

1. 技能相关

  • 编程能力 : 当测试人员具有编程能力时,对于软件容易出现的问题的地方会更加敏感,更容易发现潜在的问题。此外当测试人员具有编程能力时,也可以编写一些测试工具,提高测试的效率。
  • 优秀的测试用例设计能力:无论对于什么类型的测试,都能够设计出高效地发现缺陷,保证产品质量的优秀测试用例。
  • 快速学习的能力 :不同公司的业务以及使用的技术栈是不相同的,一个优秀的测试人员应该能够快速的理解业务需求,并对接手的项目进行快速的测试。

2. 非技能相关

  • 沟通表达能力:测试工程师的沟通能力会直接影响事务开展的效率。良好清晰的沟通能力,是一个技术优秀的测是工程师是否可以获得更好发展的“敲门砖”。
  • 文字表达能力: 测试工程师要设计测试用例,编写测试文档,测试报告,这些都需要借助文字进行表达,良好的文字表达能力能够避免一些表达歧义,提高测试的质量。
  • 责任感 : 测试往往是产品质量的最后个把关者;由于测试工作成效很难衡量,测试用例执行、bug数目的多少都无法说明产品的质量是否合格;所以,责任感是最重要的测试必备素质之一。

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

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

相关文章

设备保养计划不再是纸上谈兵,智能系统让执行更到位!

在物业管理的日常工作中,我们常常听到“设备保养台账”“设备保养计划”“设备保养记录”等等这些词,但你是否真正了解它们的含义?是否知道一个完善的设备保养计划、记录、台账对于物业运营的重要性?今天,我们就来深入…

AI产品经理,应掌握哪些技术?

美国的麻省理工学院(Massachusetts Institute of Technology)专门负责科技成果转化商用的部门研究表明: 每一块钱的科研投入,需要100块钱与之配套的投资(人、财、物),才能把思想转化为产品&…

《纪元 1800》好玩吗? 苹果电脑能玩《纪元 1800》吗?

《纪元1800》是一款不错的策略游戏,这款游戏因为画面和玩法独特深受玩家们的喜爱。下面我们来看看《纪元 1800》好玩吗,苹果电脑能玩《纪元 1800》吗的相关内容。 一、《纪元1800》好玩吗 《纪元1800》是一款备受瞩目的策略游戏。下面让我们来看看这款…

mysql [Err] 1118 - Row size too large (> 8126).

1.找到my.ini文件 1.1 控制台输入以下指令,打开服务 services.msc1.2 查看mysql服务的属性 2.停止mysql服务,修改my.ini文件并且保存 innodb_strict_mode03.重启mysql服务 4.验证是否关闭成功 show variables like %innodb_strict_mode%; show vari…

SaaS产品运营|一文讲清楚为什么ToB产品更适合采用PLG模式?

在数字化时代,ToB(面向企业)产品市场的竞争愈发激烈。为了在市场中脱颖而出,许多企业开始转向PLG(产品驱动增长)模式。这种模式以产品为核心,通过不断优化产品体验来驱动用户增长和业务发展。本…

学本领、争奖金! 由和鲸支持的“数据蜂杯”全国大学生暑期面访调查大赛火热报名中

随着数字时代的到来,社会调查能力、数据分析能力成为当代大学生不可或缺的核心素养。为了进一步提升当代大学生深入田野、以团队的方式采集高质量数据的能力,中国人民大学中国调查与数据中心(NSRC)举办“数据蜂杯”全国大学生暑期…

头歌资源库(9)丢失的数字

一、 问题描述 二、算法思想 输入n和nums数组。初始化一个大小为n1的数组counts,初始值都为0。遍历nums数组,将counts[nums[i]]的值加1。遍历counts数组,找到第一个值为0的索引,即为没有出现在数组中的那个数。输出结果。 三、…

LabVIEW电表改装与校准仿真系统

LabVIEW开发的电表改装与校准仿真实验平台不仅简化了传统的物理实验流程,而且通过虚拟仿真提高了实验的效率和安全性。该平台通过模拟电表改装与校准的各个步骤,允许学生在没有实际硬件的情况下完成实验,有效地结合了理论学习和实践操作。 项…

51单片机宏定义的例子

代码 demo.c #include "hardware.h"void delay() {volatile unsigned int n;for(n 0; n < 50000; n); }int main(void) {IO_init();while(1){PINSET(LED);delay();PINCLR(LED);delay();}return 0; }cfg.h #ifndef _CFG_H_ #define _CFG_H_// #define F_CPU …

Ubuntu 20.04 LTS WslRegisterDistribution failed with error: 0x800701bc

1.以管理员身份运行powershell&#xff0c;输入&#xff1a;wsl --update&#xff0c; 2.重新打开ubuntu即可。

泛微开发修炼之旅--17基于Ecology短信平台,实现后端自定义二开短信发送方案及代码示例

文章链接&#xff1a;17基于Ecology短信平台&#xff0c;实现后端自定义二开短信发送方案及代码示例

【产品经理】ERP订单处理3-解密促销策略

由于订单到电商ERP系统中&#xff0c;订单金额已经不能支持改动&#xff0c;故电商前台端的优惠券活动、满减活动、支付优惠活动无法使用&#xff0c;故电商ERP只涉及赠品的活动。 一、订单金额阶梯送 顾名思义&#xff1a;订单金额在某个或者某几个金额范围内赠送商品。 字…

十进制、二进制、十六进制之间的相互转换

实验目的 实现int 、float 转换为字符串并显示 实现数字字符以二进制、十进制、十六进制显示 实现十进制、二进制、十六进制之间的相互转换 #include "numconvert.h" #include "ui_numconvert.h"NumConvert::NumConvert(QWidget *parent): QWidget(parent)…

Android平台如何实现多路低延迟RTSP|RTMP播放?

技术背景 实际上&#xff0c;我们在2015年做Android平台RTSP、RTMP播放模块的时候&#xff0c;第一版就支持了多实例播放&#xff0c;因为SDK设计比较灵活&#xff0c;做个简单的player实例封装即可实现多实例播放&#xff08;Android Unity的就有多路demo&#xff09;&#x…

arsetryhtehrwgefwadasdadasd

48b91400000080f7ffff48b8bd427ae5d594bfd6488b0948f7e148b8cdcccccccccccccc48c1ea1748f7e24c8bea49c1ed02 直接在windbg中把执行内存修改为上面这一串字节序列&#xff0c;运行完成后r13中将包含当前时间戳&#xff0c;可使用如下代码转换成人类可阅读时间格式 /*代码BEGIN*…

Codesys 编程实现随机数字+仿照rand()原理+代码下载

目录 一、C语言中rand&#xff08;&#xff09;随机数的演示及问题 二、同样的原理&#xff0c;在Codesys中实现随机数 三、codesys在线仿真验证功能 四、代码下载 一、C语言中rand&#xff08;&#xff09;随机数的演示及问题 &#xff08;1&#xff09;只用rand&#xff08;…

WebGIS如何加载微件

本篇文章以加载切换底图微件做示范 首先&#xff0c;添加require "esri/widgets/ScaleBar",//比例尺"esri/widgets/Legend",//图例"esri/widgets/basemapGallery" 然后添加加载切换底图的组件代码 const basemapGallery new BasemapGallery(…

探索CSS clip-path: polygon():塑造元素的无限可能

在CSS的世界里&#xff0c;clip-path 属性赋予了开发者前所未有的能力&#xff0c;让他们能够以非传统的方式裁剪页面元素&#xff0c;创造出独特的视觉效果。其中&#xff0c;polygon() 函数尤其强大&#xff0c;它允许你使用多边形来定义裁剪区域的形状&#xff0c;从而实现各…

为什么idea总是提示将内部类设置为static

在写一些内部类的时候&#xff0c;Idea总是提示要设置为static&#xff0c;你知道为什么吗 在Java中&#xff0c;内部类可以被声明为static&#xff0c;这种内部类称为静态内部类&#xff08;Static Nested Class&#xff09;。静态内部类和非静态内部类有显著的区别&#xf…

分层Agent

分层Teams 分层Agent创建tool研究团队工具文档编写团队工具 通用能力定义Agent团队研究团队文档编写团队 添加图层 分层Agent 在前面的示例&#xff08;Agent管理&#xff09;中&#xff0c;我们引入了单个管理节点的概念&#xff0c;用于在不同工作节点之间路由工作。 但是&a…