【系统分析师】-软件测试

news2024/9/27 12:16:03

目录

1、测试的类型

1.1、动态测试

1.1.1、黑盒法

1.1.2、白盒法

1.1.3、灰盒法

1.2、静态测试

2、测试阶段

2.1、单元测试

2.2、集成测试

2.3、确认测试

2.4、系统测试

3、性能测试

3.1、性能测试的目的

3.2、性能测试的类型

3.3、性能测试的步骤

5、测试设计

6、测试管理

7、考点


软件测试用于验证软件是否满足软件需求规格说明和软件设计所规定的功能、性能及软件质量特性的要求,为软件质量的评价提供依据。

软件测试过程包括测试计划、测试设计、测试执行和测试评估等阶段

1、测试的类型

1.1、动态测试

通过运行程序发现错误

1.1.1、黑盒法

又称功能测试或数据驱动测试。

测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,是否满足需求规格说明书。

对输入数据的各种可能值的排列组合进行测试。

1、等价类划分

把程序的输入域划分成若干部分,从每部分选择少数数据作为测试用例。

2、边界值分析

一种补充等价类划分的测试用例,不选择等价类的任意元素,而是选择等价类边界的测试用例。

3、错误推测

基于经验和直觉推测程序中的所有可能错误,有针对性的设计测试用例。

4、因果图

从自然语言书写的程序规则说明的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转化为判定表

1.1.2、白盒法

又称结构测试

测试人员必须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中的逻辑路径进行测试,检查内部控制结构和数据结构是否有误,实际的运行状态与预期状态是否一致。

1、基本路径测试

在程序控制流程图的基础上,通过分析控制结构的环路复杂性导出基本路径集合,然后设计测试用例,保证路径至少通过一次。

2、循环覆盖测试

指覆盖程序中所有的循环,包含单循环和嵌套循环

3、逻辑覆盖测试

以程序内部逻辑为基础,包括

语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、修正的条件判断覆盖、条件组合覆盖、点覆盖、边覆盖和路径覆盖等。

1.1.3、灰盒法

一种介于白盒测试与黑盒测试之间的测试,它关注输出对于输入的正确性,同时也关注内部表现,但这种关注不像白盒测试那样详细且完整,而只是通过一些表征性的现象、事件及标志来判断程序内部的运行状态。

灰盒测试结合了白盒测试和黑盒测试的要素,考虑了用户端、特定的系统知识和探作环境,在系统组件的协同性环境中评价应用软件的设计。

1.2、静态测试

指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。

1)桌前检查

由程序员自己检查自己编写的程序。

2)代码审查

由若干程序员和测试员组成一个会审小组,通过阅读、讨论和争议,对程序进行静态分析的过程。

第一步,小组负责人提前把设计规格说明书、控制流程图、程序文本及有关要求、规范等分发给小组成员,作为评审的依据。

第二步,召开程序审查会。在会上,首先由程序员逐句讲解程序的逻辑。在此过程中,程序员或其他小组成员可以提出问题,展开讨论,审查错误是否存在。

3)代码走查

代码走查与代码审查基本相同

第一步,把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会。

第二步,让与会者“充当”计算机,准备一批有代表性的测试用例,提交给走查小组。

静态测试属于白盒测试的范畴

2、测试阶段

2.1、单元测试

又称为模块测试,是针对软件设计的最小单位(程序模块)进行正确性检验的测试工作。

其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,以及发现各模块内部可能存在的各种错误。

单元测试需要从程序的内部结构出发设计测试用例,多个模块可以平行独立地进行单元测试。

单元测试计划在软件详细设计阶段完成

2.2、集成测试

也称为组装测试、联合测试(对于子系统而言,则称为部件测试)。它将已通过单元测试的模块集成在一起,主要测试模块之间的协作性。

一次性组装和增量式组装(包括自顶向下、自底向上及混合式)

黑盒测试

1)驱动模块:相当于被测模块的主程序。它接收测试数据,把这些数据传送给被测模块,最后输出实测结果。

2)桩模块:用于代替被测模块调用的子模块。模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。

在自底向上增量式集成时,因为模块是自底向上进行组装,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经组装并测试完成,所以不再需要模块。

