软件测试基础总结

🍅 视频学习:文末有免费的配套视频可观看

🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快

前言

提示:本文旨在帮助小白对软件测试有个基础的入门了解

提示:以下是本篇文章正文内容,仅供参考

1.测试行业简介

软件测试在软件生命周期中占据重要的地位。软件测试学在传统的瀑布模型中仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于认同一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正。如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。由于测试的重要性和复杂度,它慢慢的独立发展成为一个行业,并且在迅猛发展。
在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%

2.测试工程师素质

基本素质概括的说,测试工程师需要重点培养:

沟通能力、记忆力<挖掘以往错误>、怀疑精神、洞察力<发现重点>、自信心、幽默感、耐心、自我督促等方面的素质。
广泛的经验:有了工作经验的积累,会让工作变得更轻松、效果更好。
交流技巧:表达能力、问题描述能力、会提问、会寻求正确的帮助。如果文字水平太粗糙,建议上一门创造性写作的课。
逻辑思维能力:可以从容面对面对纷繁复杂的程序逻辑。
团队协作能力:测试工作不是一个组,一个人可以完成的。需要组内和组间的密切配合。
组织技能:处理日常事务的能力和处理突发事件的能力。如果你在别人都头脑发昏的时侯保持清醒,你就可能是一个好的软件测试工程师。
态度:需要理解和采取适当的态度去做软件测试。

3. 专业素质

软件测试工程师要掌握五大类的知识:技术、测试技巧/方法、测试计划、执行测试计划、测试分析报告与改进。

除了技术,还要求具有否定性的创造力;探测技巧;总体理解产品的能力;用客户的眼光进行评估;怀疑的而不是敌意的态度;能经受得住坏消息而保持目标;拥抱新技术的热望等特征。这些也都属于专业素质范畴。一般的说,技术上的问题都不是问题,目前的软件工程更需要行之有效的项目管理。

软件工程:必须了解软件工程(设计、开发和简单测试),应用,系统,自动测试编程,及操作系统,数据库,网络系统和协议的设计和使用。
系统需求:把握需求是第一位的。对产品熟悉,能够快速掌握新的产品需求,很强的需求理解能力显得很重要;
测试流程:明确测试流程中各个阶段的工作,对测试的认知程度,决定了测试流程管理的规范性,测试工作的质量;
测试方案:测试方案的分析设计能力、测试案例的设计能力、测试案例的覆盖率、优先级、回归测试案例的选取等;
测试工具的使用(包括测试管理和测试执行工具,也包括开发工具的能力);
团队协作:与各个小组之间的沟通能力;
测试管理:管理决定了工作质量。尤其是测试经理,需要管理团队测试的能力。

4.测试工程师分类

测试工程师一般分为两类:测试开发工程师和软件测试工程师。

测试开发工程师:主要负责编写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。
软件测试工程师:主要负责理解产品的功能要求,然后对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,并写出相应的测试规范和测试案例。
按职位分类:测试部门经理、测试技术总监、测试主管、测试项目经理、测试设计人员、测试开发人员、测试执行人员、测试协助员、技术支持;
按测试类型分类:功能测试工程师、自动化测试工程师、性能测试工程师等;
按测试对象分类:web测试工程师、数据库测试工程师、C/S测试工程师、个人软件测试工程师等。

5.测试定义

IEEE中对测试的定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。

6.测试前提

软件可测试性:是一个计算机程序能够被测试的容易程度。
软件可测试性检查表:
可操作性-运行地越好,被测试的效率越高。
可观察性-所看见的,就是所测试的。
可控制性-对软件的控制越好,测试越能够被自动执行与优化。
可分解性-通过控制测试范围,能够更好地分解问题,执行更灵巧的再测试。
简单性-需要测试的内容越少,测试的速度越快。
稳定性-改变越少,对测试的破坏越小。
易理解性-得到的信息越多,进行的测试越灵巧。

