软测(概念) · 软件测试的基本概念 · 什么是需求 · 测试用例的概念 · 软件错误(bug)的概念

news2024/9/21 0:33:16

  • 一、什么是软件测试
    • 软件测试和开发的区别
    • 测试和调试的区别
    • 一个优秀的软件测试人员具备的素质
  • 二、什么是需求
    • 从测试人员角度看待需求
  • 三、测试用例的概念
  • 四、软件错误(bug)的概念

一、什么是软件测试

最常见的解释是:软件测试就是找 BUG,发现缺陷。

生活中有着诸多事情,我们都在默默地测试:
新买来的一部手机,我们要 “测试” 它的功能;
自己组装一台电脑,喜欢用跑分软件 “测试” ;
等等…

软件测试,就是验证软件产品特性是否满足用户的需求。

早期,人们更多的将测试看成对软件产品的 “检验”,检查软件的每个功能是否运行正常。


软件测试和开发的区别

  1. 难易程度:开发广度小,专业度高。测试广度大,专业度低。
  2. 工作环境:基本一致。
  3. 薪资:中小型企业比开发低。大厂研发测试基本无差别。
  4. 发展前景:自动化测试、安全测试等领域发展前景和研发基本一致。
  5. 繁忙程度:敏捷模式下差距不大,产品发布前压力比较大。
  6. 技能要求:测试要求更广泛:业务能力,设计和架构分析能力,测试手段和工具使用,用户模型分析和理解,编程能力。

测试和调试的区别

1. 目的不同
	调试:发现并解决软件中的缺陷。
	测试:发现软件中的缺陷。
2. 参与角色不同
	调试:开发人员。
	测试:测试人员,开发人员等。
3. 执行的阶段不同
	调试:编码阶段。
	测试:测试贯穿软件的整个生命周期。

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

1. 综合能力

  • 快速学习能力:对不同业务需求和功能的快速学习与理解能力。学习测试新技术和新方法的能力。
  • 沟通能力:沟通的好坏会影响到事务开展的效率。
  • 开发能力:测试也需要一定的开发能力。
  • 文字能力:能够编写各种文档。

2. 掌握自动化测试技术

掌握自动化测试技术,可以解法大量重复性的手工劳动测试,这样可以把更多的精力花在更多类型的测试上。

3. 优秀的测试用例设计能力

测试用例设计能力是指,无论什么类型测试,都能设计出高效地发现缺陷,保证产品质量的优秀测试用例。

掌握设计测试用例的方法;积累和总结测试用例;阅读好的测试用例设计方案。

4. 探索性思维

探索性思维是指,测试工程师在执行测试的过程中不断学习,结合自己的经验,知识,直觉进行系统的错误猜测和逻辑推理,整理分析出更多针对性的测试关注点。

5. 兴趣

学习和工作,有无兴趣都很重要。

6. 有责任感和一定的压力

测试往往是产品质量的最后把关者;由于测试工作成效很难衡量,测试用例执行、bug 数目的多少都无法说明产品的质量是否合格;所以,责任感是最重要的测试必备素质之一。

如何事务都会有纰漏,出现纰漏要抗住压力,总结经验避免后续再次出现类似问题。


二、什么是需求

衡量软件测试结果的依据。

需求的概念

满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。

大多数软件公司,会有两部分需求,一部分是用户需求,一部分是软件需求。

用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。该需求一般比较简略。

软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。

在进行软件开发的时候,会把用户需求转化为软件需求,开发人员和测试人员工作的直接依据就是软件需求。

软件需求是测试人员进行测试工作的基本依据。

软件需求规格说明书
一、用户需求:
	平台支持邮箱注册

二、软件需求:
1.1.1.1		注册账号
1.1.1.1.1	功能概述
	用户可以通过填写邮箱信息在平台注册个人用户。
1.1.1.1.2	用户角色
	匿名用户。
1.1.1.1.3	前置条件
	无。
