0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件测试的定义及如何进行分类

ARM嵌入式Linux之家 来源:未知 2019-07-20 09:58 次阅读

1.软件测试的定义:

官方释义:

a.用来促进鉴定软件的正确性、完整性、安全性和质量的过程。

b.是一种实际输出与预期输出之间的审核或者比较过程。

c.是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。

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

经典定义:

在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

2.软件质量的定义

软件质量:软件满足规定或潜在用户需求的能力。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准‘以及所有专业开发的软件都应具有的和隐含特征相一致的程度。

3.软件测试与软件质量的区别

质量保证(QA):主要工作是通过预防,检查与改进来保证软件质量。它所关注的是软件质量的检查与测量。着眼软件开发活动中的过程、步骤及产物,而不是对软件进行剖析进而找出问题。

软件测试:测试关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。测试人员要"执行"软件,对过程中的产物--开发文档和源代码进行走查,运行,以找出问题,报告质量。测试人员也必须假设软件存在问题,所以所做的操作都是为了找出更多的问题,而不仅仅验证每一件事是正确的。

4.软件测试的内容

根据测试定义,测试贯穿于整个软件生命周期中。在开发的不同阶段,需要测试不同的内容。包括文档,源代码,数据等。

5.软件测试的目的

以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷保障软件质量,避免软件在发布后由于潜在的软件错误和缺陷造成的隐患所带来的商业风险。同时利用测试过程中得到的测试结果和测试信息,作为后续项目开发和测试过程改进的重要输入,避免在将来的项目开发和测试中重复同样的错误;利用更加高效的测试管理手段,提高软件测试的效率和软件产品的质量。

测试需要保证以下两点:程序做了它应该做的事情以及程序没有做它应该做的事情。

软件测试的目的是尽可能早的找出软件产品中潜藏的缺陷并确保其得以修复。

软件测试仅仅只是软件质量保障的重要手段之一。想要真正的提高软件产品的质量,需要通过持续不断的过程改进。

6.测试和调试的区别

1)在目标、方法和思路上有所不同。

2)测试是从已知的条件开始,使用预先定义的过程,并且有预知的结果;调试是从未知的条件开始,结束的过程可能不可预计。

3)测试可以计划,可以预先制定测试用例和过程,工作进度可以度量;描述调试的过程或持续时间相对比较困难。

4)测试的对象包括软件开发过程中的文档、数据以及代码,而调试的对象一般来说只是代码。

7.软件测试的分类

按照开发阶段来划分:单元测试、集成测试、确认测试、系统测试、验收测试。

按照测试技术来划分:黑盒测试、白盒测试、灰盒测试。

按照代码运行来划分:静态测试、动态测试。

按照软件特性来划分:功能测试、性能测试。

按照测试的实施单位来划分:开发方测试、用户测试、第三方测试。

其他分类:回归测试。

8.软件测试的常用种类

单元测试:单元测试又称为模块测试,是针对软件设计的最小单位—程序模块进行正确性检验的测试工作。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发展各模块内部可能存在的各种错误。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行的独立进行单元测试。

单元测试方法包括:控制流测试、数据流测试、拍错测试、分域测试等。

集成测试:集成测试也叫组装测试。通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件的接口关系,逐步成为符合概要设计要求的程序或整个系统。

确认测试:确认测试也叫有效测试。是再模拟的环境下,验证软件的所有功能和性能以及其他特性是否与用户的预期要求一致。通过了确认测试之后的软件,才具备了进入系统测试阶段的资质。

系统测试:系统测试是再真实的系统运行的环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、文件平台等)正确配置、连接,并最终满足用户的所有需求。

验收测试:是软件产品检验的最后一个环节,按照项目任务书或合同、供需双方约定的验收依据文档进行对整个系统的测试与评审,决定是否接收或拒绝系统。

上一个阶段的测试准出条件是下一个阶段的测试准入条件

黑盒测试:通过软件的外部表现来发现其缺陷和错误。黑盒测试法把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序界面处进行测试,它只是检查样序是否按照需求规格说明书的规定正常实现。

白盒测试:通过程序内部结构的分析、检查来寻找问题。白盒测试可以把程序看成装在一个透明的白盒子里,也就是清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。白盒测试又称结构测试。

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

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

静态测试:指不实际运行被测对象,而只是静态地检查程序代码、界面或文档中可能存在错误的过程。

代码测试:主要测试代码是否符合相应的标准和规范。

界面测试:主要测试软件的实际界面与需求中的说明是否相符

文档测试:主要测试用户手册和需求说明是否真正符合用户的实际要求

动态测试:指实际运行被测对象,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是否运行程序。

功能测试:是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。

性能测试:功能的另一个指标,主要关注软件中的某一功能在指定的时间、空间条件下,是否使用正常。

软件的性能包括很多方面,主要有时间性能和空间性能两种。