7.测试目的

目的:发现程序中的错误,提高产品可靠性。

8.不利因素测试

可能存在的不利因素:

没有得到足够的培训
心里准备不足
缺乏测试工具
缺乏管理的标准和支持
缺乏客户和最终使用者的参与
没有足够的时间进行测试
对于独立的测试人员过度信任
版本改变的太快
测试人员处于不受重视的情况中
不能说不

9.测试计划

测试计划和产品开发紧密相关,由多个部分组成。所有大型的商业软件都需要完整的测试计划,需要具体到每一个步骤,并且每一个部分都要符合规范要求。

测试计划包括内容:

1)概述;
2)测试目标和发布标准;
3)计划将测试的领域;
4)测试方法描述;
5)测试进度表;
6)测试资源;
7)配置范围和测试工具

10.测试规范

是指微每一个在测试计划中确定的产品领域所写的文档,用来描述该领域的测试需求。

编写测试规范,需要参照项目经理写的产品规范,开发人员写的开发计划。每个领域都应该有一份详细的测试规范,所以还需要参照测试计划。
测试规范包括的内容:

1)背景信息;
2)被测试的特性;
3)功能考虑;
4)测试考虑;
5)测试响应。

11.测试案例

是指描述如何测试某一个领域的文档,这些文档符合测试规范中的需求说明。根据测试规范的测试想定(scenario)开发,根据测试反馈信息,对于没有考虑到的新问题,不断添加测试案例。测试案例没有固定格式,只要清楚表明了测试步骤和需要验证的事实,使得任何一位测试人员都可以根据测试案例的描述完成测试。

12.测试报告

管理人员以测试报告的形式向整个产品开发部门报告测试结果及发现的缺陷或错误。撰写测试报告的目的是为了让整个产品开发部门了解产品开发的进展情况,以使缺陷或错误能够迅速得到修复。测试报告的格式并无定式,要求能够完整、清楚地反映当前的测试进展情况,要易懂,不要使人迷惑或产生误解。

13.缺陷或错误报告

测试人员以缺陷或错误报告的形式向开发人员报告所发现的缺陷或错误。撰写缺陷或错误报告的目的是为了使缺陷或错误能够得到修复,测试人员的缺陷或错误报告撰写的好坏会直接影响到开发人员对缺陷或错误的修复。

一份缺陷或错误报告应该包括的几个要点:

1)缺陷或错误名称;
2)被测试软件的版本;
3)优先度与严重性;
4)报告测试的步骤;
5)缺陷或错误造成的后果;
6)预计的操作结果;
7)其他信息。

14.测试启动需确定的工作

1.需求阶段

确定测试策略;
确定收集了足够的需求;
产生功能性的测试用例;
需要接收的资料
需求规格说明书;
产品文档等;

2.设计阶段

确定设计和需求之间的联系;
确定进行了足够的设计;
产生结构和功能的测试用例;
需要接收的资料
输入说明;
过程说明;
文件说明;
输出说明;
控制说明;
系统流程图;
硬件和软件的需求;
操作手册说明书;
数据保留的策略;

3.编码阶段

确定和设计之间的联系;
确定拥有执行的足够条件;
产生结构和功能的测试用例;
需要接收的资料
编码说明书;
程序文档;
计算机程序列表;
可执行的程序;
程序流程图;
操作介绍;
单元测试结果;
测试阶段
确定设计了足够的测试用例;
测试应用系统已经完成,并且可测;
关键资源已经到位;

4.维护阶段

缺陷的跟踪;
新的版本测试;

总结

文章篇幅过长,所以只挑了一些对软件测试能有个基础了解的介绍,希望能对想入门软件测试的新手一点帮助,祝大家学业有成!

同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接【点击文末小卡片免费领取资料文档

2024年吃透经典软件测试面试题200问,3天学完,让你的面试少走99%弯路!【存下吧,附100W字面试宝典】

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

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

