软件工程 测试

软件测试是根据从用户和系统规范收集的需求对软件进行评估。测试在软件开发生命周期的阶段级别或程序代码的模块级别进行。软件测试包括验证和确认。

软件验证

验证是检查软件是否满足用户要求的过程。它在 SDLC 结束时执行。如果软件符合它的要求,他就会被验证。

验证确保正在开发的产品是按用户的要求。
验证回答了这个问题 - “我们是否正在开发能够从该软件中满足用户所有需求的产品?"。
验证注重用户的需求。

软件确认

确认是确认软件是否满足业务需求的过程,并按照正确的规范和方法进行开发。

确认确保正在开发的产品是符合设计规范。
确认回答了这个问题 - “我们是否严格遵循所有设计规范来开发这个产品?"。
确认集中在设计和系统规范上。

测试的目标是:

错误:这些是开发人员所犯的实际编码错误。此外,软件的输出与期望的输出存在差异,被视为错误。
故障:当错误存在时发生故障。故障,也称为错误,是可能导致系统故障的报错结果。
失败:失败是指系统无法执行所需的任务。故障发生在系统存在故障时。

手动与自动测试

测试可以手动完成,也可以使用自动化测试工具:

手动 - 此测试是在不借助自动化测试工具的情况下执行的。软件测试人员为代码的不同部分和级别准备测试用例,执行测试并将结果报告给经理。
手动测试既费时又费资源。测试人员需要确认是否使用了正确的测试用例。测试的主要部分设计手动测试。
自动 - 该测试是借助自动化测试工具完成的测试过程。使用自动化测试工具可以克服手动测试的局限性。

测试需要检查网页是否可以在 Internet Explorer 中打开。这可以通过手动测试轻松完成。但是要检查网络服务器是否可以承受 100 万用户的负载,手动测试是完全不可能的。

有软件和硬件工具可以帮助测试人员进行负载测试、压力测试、回归测试。

测试方法

可以基于两种方式进行测试:

功能测试
实施测试

当在不考虑实际实现的情况下测试功能时,它被称为黑盒测试。另一方面被称为白盒测试,其中不仅测试功能,还分析其实现方式。

详尽的测试是完美测试的最佳方法。测试输入和输出值范围内的每个可能值。如果值的范围很大,则不可能在现实世界场景中测试每个值。

黑盒测试

执行它是为了测试程序的功能,它也被称为“行为”测试。在这种情况下,测试仪具有一组输入值和相应的期望结果。在提供输入时,如果输出与期望的结果匹配,则程序被测试为“OK”,否则就会出现问题。

在这里插入图片描述

在这种测试方法中,测试人员不知道代码的设计和结构,测试工程师和最终用户对软件进行这种测试。

黑盒测试技术:

等价类 - 输入被分成类似的类。如果一个类中的一个元件通过了测试,则假定所有类都通过了。
边界值 - 输入被分为较高端值和较低端值。如果这些值通过测试,则假定它们之间的所有值也可以通过。
因果图 - 在之前的两种方法中,一次只测试一个输入值。原因(输入) - 效果(输出)是一种测试技术,其中以系统的方式测试输入值的组合。
成对测试 - 软件的行为取决于多个参数。在成对测试中,对多个参数的不同值进行成对测试。
基于状态的测试 - 系统在提供输入时改变状态。这些系统根据它们的状态和输入进行测试。

白盒测试

它用于测试程序及其实现,以提高代码效率或结构。它也被称为“结构”测试。

在这里插入图片描述

在这种测试方法中,测试人员知道代码的设计和结构。代码的程序员对代码进行此测试。

以下是一些白盒测试技术:

控制流测试 - 控制流测试的目的建立涵盖所有语句和分支条件的测试用例。测试分支条件的真假,以便覆盖所有语句。
数据流测试 - 这种测试技术强调覆盖程序中包含的所有程序变量。它测试变量的声明和定义位置以及它们被使用或更改的位置。

测试级别

测试本身可以在 SDLC 的各个级别进行定义。测试过程与软件开发并行运行。在进入下一阶段之前,需要对一个阶段进行测试、验证和确认。

单独进行测试只是为了确保软件中没有隐藏的错误或问题。软件在不同级别上进行测试:

单元测试

在编码时,程序员对该程序单元执行一些测试以了解它是否没有错误。测试是在白盒测试方法下进行的。单元测试帮助开发人员确定程序的各个单元是否按要求工作并且没有错误。

集成测试

即使软件单元单独运行良好,也需要确定这些单元如果集成在一起是否也能正常工作。例如,参数传递和数据更新等。

系统测试

软件被编译为产品,然后作为一个整体进行测试。这可以使用以下一项或多项测试来完成:

功能测试 - 根据要求测试软件的所有功能。
性能测试 - 该测试证明了该软件的效率。它测试软件完成所需任务的有效性和平均时间。性能测试通过负载测试和压力测试来完成,其中软件在各种环境条件下处于高用户和数据负载下。
安全性和便携性 - 这些测试是在软件要在各种平台上运行并由多人访问时完成的。

验收测试

当软件准备交给客户就必须经过测试,它是用户交互和响应测试的最后阶段。这是很重要的,因为即使软件符合所有用户要求,并且如果用户不喜欢它的外观和工作方式,它也可能被拒绝。

Alpha测试 - 开发团队自己通过使用系统来执行 alpha 测试,就好像它是在工作环境中使用一样。他们试图找出用户将如何对软件中的某些操作做出反应以及系统应如何响应输入。
Beta测试 - 软件经过内部测试后,交给用户在生产环境下使用,仅供测试使用。这还不是交付的产品。开发者期望用户在这个阶段会带来细微的问题,这些问题被跳过了

回归测试

每当使用新代码、特性或功能更新软件产品时,都会对其进行彻底测试,以检测添加的代码是否有任何负面影响。这称为回归测试。

测试文档

测试文档在不同阶段准备:

测试前
测试从测试用例生成开始,需要以下文件作为参考:

SRS文档 - 功能需求文档。
测试策略文档 - 这描述了在发布产品之前应该进行多远的测试。
测试战略文档 - 这提到了测试团队、责任矩阵以及测试经理和测试工程师的权利、责任的细节方面。
可追溯矩阵文档 - 这是 SDLC 文档,与需求收集过程相关。随着新需求的出现,它们被添加到这个矩阵中。这些矩阵帮助测试人员了解需求的来源。它们可以向前和向后追溯。

在接受测试时

在开始和进行测试时可能需要以下文档:

测试案例文档 - 本文档包含需要进行的测试列表。它包括单元测试计划、集成测试计划、系统测试计划和验收测试计划。
测试说明 - 本文档详细描述了所有测试用例和执行它们的过程。
测试案例报告 - 本文档包含作为测试结果的测试用例报告。
测试日志 - 本文档包含每个测试用例报告的测试日志。

测试后

测试后可能会生成以下文件:

测试总结 - 此测试总结是对所有测试报告和日志的集体分析。它总结并推断了软件是否准备好启动。如果准备好启动,该软件将在版本控制系统下发布。
测试与质量控制,质量保证和审计
我们需要了解软件测试不同于软件质量保证、软件质量控制和软件审计。

软件质量保证 - 这些是软件开发过程监控手段,通过它可以确保所有措施都按照组织标准采取。进行这种监视是为了确保遵循正确的软件开发方法。
软件质量控制 - 这是一个维护软件产品质量的系统。它可能包括软件产品的功能性和非功能性方面,从而增强组织的商誉。该系统确保客户收到符合其要求的优质产品,并且产品被认证为“适合使用”。
软件审计 - 这是对组织用于开发软件的程序的审计。独立于开发团队的审计员团队检查 SDLC 的软件过程、程序、要求和其他方面。软件审计的目的是检查软件及其开发过程是否符合标准、规则和规定。

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

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

相关文章

在CANoe中Ping多播地址的若干问题

在CANoe中添加网络节点Dut,作为加入多播组的主机,配置TCP/IP Stack和网卡参数: IP地址:192.168.0.17MAC地址:02:00:00:00:00:17在CANoe中添加网络节点Tester,作为发送多播报文的数据源,配置TCP/IP Stack和网卡参数: IP地址:192.168.0.52MAC地址:02:00:00:00:00:52Dut…