1.1.1.1.4	输入
| **序号** | **栏位名称** | **栏位说明**      | **长度** | **类型** | **备注**
|
| --- | ---------- | ------------------- | ------- | ------ | ------ |
| 1   | 姓名       | 必填,录入个人姓名      | 6至15    | 字符型  |  
|
| 2   | 电子邮箱   | 必填,录入电子邮箱      |     | 字符型  |   
|
| 3   | 密码       | 必输,输入的密码隐藏*号显示,最短6位 | 6至15  | 字符型 |  
|
| 4   | 确认密码   | 必输,输入的密码隐藏*号显示,最短6位 | 6至15 | 字符型 | |
| 5   | 验证码     | 必填,录入验证码      |     | 字符型  |    
|
| 6   | 注册       | 注册操作        |     | 操作型  |  

1.1.1.1.5  处理
1.1.1.1.5.1  基本事件流
1、 用户选择注册;
2、 系统展现用户协议界面,并请用户确认是否同意用户协议
	1)   若用户不同意协议,系统禁止用户注册。
	2)   若用户同意协议,用户进行注册信息填写。
3、 用户填写注册信息。
	注册个人,填写:姓名,电子邮箱,密码,确认密码,验证码。
4、 用户提交注册信息;
5、 系统提示用户并向用户注册的电子邮件地址发送一封含有激活信息的电子邮件。系统并提示用户,若未收
	到激活邮件,可使用注册的邮箱和密码登录系统后再次发送激活邮件。
6、 用户可执行激活操作,直接跳转至注册邮箱门户页面。
7、 用户通过接收到的电子邮件中的激活信息激活账号,用户注册完成,流程结束。

1.1.1.1.5.2  扩展事件流
	1. 用户注册并激活成功后,第一次登录平台时,提示用户完善信息;

1.1.1.1.5.3  异常事件流
	1. 若用户未收到激活邮件,可在登录界面录入电子邮件及密码后,再次发送激活邮件。
	2. 每次发送的激活邮件,仅在发送邮件后起24小时之内有效,超过24小时后需重新发送激活邮件。

1.1.1.1.6  输出
	用户注册成功
	
1.1.1.1.7  后置条件
	该模块为用户登陆等的前置模块。

从测试人员角度看待需求

需求是测试人员开展软件测试工作的依据。

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

过程如下

业务需求 -> 软件功能需求点 -> 测试需求点 -> 测试用例。

以 “用户登录” 为例

为什么需求对软件测试人员如此重要

  • 从软件功能需求出发,无遗漏的识别出测试需求是至关重要的,这就直接关系到用例的测试覆盖率
  • 对于识别出的每个测试需求点,需要采用具体的设计测试用例的方法来进行测试用例的设计。

如何才能深入理解被测试软件的需求

测试工程师在需求分析和设计阶段就可以开始介入,这个阶段是理解和掌握软件的原始业务需求的最好时机。

只有真正的理解了原始业务需求之后,才能从业务需求的角度去设计具有针对性的,覆盖率较高的测试用例集。


三、测试用例的概念

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。

测试用例解决了两大问题:测什么,怎么测。

案例一:
测试用例 ecsp-439:用户注册成功

步骤操作期望结果
进入注册页面,选择注册系统展现注册页面
输入符合要求的信息用户名、邮箱、密码、验证码等,并确认同意用户注册协议,提交注册信息系统进行注册,发送激活邮件。发送成功后,跳转到注册成功页面,并提示用户进行邮箱激活
进入邮箱,进行激活操作激活成功
使用注册的邮箱和密码,进行登录操作登录成功,系统展示欢迎页面
测试方式手工
重要性重要
测试环境CHROME, IE 10+
测试前提系统运行正常,邮件服务器已启动
功能模块注册登录

案例二:
注册网易邮箱。

标题:注册网易邮箱
测试环境:win10、chrome 版本 103.1.5060.66(正式版本)(64位)
测试数据:
	邮箱地址:111222333
	密码:123456
	手机号:10086111
	验证码:s9g8
测试步骤:
	1. 打开谷歌浏览器,输入网易注册网址:https://mail.163.com/register/index.htm?from=163mail&utm_source=163mail
	2. 输入邮箱地址、密码、手机号、获取验证码并输入验证码,勾选用户协议。
	3. 点击注册。
期望结果:
	展现注册成功的结果页面,并且使用账号可以成功登录。