相关文章

黑方备份学习(1):linux安装 黑方容灾备份与恢复系统软件v6.0 代理

1.环境准备 1.1硬件环境 内存>4G&#xff0c;cpu最低双核 1.2把SElinux状态改为Disabled &#xff08;1&#xff09;查看SElinux状态 输入getenforce命令 SELinux共有3个状态&#xff1a; enforcing &#xff08;执行中&#xff09;、permissive &#xff08;不执行但…

SOME/IP 协议介绍(七)传输 CAN 和 FlexRay 帧

SOME/IP 不应仅用于传输 CAN 或 FlexRay 帧。但是&#xff0c;消息 ID 空间需要在两种用例之间进行协调。 传输 CAN/FlexRay 应使用完整的 SOME/IP 标头。 AUTOSAR Socket-Adapter 使用消息 ID 和长度来构建所需的内部 PDU&#xff0c;但不会查看其他字段。因此&#xff0c;必…

MacOS 14.3 安装 brew

终端执行&#xff1a;/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 可能出现的问题 问题一 连接超时&#xff0c;报错&#xff1a; Failed to connect to raw.githubusercontent.com port 443 after 13 ms:…

029-安全开发-JS应用DOM树加密编码库断点调试逆向分析元素属性操作

029-安全开发-JS应用&DOM树&加密编码库&断点调试&逆向分析&元素属性操作 #知识点&#xff1a; 1、JS技术-DOM树操作及安全隐患 2、JS技术-加密编码及数据安全调试 演示案例&#xff1a; ➢JS原生开发-DOM树-用户交互 ➢JS导入库开发-编码加密-逆向调试 ➢两…

Python之数据可视化(地图)

