[软件测试] 第一部分 软件测试基础

这篇具有很好参考价值的文章主要介绍了[软件测试] 第一部分 软件测试基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

软件测试期末复习系列

课件知识点整合

  1. 软件测试基础
  2. 白盒测试
  3. 黑盒测试

PTA习题汇总

  1. 软件测试基础
  2. 白盒测试-逻辑覆盖测试
  3. 白盒测试-基本路径测试
  4. 白盒测试-静态测试
  5. 黑盒测试-等价类划分
  6. 黑盒测试-边界值测试
  7. 黑盒测试-场景法

概念与定义

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

简答

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

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

软件测试模型

➕ 于2024-01-03补充

V模型

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

意义

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

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

W模型

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

意义

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

局限性

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

H模型

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

软件测试的对象

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

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

软件测试的目的

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

软件测试的基本流程

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

测试用例的主要组成

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

测试用例的基本属性

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

测试用例设计原则

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

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

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

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

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

➕ 于2024-01-03补充

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

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

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

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

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

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

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

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

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

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

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

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

总结

软件测试

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

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

提高软件质量的途径是改进软件开发过程的质量文章来源地址https://www.toymoban.com/news/detail-765458.html

到了这里,关于[软件测试] 第一部分 软件测试基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot单元测试之第一部分: Dao层的单元测试

    前言 :本次demo写的关于图书管理的增删改查分页等功能进行单元测试 数据库 :数据库的表结构及数据如下: 1、Pojo实体类 2、Dao数据层 简介:使用 MybatisPlus 的标准通用接口 BaseMapper 快速进行开发 3、编写Dao层的单元测试用例 1) 、根据id查询数据的测试: 2) 、插入数据的

    2024年02月15日
    浏览(22)
  • 【OpenCV入门】第一部分——图像处理基础

    图像处理包括4个基本操作: 读取图像 、 显示图像 、 保存图像 和 获取图像属性 。 imread() filename :目标图像的完整路径名。 flags :图像的颜色类型的标记,有0和1两个值,其中1为默认值。当读取一幅彩色图像时,如果想要得到一幅 彩色图像 ,那么flags的值为1(此时flags的

    2024年02月11日
    浏览(25)
  • 图论 (Java) 从入门到入土 /第一部分 图的基础-图的表示/

            图,是一种比较复杂的数据结构。和树的一个节点只和上层一个节点相连不同,在图中,任意两个节点都可能相连,且可能具有方向性,并且节点的边具有权重,因此,图被用于描述各种复杂的数据对象,在自然科学、社会科学和人文科学等诸多领域有着非常广泛

    2024年02月08日
    浏览(30)
  • 使用Android Studio 利用极光推送SDK 制作手机 APP 实现远程测试技术 (第一部)

    总参考文章:https://blog.csdn.net/qq_38436214/article/details/105073213 Android Studio 安装配置教程 - Windows(详细版) 1.JDK 安装与环境变量配置(Win10详细版) 《jdk-8u371-windows-i586.exe》 https://blog.csdn.net/qq_38436214/article/details/105071088 此时会让登录账号密码: https://login.oracle.com/mysso/signon.jsp 账号:

    2024年02月03日
    浏览(30)
  • 【干货】Android系统定制基础篇:第一部分(文件权限、增加信号强度、双路背光控制)

    当需要修改某文件或路径权限时,我们可以在init.rc开机启动某节点添加chmod命令进行修改。但是对于system分区,由于是ro权限,在init.rc使用chmod修改权限无效。需要在文件编译时,对权限进行修改。不同的Android版本改法一样,但是文件所在目录有差异,Android O主要修改文件是

    2024年02月09日
    浏览(33)
  • C++入门教程,C++基础教程(第一部分:从C到C++)七

    由C语言发展而来的一种面向对象的编程语言。 本章讲述 C++ 语言的简史,以及 C++ 语言中与面向对象关系不大、C语言中没有的特性。这些特性能够增加编程的便利性,提高程序的可扩充性。 inline 可以只在函数定义处添加,也可以只在函数声明处添加,也可以同时添加

    2024年02月02日
    浏览(30)
  • C/C++网络编程基础知识超详细讲解第一部分(系统性学习day11)

    目录 前言 一、网络的含义与构成 含义: 构成:  二、网络的体系结构 1OSI七层模型 2TCP/IP协议体系结构  3数据经过体系结构,怎么封装?  4端口号 5大小端序 6TCP/UDP传输层的协议  三、系统函数API学习框架(TCP)     服务器(优先):  客户端: 四、服务器和客户端代码实

    2024年02月08日
    浏览(39)
  • 章节 1:入门React.js -《React.js手把手教程:从初学者到实战高手》- 第一部分:React.js基础

    《React.js手把手教程:从初学者到实战高手》 第一部分:React.js基础 在我们开始探索 React.js 的奇妙世界之前,让我们先来认识一下这个“ 人人都在谈论 ”的家伙。你可以把 React.js 想象成是一个全栈工程师的一大碗甜品,不仅好吃,还可以让你的应用更美味!那么,究竟什么

    2024年02月11日
    浏览(30)
  • 【软件测试】基础知识第一篇

    软件测试就是验证软件产品特性是否满足用户的需求 。 那需求又是什么呢?在多数软件公司,会有两种需求,一种是用户需求,一种是软件需求: 用户需求 :可以简单理解为甲方提出的需求,该需求一般比较简略 软件需求 :或者叫功能需求,该需求会详细描述开发人员必

    2023年04月14日
    浏览(44)
  • 模拟第一部分5

    1、如果想要在外部包中使用全局变量,则全局变量必须( ) 正确答案:A A、首字母必须大写 B、首字母必须小写 C、必须加上const D、必须加上var 答案解析:在函数体外声明的变量称之为全局变量。全局变量声明必须以 var 开头,如果想要在外部包中使用

    2024年02月08日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包