测试过程中可能会遇到下列问题:

  1. 不知道是否较全面的测试了所有功能。
  2. 测试的覆盖率无法衡量。
  3. 对新版本的重复测试很难实施。
  4. 可能存在大量冗余测试影响测试效率。

测试用例的存在就是为了解决上述问题,同时测试用例也要避免用后即弃!


四、软件错误(bug)的概念

第一个 bug 的故事

1945年9月的某天,在一间老式建筑里,从窗外飞进来一只飞蛾,此时Hopper正埋头工作在一台名为Mark Il的计算机前,并没有注意到这只即将造就历史事件的飞蛾。这台计算机使用了大量的继电器(电子机械装置,那时还没有使用晶体管)。突然,Mark II死机了。Hopper试了很多次还是不能启动,他开始用各种方法查找问题,最后定位到了某个电路板的继电器上。Hopper观察这个继电器,惊奇地发现一只飞蛾已经被继电器打死。Hopper小心地用镊子将飞蛾夹出来,用透明胶布贴到“事件记录本”中,写上“第一个发现虫子的实例”。Hopper的事件记录本,连同那只飞蛾,现在都陈列在美国历史博物馆中。软件错误的一般定义: 程序与规格说明之前不匹配 。

注意:以上说法是片面的,准确的来说:当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。

当需求规格说明书没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能需求时,就是软件错误。


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

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

相关文章

个人博客美化

总体参考: Butterfly 文档:https://butterfly.js.organzhiyu :https://anzhiy.cn张洪 Heo :https://blog.zhheo.comLeonus :https://blog.leonus.cn 注:博客所有美化大部分(全部)都参…

React项目实战之租房app项目(九)登录模块基础布局和功能实现

前言 目录前言一、房屋详情模块二、登录模块2.1 登录模块效果图2.2 基础布局2.3 调用接口实现登录2.4 实现表单验证功能2.4.1 formik介绍2.4.2 formik基本使用2.4.3 添加表单验证2.5 代码优化总结一、房屋详情模块 房屋详情模块主要是展示之前获取到的房源信息,由于…

为防护加码,飞凌嵌入式i.MX93系列开发板让通信安全又稳定

来源:飞凌嵌入式官网www.forlinx.com随着新基建的加快推进,智能制造迎来了更好的发展时机,嵌入式板卡等智能设备也在更多的应用场景中大放异彩。但随着现场的设备数量的剧增,环境中的各种干扰信号也随之增加,这就对设备…

windows下GitHub的SSH key配置

SSH Key 是一种方法来确定受信任的计算机,从而实现免密码登录。 Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。 下面的步骤将完成 生成SSH密钥 并 添加公共密钥到GitHub上的帐户 先设置GitHub…

Apifox接口测试工具详细解析

最近发现一款接口测试工具--apifox,我我们很难将它描述为一款接口管理工具 或 接口自测试工具。 官方给了一个简单的公式,更能说明apifox可以做什么。 Apifox Postman Swagger Mock JMeter Apifox的特点: 接口文档定义: Apif…

接口测试学习第二天

1、全局变量 概念:在postman全局生效的变量,全局唯一。设置: 代码设置:pm.globals.set("glb_age",100)//示例: pm.globals.set("glb_age",100) 获取: 代码获取:var 接收值…

Java的内部类详解(成员内部类、静态内部类、局部内部类、匿名内部类)

Java知识点总结:想看的可以从这里进入 目录2.2.4、 内部类1、成员内部类2、静态内部类3、局部内部类4、匿名内部类2.2.4、 内部类 一个类定义在另一个类内,那么这个类就是一个内部类,比如:在类A中定义一个类B,B就是内…

英特尔锐炫秒杀RTX 3060,XeSS现已支持超过35款游戏!

一款显卡的性能可以达到什么程度?除了架构、规格等硬件因素,驱动的优化程度同样至关重要。Intel携带Arc锐炫回归独立显卡市场,作为“后起之秀”,驱动的优劣更是关键中的关键。Intel也正是这么做的。2022年6月,Intel正式…

2023 NFT防骗指南:六大骗局,3招带你远离…

网上流传着一句:币圈一天,人间一年。在刚刚过去的农历新年,一直低迷的加密领域迎来了“短暂性复苏”,加密市场总市值重回万亿美元。 同时复苏的还有NFT市场,据欧科云链OKLink链上数据显示,2023年1月份的NFT…