目录 一 基础地图应用 二 全国疫情图 一 数据准备 二 数据处理 二 湖北省疫情图 一 数据准备 二 数据处理 一 基础地图应用 导入map地图对象 from pyecharts.charts import Map map Map() 写入数据 data [("北京市",100),("上海市"…

Django 中的 connection.cursor() 执行 SQL 用法

在 Django 开发中&#xff0c;通常依赖于 Django ORM 来处理数据库操作&#xff0c;它提供了一个高级的抽象层&#xff0c;使得数据库交互更加直观和安全。然而&#xff0c;有时可能需执行一些复杂的查询或数据库操作&#xff0c;这些操作可能超出了 ORM 的能力范围&#xff08…

Ansible自动化运维实战

一、abstract简介 ansible是新出现的自动化运维工具&#xff0c;基于Python开发&#xff0c;集合了众多运维工具(puppet、cfengine、chef、func、fabric) 的优点&#xff0c;实现了批量系统配置、批量程序部署、批量运行命令等功能.无客户端。我们要学一些Ansible的安装和一些基…

【劳德巴赫 Trace32 高阶系列 4 -- Trace32 JTAG 常用命令】

文章目录 Trace32 JTAG 常用命令JTAG.PINJTAG 信号值读取JTAG.SHIFTREGExampleJTAG.SHIFTTDIExampleJTAG.SHIFTTMSExampleJTAG.PROGRAM.SVFTrace32 JTAG 常用命令 JTAG (Joint Test Action Group) 是一种常用的调试和测试标准,用于在电子系统的芯片和板级测试中。在JTAG标准中…

2024最新版MongoDB安装使用指南

2024最新版MongoDB安装使用指南 Installation and Usage Guide of the Latest MongoDB Community Edition in 2024 By JacksonML MongoDB is a document database with the scalability and flexibility that you want with the querying and indexing that you need. – mon…

gitlib部署及应用

一. 下载源网址 Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source MirrorIndex of /gitlab-ce/yum/el7/ | 清华大学开源软件…

【DeepLearning-7】 CNN 和Transformer的混合神经网络结构

构造函数__init__ def __init__(self, channel, dim, depth2, kernel_size3, patch_size(2, 2), mlp_dimint(64*2), dropout0.):初始化函数定义了网络的主要结构和参数。channel: 输入特征的通道数。dim: Transformer部分的特征维度。depth: Transformer的层数。kernel_size: 卷…

ios和安卓虚拟定位

ios 下载好爱思助手 连接手机 电脑上打开爱思助手&#xff0c;打开工具箱&#xff0c;选择虚拟定位。 选择位置即可 重启可以恢复定位 安卓 fake gps。这个需要我们打开 google play 去下载。

2024-01-06-AI 大模型全栈工程师 - 大模型时代的 AI 产品新挑战

摘要 2024-01-06 周六 杭州 晴 课程内容 1. 上一代 AI 能做什么&#xff1f; 2. AI 的能力演进 3. LLMS 带来了哪些变化 4. LLMS 存在哪些问题 5. LLMS 落地的三个关键要素 6. LLMS 短期落地的方向-内容生成 7. LLMS 中期落地的方向-智能体 8. 从 LLMS 到可落地的应用 9. LL…

八种Flink任务监控告警方式

目录 一、Flink应用分析 1.1 Flink任务生命周期 1.2 Flink应用告警视角分析 二、监控告警方案说明 2.1 监控消息队中间件消费者偏移量 2.2 通过调度系统监控Flink任务运行状态 2.3 引入开源服的SDK工具实现 2.4 调用FlinkRestApi实现任务监控告警 2.5 定时去查询目标库…

【数据结构(C语言)】树、二叉树详解

目录 文章目录 前言 一、树的概念及结构 1.1 树的概念 1.2 树的相关概念 1.3 树的表示 1.4 树在实际中的运用 二、二叉树的概念及结构 2.1 二叉树的概念 2.2 二叉树的基本形态 ​编辑2.3 特殊的二叉树 2.4 二叉树的性质 2.5 二叉树的存储结构 三、二叉树的顺序结…

堆溢出:深入理解与防范

在计算机安全领域中&#xff0c;堆溢出是一种常见的安全漏洞&#xff0c;它涉及到程序中的内存分配和管理。本文将深入探讨堆溢出的概念、原因以及防范措施。 首先&#xff0c;我们需要了解什么是堆。在许多编程语言中&#xff0c;如C和C&#xff0c;堆是用于动态内存分配的区…

adb push 将电脑中的文件传输到安卓开发板

1. adb remount 重新挂载设备的文件系统&#xff0c;以便可以对设备进行读写操作&#xff0c;通常情况下&#xff0c;安卓开发板在连接到计算机后&#xff0c;设备的文件系统会被挂载为只读文件系统&#xff0c;重新挂载后变成可读可写权限 C:\Users\Administrator>adb re…

Dart 语言入门

引言 在学习Flutter之前&#xff0c;还是得先把基础打好&#xff0c;先来学习一下Dart的基础知识。 第一个dart import package:dart/dart.dart as dart;main(List<String> arguments) {print(Hello world: ${dart.calculate()}!); } 变量与常量 1.变量 Dart是一个强…

高等数学:积分

本文主要参考&#xff1a; 【建议收藏】同济七版《高等数学》精讲视频 | 期末考试 | 考研零基础 | 高数小白_哔哩哔哩_bilibili 4.1.1.1 定积分引例_哔哩哔哩_bilibili 仅供本人学习使用。 积分是一个在多个领域都广泛使用的概念&#xff0c;特别是在数学和物理学中。 以下是积…

深入了解c语言字符串 2

深入了解c语言字符串 2 一 使用 scanf进行字符串的输入&#xff1a;1.1输入单词&#xff08;不包含空格&#xff09;&#xff1a;1.2 输入带空格的整行文本&#xff1a;1.3 处理输入缓冲区&#xff1a;1.4 注意安全性&#xff1a; 二 使用 printf 字符串的输出&#xff1a;三 输…