软件测试的定义概念、目的

什么是软件?

软件的定义
软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它是包括程序(program)、数据、文档(document)的完整集合。

软件与程序的区别

软件=程序+数据+文档

软件测试的定义

为了发现错误而执行程序的过程

在规定条件下对程序进行操作,以发现错误,对软件质量进行评估

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

软件测试的目的

观点一:
测试是程序执行的过程,目的在于发现错误
一个成功的测试用例在于发现至今未发现的错误
一个成功的测试是发现至今未发现的错误的测试
(这种观点指出测试是以找错误为中心,而不是为了证明软件的正确功能)

观点二:
确保产品完成它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明
确保产品满足性能和效率的要求
确保产品是健壮的和适应用户环境的
确保最终交付给用户的产品符合用户的需求,在产品交给用户之前尽早、尽可能多的发现问题,并协助开发改正问题,共同保证产品的质量

软件测试的流程

软件测试和开发的对应

开发 测试
需求阶段 需求阶段
开发计划阶段 测试计划阶段
开发设计和编码阶段 测试设计和开发阶段
编码后的调试阶段、缺陷修复 测试执行阶段
测试评估总结

软件测试执行

在这里插入图片描述

软件测试分类

按照测试阶段分类

测试类型 对象 目的 测试依据 测试方法
单元测试 模块内部的程序错误 消除局部模块的逻辑和功能上的错误 模块逻辑设计,模块外部说明 大量采用白盒测试方法
集成测试 模块间的集成和调用关系 找出与软件设计相关的程序结构,模块调用关系,模块间接口方面的问题 程序结构设计 结合使用白盒与黑盒测试方法,较多采用黑盒方法构造测试用例
系统测试 整个系统,包括系统中的软硬件 对整个系统进行一系列的整体、有效性测试 系统结构设计,目标说明书,需求说明书 黑盒测试

软件测试执行

单元测试
集成测试
系统测试(包括确认测试)
验收测试

单元测试

单元测试又称为模块测试,是最小单位测试
单元测试是软件开发过程中要进行的最低界别的单元测试活动
类、文件、窗口、函数、菜单、报表或者一个存储过程都可以作为一个单元进行测
其依据是详细设计文档

集成测试

在单元测试的基础上将已经通过测试的单元模块按照设计要求组装成系统或者子系统,再进行的测试。目的是炸出被测试系统组件之间的关系和接口中的错误
集成测试又分非增式集成和增式集成
自顶向下增式集成
自底向上增式集成(最常使用的方法)

集成测试
如下图为自底向上集成测试:
在这里插入图片描述

确认测试

由集成测试进入系统测试之前,需要对软件是否可以进入系统测试进行评价,这个过程为确认测试
确认测试需要做的工作包括:有效性测试、软件配置审查

系统测试

系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖

验收测试

Alpha testing(α测试),是由用户在开发测试环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,可由程序员或测试员指导或辅助
Beta testing(β测试),测试是软件的多个用户在一起或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或者测试员完成

按照测试方法分类

静态测试

静态测试是不运行被测试本身而寻找程序代码中可能存在的错误或评估程序代码的过程。静态测试通过分析或者监察源程序语法、结构、过程、接口等来检查程序的正确性,找出问题

动态测试

动态是运行被测试程序,输入相应的测试数据,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能

黑盒测试

黑盒测试(Black-box Testing):不考虑城西内部结构和内部特性,只检查程序功能是否按照需求规格说明书的规定正常使用及程序能否适当接收输入数据而产生正确的输出信息

在这里插入图片描述

白盒测试

白盒测试(White-box Testing):又称结构测试、逻辑驱动测试或基于本程序本身的测试

在这里插入图片描述

灰盒测试

灰盒测试是介于黑盒测试和白盒测试之间的测试方法。在执行白盒测试的时候考虑黑盒测试方法

在这里插入图片描述

冒烟测试

冒烟测试(Smoke testing)的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的测试工作

回归测试

回归测试(Regression Testing),在发生修改后重新测试先前的测试以保证修改的正确性。理论上,对软件的任何新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再现,并确认曾经通过的功能不会出现问题

功能测试

功能测试(Functional testing),根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求

性能测试

性能测试(Rerformance testing),评价一个产品或组件与性能需求是否符合的测试。包括负载测试、强度测试、数据库容量测试、基准测试等类型

压力测试(Stress Testing),获取系统正确运行的极限,检查系统在瞬间峰值复核下正确执行的能力

负载测试(Load Testing),用于检查系统在使用大量数据的时候正确工作的能力,及检查系统的能力最高能达到什么程度

易用性测试

主要从使用的合理性和方便性等角度对软件系统进行检查,发现人为因素或使用上的问题。在保证足够详细的程度下,用户界面要便于使用,对输入的响应时间和响应方式合理,输出有意义、正确,出错信息能够引导用户去解决问题,文档全面、确切等。易用性测试多数情况下没有一个量化标准,主观性较强

安装测试

安装测试(Installing testing),确保该软件在正常情况和异常情况的不同条件下,能够正确安装

界面测试

之测试用户界面的风格是否满足客户要求,文件是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等等

文档测试

文档测试(Document Testing),主要检查文档的正确性、完备性和可理解性

兼容性测试

兼容性测试(Compatibility Testing),测试软件是否和系统其他与之交互的元素之间兼容

安全性测试

检查系统对肥大侵入的防范能力,检查系统中已经存在的系统安全性、保密性措施能力是否发挥作用,有无漏洞

随机测试

没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查

手工测试

采用手工的方式执行测试

自动化测试

自动化测试(Automated Testing),使用自动化测试工具进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试用的比较多

通过测试

是使用满足需求的数据测试系统的过程

失败测试

是使用不满足需求的数据测试系统的过程

错误猜测

错误猜测测试是通过经验发现程序中的错误和缺陷的能力

关于MeterSphere:

项目官网: https://metersphere.io

项目文档: https://metersphere.io/docs

代码仓库: https://github.com/metersphere/metersphere

下载网站: https://community.fit2cloud.com/#/products/metersphere/downloads

常见问题可以参考在线文档:https://metersphere.io/docs/v2.x/faq/installation/

入门教学视频请访问:https://space.bilibili.com/510493147/channel/collectiondetail?sid=397323

飞致云知识库:https://kb.fit2cloud.com/

飞致云学堂:https://edu.fit2cloud.com/

飞致云论坛:https://bbs.fit2cloud.com/

在线体验环境::https://www.metersphere.com/ 注册账号免费试用

测试工具

性能测试工具

****加粗样式****

功能测试工具

在这里插入图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