计算机网络-http协议版本对比

概述 HTTP 是基于 TCP/IP 协议的一个应用层协议,是现代互联网的一个基础协议。规定了客户端与服务端之间的通信格式以及所占用的服务端口80(HTTPS是443)。 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响…

【Flutter】Flutter Developer 101 入门小册 专栏指引

你好,我是小雨青年,一名程序员。 在2023年,我决定做这个Flutter专栏,从基础到部署,一站式解决大家对于Fulltter的学习需求。 目前本专栏的大概目录为本文最后所示,后续随着内容的不断更新,会逐…

2023年“华数杯”国际大学生数学建模B题赛题发布

ICM 问题B:社会稳定早期预警研究 背景 人类和所有的动物一样,都有寻求利益和避免伤害的本能。人类成为创造之主 的关键在于,他们比其他动物更善于避免伤害。危机总是潜伏着未来。人类发展的 历史是一部不断尝试超越危机的历史 (严耀军&#x…

鸿蒙开发学习|基础环境和开发工具

系列文章目录 第一章 HarmonyOS是什么 第二章 基础环境和开发工具 文章目录系列文章目录前言一、DevEco Studio工具简介二、DevEco Studio搭建开发流程1.运行环境要求2.下载和安装DevEco Studio三、安装HarmonyOS开发插件总结前言 HUAWEI DevEco Studio是基于IntelliJ IDEA C…

三阶魔方七步还原法公式备忘录

魔方公式备忘 转动符号图解 魔方七步公式: 1.底面十字还原 2.底角还原 3.中间层还原 上棱到左棱 U’L’U’LUFUF’ 上棱到右棱 URUR’U’F’U’F 4.顶面十字 循环做FRUR’U’F’直到出现十字 5.顶面还原(小鱼公式) 左手 L’U’LU’L’U’2L …

2、Maven——IDEA与eclipse(MyEclipse)创建工程的区别、Maven创建基本java工程

目录 一、IDEA与eclipse创建工程的区别 二、IDEA创建多个工程 1、 创建空工程:Empty Project 2、创建Module 三、Maven创建基本java工程 1、pom.xml 2、依赖坐标的使用 3、远程Maven仓库 4、Maven项目框架 (1) main目录 &#xff…

MySQL之主从复制集群搭建

简述 这篇文章主要记录使用docker compose搭建MySQL主从复制集群搭建,方便后续进行本地测试开发。 这篇文章主要介绍一主一从的搭建过程。 主从架构,可以缓解MySQL的数据存储以及访问的压力。 一. 主从复制原理 原理图如下: 步骤&#xf…

AVL平衡树(Java实现)

概念 AVL树可以定义为高度平衡二叉搜索树,其中每个节点与平衡因子相关联,该平衡因子通过从其左子树的子树中减去其右子树的高度来计算。AVL树是由GM Adelson - Velsky和EM Landis于1962年发明的。为了纪念其发明者,这树结构被命名为AVL。 定…

Android集成Unity

前言 随着前两年元宇宙的提出,虚拟现实开始在各大平台大展身手。各个平台都开始搭上了元宇宙的列车,Unity作为虚拟引擎中的热门,渲染效果和开发效率极其出色;Android作为移动开发的巨头之一也搭上了元宇宙这趟列车。今天&#xf…

图像基础概念

加解串器图像相关的概念:相关的概念:一个像素时钟可以产生两个像素可以通过调大frame freelance或vts来增大 V blinking sensor的基本配置曝光:一行一行进行曝光:每一行曝光时间 非常短 从第一行到最后一行为有效时间同步信号:同步信号的处理同步曝光的需求:曝光的…

IoU Loss综述(IOU,GIOU,CIOU,EIOU,SIOU,WIOU)

边界框回归(BBR)的损失函数对于目标检测至关重要。它的良好定义将为模型带来显著的性能改进。大多数现有的工作假设训练数据中的样本是高质量的,并侧重于增强BBR损失的拟合能力。 一、L2-norm 最初的基于回归的BBR损失定义为L2-norm&#xf…