在模块的测试过程中需要从子模块得到的信息可以直接运行子模块得到。

集成测试计划在软件概要设计阶段完成

2.3、确认测试

也称有效性测试,主要包括验证软件的功能、性能及其他特性是否与用户要求(需求)一致。

包含以下类型

(1)内部确认测试:主要由软件开发组织内部按软件需求说明书进行测试。

(2)Alpha 测试:由用户在开发环境下进行测试。

(3)Beta 测试:由用户在实际使用环境下进行测试。

(4)验收测试:针对软件需求说明书,在交付前以用户为主进行测试。

确认测试计划在需求分析阶段完成

2.4、系统测试

如果项目不只包含软件,还有硬件和网络等,则要将软件与外部支持的硬件、外设、支持软件、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列集成与确认测试。

主要内容包括功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试

系统测试计划在系统分析阶段(需求分析阶段)完成

3、性能测试

通过自动化的测试工具模拟多种正常、峰值及异常负载条件来对系统的各项性能指标进行测试。

1)通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。

2)压力测试是通过确定一个系统的瓶颈或不能接收的性能点,获得系统能提供的最大服务级别的测试

3.1、性能测试的目的

  • 评估系统的能力
  • 识别体系中的弱点
  • 系统调优
  • 检测软件中的问题
  • 验证稳定性和可靠性

3.2、性能测试的类型

  • 负载测试:指数据在超负荷环境中运行,程序是否能够承担。
  • 强度测试:强度测试是在系统资源特别低的情况下考查软件系统运行情况。
  • 容量测试:确定系统可处理的同时在线的最大用户数。

3.3、性能测试的步骤

(1)制定目标和分析系统。

(2)选择测试度量的方法。

(3)学习相关技术和工具。

(4)制定评估标准。

(5)设计测试用例。

(6)运行测试用例。

(7)分析测试结果

在网络应用系统中,负载压力测试应重点关注客户端、网络及服务器(包括应用服务器和数据库服务器)的性能。应获取的关键测试指标如下。

(1)客户端:并发用户数、响应时间、交易通过率及吞吐量等

(2)网络:带宽利用率、网络负载、延迟,以及网络传输和应用错误等

(3)服务器:操作系统的 CPU占用率、内存使用和硬盘 O等;数据库服务器的会话执行情况、SQL执行情况、资源争用及死锁等;应用服务器的并发连接数、请求响应时间等。

5、测试设计

1)用户层测试是面向产品最终的使用操作者的测试,重点突出的是从操作者角度上,测试系统对用户支持的情况,用户界面的规范性、友好性、可操作性,以及数据的安全性等。主要包括用户支持测试、用户界面测试、可维护性测试和安全性测试。

2)应用层测试是针对产品工程应用或行业应用的测试,重点放在系统应用的角度,模拟实际应用环境,对系统的兼容性、可靠性、性能等进行测试。主要包括系统性能测试系统可靠性、系统稳定性测试、系统兼容性测试、系统组网测试和系统安装升级测试。

3)功能层测试是针对产品具体功能实现的测试,主要包括功能覆盖测试、功能分解测试、功能组合测试和功能冲突测试。

4)子系统层测试是针对产品内部结构性能的测试,重点关注子系统内部的性能、模块间接口的瓶颈。主要包括单个子系统性能测试、子系统间的接口瓶颈测试和子系统间的相互影响测试。

5)协议层测试是针对系统支持的协议的测试,主要包括协议一致性测试和协议互通性测试。

6、测试管理

(1)测试团队管理

首先,一个好的测试团队要有一个具有极为丰富的开发经验、具有亲和力和人格魅力的带头人。其次,测试团队还应有具备一技之长(如对某些自动化测试工具运用娴熟或能轻而易举地编写自动化测试脚本)的成员。另外,测试团队还应有兼职的同行专家。

(2)测试计划管理

测试计划也称软件验证与确认计划,它详细地规定测试的要求,包括测试的目的、内容、方法、步骤以及测试的准则等,以用来验证软件需求规格说明书中的需求是否已由软件设计说明书描述的设计实现。软件设计说明书表达的设计是否已由编码实现,编码的执行是否与软件需求规格说明书中所规定的需求相一致。由于要测试的内容可能涉及到软件的需求和软件的设计,因此必须及早开始测试计划的编写工作。不应在着手测试时,才开始考虑测试计划。通常,测试计划的编写从需求分析阶段开始,到软件设计阶段结束时完成。

