软件测试第一部分:基础知识总结

概念与定义

  1. 软件危机:软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

  2. 软件测试(IEEE1983):软件测试是使用人工和自动手段来运行或测试某个系统的过程,目的在于检验被测软件系统是否满足规定的需要,或是弄清楚预期结果与实际结果之间的差别。

  3. 软件缺陷(Ron Patton在《软件测试》一书中提出):只有至少满足下列五个规则之一,才称发生了一个软件缺陷。

    1. 软件未实现产品说明书要求的功能;

    2. 软件出现了产品说明书指明不应该出现的错误;

    3. 软件实现了产品说明书未提到的功能;

    4. 软件未实现产品说明书虽未明确提及但应该实现的目标;

    5. 软件难以理解、不易使用、运行缓慢或者——从测试员的角度看——最终用户会认为不好。

  4. 软件缺陷(IEEE729-1983标准的定义)

    • 从产品内部看,缺陷是软件产品开发或维护过程中产生的错误、毛病等各种问题;
    • 从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。
  5. 测试用例(IEEE1990):测试用例是一组测试输入、执行条件和预期结果,目的是要满足一个特定的目标,比如执行一条特定的程序路径或检验是否符合一个特定的需求的用例。

  6. 测试用例(百度百科的定义):测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。

  7. 软件质量(ISO8402):反映实体满足明确或隐含需要能力的特征总和。

  8. 软件质量(GB/T 11457-2006《软件工程术语》):软件质量是

    • 软件产品中能满足给定需要的性质和特性的总体。
    • 软件具有所期望的各种属性的组合程度。
    • 顾客和用户觉得软件满足其综合期望的程度。
    • 确定软件在使用中将满足顾客预期要求的程度。
  9. 静态测试:不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。

  10. 动态测试:通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。

  11. 手工测试:指测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输入执行,包括与被测软件进行交互(如输入测试数据、记录测试结果等),然后观察测试结果,看被测程序是否存在问题,或在执行过程中是否会有异常发生,属于比较原始但是必须执行的一个步骤。

  12. 自动化测试:自动测试是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的测试程序的过程。

  13. 黑盒测试:忽略系统或部件的内部机制只集中于响应所选择的输入和执行条件产生的输出的一种测试。通过测试来检测每个功能是否正常使用,通过软件的外部表现来发现缺陷和错误。

  14. 白盒测试:又称结构测试或逻辑驱动测试,指通过对程序内部结构的分析、检测来寻找问题。

  15. 灰盒测试:介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。

  16. 单元测试(白盒):单元测试又称模块测试,是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。

    单元定义:(举例)C中指一个函数,Java中指一个类,在图形化的软件中,单元一般指1个窗口,1个菜单。

  17. 集成测试(灰盒):又称组装测试或联合测试。集成测试是检验在单元测试的基础上,将所有模块(软件单元)按照设计(概要设计)要求(如根据结构图)组装成为子系统或系统,进行集成测试。集成测试就是测试这些软件单元是否能够进行正确交互的测试。

  18. 系统测试(黑盒):将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合走来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题保证系统的正常运行。

  19. 功能测试:主要针对产品需求规格说明书对软件进行测试,逐项验收软件功能是否符合要求。

  20. 接口测试:指对各个模块进行系统联调的测试,包含程序内接口和程序外接口测试。

  21. 性能测试:主要测试系统的性能是否满足用户要求,即在特定的运动条件下验证系统的能力状况。主要是通过自动化测试工具模拟正常、峰值及异常负载状况,对系统的各项性能指标进行测试,测试中得到的负荷和响应时间等数据可以被用于验证软件系统是否能够达到用户提出的性能指标。

  22. 压力测试:是一种性能测试,指在超负荷环境中,检验程序是否能够正常运行,检验系统的稳定性。

  23. 负载测试:是一种性能测试,是通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。

同时,在这我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看就行,希望对你有所帮助!【公众号:互联网杂货铺】免费领取软件测试资料!

【2024最新版】Python自动化测试15天从入门到精通,10个项目实战,允许白嫖。。。

简答

软件开发模型(瀑布模型)

  1. 计划
  2. 需求分析
  3. 设计
  4. 程序编码
  5. 测试
  6. 运行维护

软件测试模型

V模型