基于51单片机64位病床呼叫系统设计( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机病床呼叫系统设计( proteus仿真程序设计报告原理图讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0095 1. 主要功能: 基于51单片机的病床呼叫系统proteus仿…

【机器学习算法】——逻辑回归

目录 逻辑回归理解损失函数代码练习1. 房屋价格与面积的关系2.基于学生特征的录取概率预测 逻辑回归理解 逻辑回归是用来二分类的! 是在线性回归模型之后加了一个激活函数(Sigmoid)将预测值归一化到【0~1】之间,变成概率值。 一般计算其中一…

2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别

2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别 一、背景 财务数据是指企业经营活动和财务结果的数据记录,反映了企业的财务状况 与经营成果。对行业、企业的财务数据进行分析,就是要评价其过去的经营业绩、 衡量现在的财务状况、预测…

【Android】View的工作流程——measure

1.View的工作流程入口 1.1DecorView被加载到Window中 看到这里你对Activity的构成有一定的了解,每个 Activity 都有一个与之关联的 Window 对象,而 DecorView 是这个 Window 的根视图。当DecorView被创建以及加载资源的时候,此时它的内容还…

4.opengl中变换

变换 1.向量 向量有一个方向(Direction)和大小(Magnitude,也叫做强度或长度)。 数学家喜欢在字母上面加一横表示向量,比如说vv。当用在公式中时它们通常是这样的: 1.1.向量相乘 1.1.1.点乘 我们该如何计算点乘呢?点乘是通过将…

聊聊开发一个接口用到哪些Swagger 注解

文章目录 常用swagger注解类注解方法注解字段注解 Swagger配置引入依赖编写配置类静态资源映射访问swagger ui 为什么要聊Swagger呢,原因是我发现实际开发中前端同事每次都需要问我枚举是什么,经过反思,我觉得是接口文档写的不够好。所以整理…

【Nginx系列】多个路径指向一个地址

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

fastadmin修改后台登录背景

背景 fastadmin 用习惯了&#xff0c;但是登录界面真的不好看&#xff0c;今天就修改一下。先看界面&#xff1a; 解决方案 1.安装插件&#xff1a;后台登录背景。 2.上传固定图片修改登录页面为如下&#xff1a; <!DOCTYPE html> <html> <head>{include…

Unreal Engine Groom打包没有物理模拟

编辑器中运行头发有物理模拟效果&#xff0c;打包后没有 Project Setting 加/HairStrands

MCU-USB转UART的底层逻辑

USB/UART Bridge: Understand Everything in Animations - Parlez-vous Tech 没有 USB 端口的 PC 如何与单片机通信&#xff1f; 答案就在 USB/UART 桥接器中。 无论是用于调试、连接 IoT 传感器还是进行工业监督&#xff0c;此桥接器都简化了硬件集成并使通信更加可靠。以…

仿真键盘输入遇到Edge环境不识别 回车符如何处理

这个问题我也是最近才遇到&#xff0c;可能现在大家都喜欢用新架构&#xff0c;基于网页来写应用管理软件。 当遇到Edge环境下&#xff0c;文本框不识别回车符如何处理&#xff0c;根据笔者经验可通过配置Edge 基于键盘管理设置来解决这个事情。如图 即在Edge浏览器环境下&…

在做题中学习(79):最小K个数

解法&#xff1a;快速选择算法 说明&#xff1a;堆排序也是经典解决问题的算法&#xff0c;但时间复杂度为&#xff1a;O(NlogK)&#xff0c;K为k个元素 而将要介绍的快速选择算法的时间复杂度为: O(N) 先看我的前两篇文章&#xff0c;分别学习&#xff1a;数组分三块&#…

【html网页页面009】html+css制作学校官网主题网页制作含登录(5页面附效果及源码)

校园网站主题网页制作 &#x1f964;1、写在前面&#x1f367;2、涉及知识&#x1f333;3、网页效果&#x1f308;4、网页源码4.1 html4.2 CSS4.3 源码获取w034学校网页源码及介绍链接 &#x1f40b;5、作者寄语 &#x1f964;1、写在前面 学校网站主题的网页 一共5个页面 网…

2024-12-08 数字人最新论文更新(MEMO, INFP, IF-MDM, SINGER, One Shot, One Talk, FLOAT等)

2024-12-08 数字人最新论文更新(MEMO, INFP, IF-MDM, SINGER, One Shot, One Talk, FLOAT等) 汇总一下最近一个星期的一些数字人论文的更新&#xff0c;我觉得比较有意思的一些文章比如SINGER&#xff0c;用Diffusion来做sing的talking head&#xff0c;确实是一个不错的文章&…

亚马逊云科技用生成式AI,向开发的复杂性动手了

生成式 AI、分布式扩展功能全面进化&#xff0c;还降价了。 同一天的发布&#xff0c;完全不同的方向。 今天凌晨&#xff0c;云计算巨头亚马逊云科技的 re:Invent 与大号创业公司 OpenAI 的发布「撞了车」。后者公布了一系列生成式 AI 应用&#xff0c;价格更贵、性能更强大&a…

HTML+CSS+JS实现简单的打字机

HTMLCSSJS实现简单的打字机 js /*** 动态打字效果函数* (select和element只能选择一个)* param {Object} options - 配置选项* param {string} options.select - 选择器&#xff0c;用于定位要显示文本的DOM元素("#id"或".class")* param {Object} optio…

[Collection与数据结构] 位图与布隆过滤器

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

探秘AES加密算法:多种Transformation全解析

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

【Liunx篇】基础开发工具 - vim

文章目录 一.vim的基本概念1.正常/命令模式2.插入模式3.底行模式/末行模式4.视图模式5.替换模式 二.vim的基本操作1.进入vim&#xff1a;2.退出vim: 三.vim正常模式命令集1.光标定位&#xff1a;2.复制/粘贴3.撤销4.剪切/删除5. 更改 四.vim底行模式命令集1.保存/退出2.调出行号…