(3)缺陷跟踪管理

当测试团队发现文档或代码中存在缺陷以后,并不是交一份测试报告就草草了事,而是在递交报告以后继续督促开发团队及时改正已有错误。当开发团队改正了测试报告中的错误以后,测试团队还需进行回归测试以验证开发团队在改错过程中没有引入新的错误。

(4)测试件管理

测试件指测试工作形成的产品,包括测试团队在长期实践过程中逐步积累起来的经验教训、测试技巧、测试工具、规格文档以及一些经过少量修改能推广通用的测试脚本程序。测试件管理工作做得越好,测试团队在实际测试过程中就能越少走弯路,测试团队内部的知识交流和传递就越充分,测试脚本或规格文档的重复开发工作也就能被有效地避免。

7、考点

关于软件测试方面,常在综合知识与论文中出现,在本专栏后续会写一些相关的论文

如 

2024.5月论文:论性能测试方法及其应用

2021年   论文:论静态测试方法及应用

2019年   论文:论系统自动化测试及其应用 

我通过  软考真题 APP 的 ”智能练题“模块,搜索”测试“关键词,发现 30个题目,选择与论文题目都有。

 

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

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

相关文章

【操作系统存储篇】Linux文件基本操作

目录 一、Linux目录 二、Linux文件的常用操作 三、Linux文件类型 一、Linux目录 Linux有很多目录,Linux一切皆是文件,包括进程、设备等。 相对路径:相对于当前的操作目录,文件位于哪个目录。 绝对路径 :从根目录开…

面对AI时代快车,你没必要跟车赛跑,而是应该先去考个驾照!

在当今人工智能领域,代码生成和编辑工具成为了开发者们手中的利器。昨天,零一万物公司再次展示了他们在开源社区中的领导地位,开源了 Yi-Coder 系列编程助手模型,这一举措不仅标志着该公司继今年5月开源Yi-1.5系列模型后的又一重大…

智能提醒助理系列-服务号静默登录

本系列文章记录“智能提醒助理”wx公众号 建设历程,记录实践经验、巩固知识点、锻炼总结能力。 本文介绍,如何让用户进入公众号之后就锁定用户,使用既注册,进入既可使用功能,去掉繁琐的登录认证流程。 一、需求出发点 …

告别单调,Xmind思维导图之后还有这三款神器,让学习工作更愉快

这年头信息量爆炸,我们得想办法把事情想清楚、把活儿排排好、学点新玩意儿。思维导图这东西,因为它画出来一目了然,用起来也简单,所以特别受学生们和上班的人的欢迎。在这么多画思维导图的软件里,Xmind因为功能全、界面…

02【SQL sever 2005数据库安装教程】

一、安装须知 1.安装数据库版本:SQL sever 2005 2.适用系统(目前发现):Windows server 2008 R2 3.安装程序目录:SQL2005\SQL Server x64\Servers\setup.exe 二、安装步骤 1.双击setup.exe,以…

c++编程(25)——unordered_map模拟实现

欢迎来到博主的专栏:c编程 博主ID:代码小豪 文章目录 unorder_map的底层insert迭代器成员访问函数operatoroperator-\- unordered_map是STL中的关联式容器之一,与常规的map有两点不同 (1)unordered是无序的意思&#x…

AI与我同创诗:尝试让ai(智谱清言)参与我的诗创活动