概念:V模型是软件开发瀑布模型的变种,描述了基本的开发过程和测试行为,明确了测试阶段与开发阶段的对应关系。V模型左侧是开发过程的各个阶段,右侧是测试过程的各个阶段,同一水平上的开发阶段和测试阶段存在对应关系,每个测试阶段需要测试对应开发阶段的成果物。

意义

  • 单元测试和集成测试验证系统设计
  • 系统测试验证系统需求
  • 验收测试也称为交付测试验收用户需求

局限性:未在需求阶段进入测试,不能体现“尽早开展测试”的原则。

W模型

概念:W模型是对V模型的改进,明确地描述出了测试与开发的并行关系。强调测试与开发同步进行。W模型由两个V模型组成,分别代表测试与开发过程,同一水平的开发阶段与测试阶段一一对应。

image-20240103154132068

意义

  • 注重在软件开发的各个阶段应用静态测试技术。
  • 强调尽早展开测试。

局限性

  • 对于很多项目,执行过程中并不产生文档,W模型无法适用。
  • 需求、设计、编码等活动被视为串行,测试和开发活动保持着一种线性的前后关系。无法有效支持迭代开发模型及变更调整。
  • 该模型使用起来的技术复杂度高,对于需求和设计的测试要求很高,实践困难。

H模型

概念H模型将测试活动完全分割出来,使得测试准备活动和测试执行活动清晰地体现出来。在H模型中,软件测试模型是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段。图仅仅显示了整个测试生命同期中某个层次的“微循环”。图中其他流程可以是任意开发流程,如设计流程和编码流程,也可以是其他非开发流程。

image-20240103154612334

软件测试的对象

软件 = 程序 + 数据 + 文档 + 服务

因此,软件测试的对象是程序、数据、文档和服务。

软件测试的目的

软件测试是通过设计和运行测试用例来校验被测系统的实际输出与预期输出是否一致,最终目标是保证系统应符合需求。

软件测试的基本流程

  1. 需求分析
  2. 制定测试计划
  3. 设计测试方案
  4. 执行测试
  5. 测试评估
  6. 测试总结
  7. 测试维护

测试用例的主要组成

  • 输入:测试数据和测试步骤(操作步骤);
  • 输出:系统预期执行结果;
  • 测试环境:系统环境设置,即进行软件测试所必需的工作平台和前提条件。

测试用例的基本属性

  • 典型性(代表性):能揭示最有可能存在缺陷的地方,能代表和覆盖合理与不合理、合法或不合法的情况。
  • 可测试性(可判定性):一个测试用例的预期输出必须是可以检验的,可以根据相关开发文档得到明确的、可判定的结论。
  • 可重现性:对于相同的测试用例,系统的预期执行结果应该完全相同。否则,如果系统预期输出存在不确定性,一旦实际运行该测试用例,也无法进行校验。
  • 独立性:测试用例应尽量独立。

测试用例设计原则

根据《GB/T15532一2008计算机软件测试规范》,设计测试用例时,应遵循以下原则:

  1. 基于测试需求的原则
    按照测试类别的不同要求设计测试用例。
  2. 基于测试方法的原则
    比较成熟的测试用例设计方法与丰富的实践经验相融合才能设计出高品质的测试用例。
  3. 兼顾测试充分性和效率的原则
    测试用例集应兼顾测试的充分性和测试的效率,每个测试用例的内容也应完整,具有可操作性。
  4. 测试执行的可再现性原则
    应保证测试用例执行的可再现性。

软件质量的特性(ISO/IEC 9126)

  1. 功能性
  2. 可靠性
  3. 易用性
  4. 效率
  5. 可维护性
  6. 可移植性

软件测试基本原则(10条)

  1. 尽早测试:尽早发现软件缺陷,降低缺陷的修复成本。

  2. 全面测试:两层含义(1)对产品进行全面的测试,(2)开发人员、测试人员、甚至用户,全面地参与到测试工作中。

  3. 全过程测试:两层含义(1)测试人员充分关注开发全过程,(2)测试人员对测试全过程进行全程跟踪

  4. 独立的、迭代的测试:两层含义(1)将测试过程从开发过程中抽离,作为独立过程,(2)由独立的专业的软件测试机构完成。

  5. Patero原则(缺陷聚集):少数系统模块分布了大部分缺陷。

    如果一个模块已发现许多错误,则剩余错误可能很多,越需要进行深入和多次测试。

  6. 对测试出的结果一定要有一个确认的过程。

  7. 制订严格的测试计划。

  8. 穷尽测试是不可能的,测试需要终止。(需要精心设计测试优先级)

  9. 注意回归测试的关联性。(注意修复一个错误而引发更多错误的现象)

  10. 妥善保存一切测试过程文档。(测试的重现性需要测试文档)