回归测试:是指对软件的新版本测试时,重复执行之前某一个重要版本的所有测试用例

目的:

1. 验证之前版本产生的所有缺陷已全部被修复;

2.确认修复这些缺陷没有引发新的缺陷

冒烟测试:是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。所以也叫可测性测试。

如果冒烟测试没有通过,后续测试无予展开。

随机测试:也称为随意性测试,是指测试人员基于经验和直觉的探索性测试,其目的是模拟用户的真实操作,。并发现一些边缘性的错误。

自动化测试:利用软件测试工具自动实现全部或部分测试,它是软件测试的一个重要组成部分,能完成许多手工测试无法实现或难以实现的测试;正确、合理的实施自动化测试,能够快速、全面的对软件进行测试,从而提高软件质量,节省经费,缩短软件发布周期。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4556

    浏览量

    66784
  • 软件测试
    +关注

    关注

    2

    文章

    207

    浏览量

    18382

原文标题:软件测试的定义及分类

文章出处:【微信号:gh_bc50e330d5cf,微信公众号:ARM嵌入式Linux之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    labview 是如何进行软件测试的?

    本帖最后由 zhihuizhou 于 2011-11-30 17:39 编辑 现在用LabVIEW编写程序的都是如何进行软件测试的呢??一般软件公司至少有两个部门:
    发表于 11-30 17:21

    光纤是如何进行分类的?如何对光纤的性能进行测试

    光纤是如何进行分类的?如何对光纤的性能进行测试
    发表于 05-27 07:08

    单片机是如何进行分类的?主要分为哪几类?

    单片机是如何进行分类的?主要分为哪几类?单片机的下载方式一般有哪几种方法?
    发表于 07-08 06:05

    编码器是如何进行分类的?分为哪几类?

    编码器是如何进行分类的?分为哪几类?绝对值编码器常见故障有哪些?绝对值编码器与绝对式编码器有什么不同?
    发表于 07-12 06:41

    ***控制软件Candler如何进行编译与运行

    ***控制软件Candler如何进行编译与运行
    发表于 10-13 07:37

    何进行单片机测试程序免费下载

    本文档的主要内容详细介绍的是如何进行单片机测试程序免费下载。
    发表于 06-10 17:49 2次下载
    如<b class='flag-5'>何进行</b>单片机<b class='flag-5'>测试</b>程序免费下载

    什么是EMC测试_如何进行EMC测试

    我们经常被问到什么是EMC测试,为什么要进行测试,谁应该执行EMC测试以及我们如何进行测试,因此
    发表于 05-12 10:49 1.6w次阅读

    软件测试的开发阶段:特点和分类

    软件测试的开发阶段:特点和分类
    的头像 发表于 06-29 10:55 4242次阅读

    何进行产品设计分类,有哪些设计思路

    根据不同产品的行业规则来进行设计,设计符合标准的产品出来。那在产品设计我们如何进行产品设计分类了? 可以按照很多方面进行分类,按照不同的性质
    的头像 发表于 06-07 16:04 2434次阅读

    MCU如何进行单元测试

    背景MCU软件不同于常规的PC机或基于SOC的嵌入式软件,其一般情况下,与底层硬件耦合度高,资源有限,如何进行单元测试的问题困扰我很久。解决方案根据目前已知如下3种类型的方案:在目标板
    发表于 10-26 10:06 26次下载
    MCU如<b class='flag-5'>何进行</b>单元<b class='flag-5'>测试</b>

    电源如何进行效率测试

    我们进行了其它改动的时候,就需要重新进行效率测试。 今天,就给大家详细讲一讲如何进行效率测试,以及相关注意事项。
    的头像 发表于 12-01 16:19 1169次阅读

    何进行千兆以太网的一致性测试

    今天我们简单聊一聊,如何进行千兆以太网的Tx一致性测试
    的头像 发表于 07-07 09:32 655次阅读
    如<b class='flag-5'>何进行</b>千兆以太网的一致性<b class='flag-5'>测试</b>

    汽车天窗淋雨设备——防水测试何进行

    汽车天窗淋雨设备——防水测试何进行
    的头像 发表于 10-12 08:14 750次阅读
    汽车天窗淋雨设备——防水<b class='flag-5'>测试</b>如<b class='flag-5'>何进行</b>

    定义和实施帮你对软件测试进行全解析

    软件测试软件开发过程中的一项重要环节,它的目的是确保软件能够满足预期的需求和质量标准,为客户提供高质量的产品或服务。本文将从定义和实施角
    的头像 发表于 12-21 14:25 207次阅读

    何进行RF PA Ruggedness的测试和评估呢?

    关于PA ruggedness设计测试问题,先介绍一下原理,如何进行ruggedness的测试和评估。
    的头像 发表于 03-27 10:19 323次阅读
    如<b class='flag-5'>何进行</b>RF PA Ruggedness的<b class='flag-5'>测试</b>和评估呢?