ai伴学越久,契合度愈高,“泛滥”之诗情,幸得学伴共雕琢。让ai伴学久了,不知觉的,写诗也让ai帮衬了。此文收录“我共ai”的自创文稿,亦可作“ai诗集”。😋 (笔记模板由python脚本于2024年09月03日…

企业微信中嵌套的h5应用调用微信扫码功能

企业微信官方文档 1.登录企业微信后台,管理员可操作,打开应用配置应用可信域名(必须配置,否则无法调用jsapi,可信域名必须有ICP备案且在管理端验证域名归属) 配置部署后的前台域名地址 配置可信域名,部署后的服务器域名(需备案认证) 当域名权限不够时需下载文件效验,将文件放…

网站开发:HTML + CSS - CSS选择器

1. 前言 CSS(Cascading Style Sheets,层叠样式表)是一种用于控制 HTML 文档样式和布局的语言。它为 Web 页面提供了许多功能,使开发者能够创建美观且功能丰富的用户界面。 提供了丰富的功能来控制网页的外观和布局,增…

掌握SQLAlchemy:Python数据库的魔法师

文章目录 掌握SQLAlchemy:Python数据库的魔法师背景:为什么选择SQLAlchemy?SQLAlchemy是什么?如何安装SQLAlchemy?五个简单的库函数使用方法1. 创建引擎2. 定义模型3. 创建会话4. 添加数据5. 查询数据 场景应用1. 多表…

大模型构建合作性的Agent,多代理框架MetaGpt

大模型构建合作性的Agent,多代理框架MetaGpt 前言 MetaGPT 框架将标准的操作程序(SOP)与基于大模型的多智能体相结合,使用标准操作程序来编码提示,确保协调结构化和模块化输出。 MetaGPT 允许 Agent 在类似流水线的范式中扮演多中角色,通过结构化的 Agent 协作和强化领…

Android Studio 加载多个FLutter项目

按顺序操作即可 选择工程 选择Modules, 导入 module 选中创建module 选择要导入的目录,只选择主目录,下面的文件不要选 添加完成,点击ok后,会进行导入 最终导入成功

三星称霸全球市场,但它在中国市场再受打击,将进一步收缩业务

韩国媒体报道指三星已计划进一步收缩中国业务,将中国的销售和生产部门人员减少一部分,其中销售人员计划减少8%左右,显示出它在中国市场继续面临打击,对于这家在全球市场领先地位仍然稳固的企业来说,它在中国市场无疑又…

OpenCV结构分析与形状描述符(8)点集凸包计算函数convexHull()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 查找一个点集的凸包。 函数 cv::convexHull 使用斯克拉斯基算法(Sklansky’s algorithm)来查找一个二维点集的凸包&#…

Wyn 商业智能V8.0 新版本来袭,解锁“智造”的无限可能

Wyn商业智能V8.0 版本全新发布,聚焦制造业数字化升级痛点,深度赋能制造业数字化转型升级之路,从无缝集成物联网海量数据,到构建可视化实时分析、监控与预警大屏,全面打通生产制造全生命周期的数据脉络,为您…

免费OCR 文字识别工具

免费:本项目所有代码开源,完全免费。 方便:解压即用,离线运行,无需网络。 高效:自带高效率的离线OCR引擎,内置多种语言识别库。 灵活:支持命令行、HTTP接口等外部调用方式。 功能…

hiprint打印/jsPDF使用/html2canvas

最初我知道hiprint.print是可以打印双模板的,于是查看hiprint.print的源码发现底层实现是this.getHtml(t).hiwprint,于是断点查看getHtm的实现,得知它是遍历我们对print传参的list,利用list中模板对象的getHtml()方法得到模板的dom对象&#…

论文120:Giga-SSL: Self-supervised learning for gigapixel images (2023, CVPR, 开源)

文章目录 1 要点2 方法2.1 算法设计2.2 设计选择 1 要点 题目:用于千兆像素图像的自监督学习 (Giga-SSL: Self-Supervised Learning for Gigapixel Images) 代码:https://github.com/trislaz/gigassl 研究目的: 现有的WSI分类方法依赖于有…

告别格式不兼容烦恼!ape转换mp3,分享3个简单方法

各位读者们,你们是否有过这种体验:满怀期待地在网上下载一首好听的歌曲,结果怎么点击手机都播放不了,定睛一看,弹窗显示“无法播放该音频文件”。这是为什么呢?原来那首歌的音频格式是ape,不被手…

2024年全国大学生数学建模C题解题思路

C 题 农作物的种植策略 gzh 大学竞赛君 根据乡村的实际情况,充分利用有限的耕地资源, 因地制宜,发展有机种 植产业,对乡村经济 的可持续发展具有重要的现实意义 。选择适宜的农作物, 优化种植策略,有利于方…