补充:测试应基于客户要求。

总结

软件测试

  • 根本目的:确保被测系统符合用户需求
  • 基本过程:设计测试用例、执行测试用例
  • 测试手段:手工/自动化
  • 测试方式:动态运行(动态测试)/静态审阅(静态测试)
  • 基本流程:需求分析、计划、设计、执行、评估、总结、维护

软件测试可以验证软件质量,但不能提高软件质量。

提高软件质量的途径是改进软件开发过程的质量。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue-cli项目中vue.config.js的配置

vue-cli项目中vue.config.js的配置 一、直接上代码 一、直接上代码 let path require(path) let glob require(glob)function resolve(dir) {return path.join(__dirname, src/${dir}) }module.exports {pages: {index: {// page 的入口entry: src/main.js,// 模板来源temp…

docker的安装的详细教程,以及出现错的解决办法(阿里云)

docker的安装与使用 1.安装dnf sudo yum -y install dnf Repository extras is listed more than once in the configuration 错误:无法为仓库 appstream 找到一个有效的 baseurl 出现这个错误这是由于阿里云的版本导致的 在阿里云开发者社区有答案&#xff01…

java基于ssm框架的滁艺咖啡在线销售系统+vue论文

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装滁艺咖啡在线销售系统软件来发挥其高效地信息处理的作用&am…

技术大拿私房课:掌握Task、Thread、ThreadPool的终极秘籍!

大家好,我是小米!在这个充满技术和创新的时代,作为一名喜欢分享的技术探索者,我想和大家聊一聊一些在社招面试中常常被提到的热门话题——task、thread、threadpool。这是一组关于并发编程的核心问题,也是我们在日常工…

c语言:打印随机3球颜色小程序|练习题

一、题目 给出5种颜色&#xff0c;取出3种颜色进行组合&#xff0c;计算组合的个数。 如图&#xff1a; 二、思路分析 1、3层循环&#xff0c;每一层循环5次(有5个球) 2、排除掉三个球具有同种颜色的情况 三、代码截图【带注释】 四、源代码【带注释】 #include <stdio.h&…

<六>Python的字符串切片及常见操作

字符串的表示 在Python里&#xff0c;可以使用一对单引号、一对双引号或者一对三个双引号、一对三个单引号表示字符串。 a "Im Tom" # 一对双引号 b Tom said:"I am Tom" # 一对单引号c Tom said:"I\m Tom" # 转义字符d Tom said:"…

【linux学习】计算机概论

1. 计算机的定义 接受使用者输入指令与数据&#xff0c;经由中央处理器的数学与逻辑单元处理后&#xff0c;以产生或储存成有用的信息。 2. 计算机硬件的五大单元 输入单元、输出单元、控制单元、算数逻辑单元、主内存。 输入单元&#xff1a;键盘、鼠标、扫描器输出单元&am…

.Net7 环境安装配置

文章目录 前言一、使用步骤1.下载VS 2022 总结 前言 .NET 是一个免费的、跨平台的、开源开发人员平台&#xff0c;用于构建许多不同类型的应用程序。 一、使用步骤 1.下载VS 2022 IDE下载入口&#xff1a; https://visualstudio.microsoft.com/zh-hans/downloads/?cidlearn…

vue中动态出来返回的时间秒数,在多少范围显示多少秒,多少范围显示分,小时等等

在Vue中&#xff0c;你可以使用计算属性&#xff08;computed property&#xff09;或过滤器&#xff08;filter&#xff09;来根据动态返回的时间秒数来显示不同的时间单位&#xff0c;比如秒、分、小时等等。 下面是一个使用计算属性的示例&#xff1a; <template>&l…

霹雳吧啦Wz《pytorch图像分类》-p5ResNet网络

《pytorch图像分类》p5ResNet网络结构 1 网络中的亮点1.1 超深的网络结构1.2 residual模块1.3 Batch Normalization1.4 迁移学习简介 2 模块类代码2.1 BasicBlock&#xff08;18 & 32 layers&#xff09;2.2 Bottleneck&#xff08;50 & 101 & 152 layers&#xff…

保持宽高比

文章目录 padding实现填充 aspect-ratio 在开发中&#xff0c;多少都会碰到一个需求&#xff0c;保持一个合适的宽高比&#xff0c;比如展示一些图片或者视频的时候&#xff0c;会需要保持合适的宽高比&#xff0c;比如 4:3 16:9 等等&#xff0c;本文介绍两种方式 padding 实…

DC电源模块的应用范围与市场前景

DC电源模块的应用范围与市场前景 DC电源模块广泛应用于各种电子设备和系统中&#xff0c;包括通信设备、计算机、工业自动化设备、医疗设备、航天航空设备、新能源设备等。它们为这些设备提供稳定的直流电源&#xff0c;保证设备的正常运行。 DC电源模块主要用于为电子设备提供…

派可数据BI 助力生产企业数字化质量管理,全面提升产品品质

在制造业中&#xff0c;出了质量问题&#xff0c;生产和质检部的同事都先抱怨。大家觉得质量问题是品控部门的问题&#xff0c;生产质量有瑕疵&#xff0c;检验人员就要负责。而检验人员又觉得&#xff0c;品质是生产出来的&#xff0c;而不是检验出来的&#xff0c;只有在生产…

爬取豆瓣电影top250的电影名称(完整代码与解释)

在爬取豆瓣电影top250的电影名称之前&#xff0c;需要在安装两个第三方库requests和bs4&#xff0c;方法是在终端输入&#xff1a; pip install requestspip install bs4 截几张关键性图片&#xff1a; 豆瓣top250电影网页 运行结果 测试html文件标签的各个方法的作用&#xf…

Go语言中的HTTP路由处理

在Web开发中&#xff0c;路由处理是至关重要的部分。它决定了当用户访问某个URL时&#xff0c;服务器应该如何响应。Go语言提供了多种库和工具来处理HTTP路由。下面&#xff0c;我们将深入了解如何在Go语言中处理HTTP路由。 Go语言的net/http包本身提供了基本的功能来处理路由…

面试算法89:房屋偷盗

题目 输入一个数组表示某条街道上的一排房屋内财产的数量。如果这条街道上相邻的两幢房屋被盗就会自动触发报警系统。请计算小偷在这条街道上最多能偷取到多少财产。例如&#xff0c;街道上5幢房屋内的财产用数组[2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;3]表示…

《Aspect Sentiment Quad Prediction as Paraphrase Generation》论文阅读

文章目录 文章介绍文章模型问题定义文章模型PARAPHRASE建模 文章地址&#xff1a; https://arxiv.org/abs/2110.00796 文章介绍 这篇文章在已有的方面级情感分析任务的基础了研究了一项新的任务&#xff1a;方面级情感四元组提取&#xff08;Aspect Sentiment Quad Prediction…

【mujoco】Ubuntu20.04中解决mujoco报错raise error.MujocoDependencyError

【mujoco】Ubuntu20.04中解决mujoco报错raise error.MujocoDependencyError 文章目录 【mujoco】Ubuntu20.04中解决mujoco报错raise error.MujocoDependencyError1. 报错的具体情况2. 解决过程3. 其他问题3.1 ModuleNotFoundError: No module named OpenGL3.2 ModuleNotFoundEr…

期末考试成绩一键私发

期末考试即将开始&#xff0c;学生们心心念念的当然是成绩啦&#xff01;老师们发布期末考试成绩的方式也是多种多样&#xff0c;趣味横生。 有的老师会选择传统的纸质方式。精心整理每个学生的成绩&#xff0c;然后用红笔亲自在成绩单上写下每个学生的分数。这种方式虽然古老…

鸿蒙OS:不止手机,是物联网应用开发

鸿蒙开发是华为自主研发的面向全场景的分布式操作系统&#xff0c;旨在将生活场景中各类终端进行整合&#xff0c;实现不同终端设备间的快速连接、资源共享、匹配合适设备、提供流畅的全场景体验。 鸿蒙开发具有以下特点&#xff1a; 面向全场景&#xff1a;鸿蒙系统能够覆盖…