软件测试阶段及方法

2023-05-16

软件测试阶段

1、单元测试

2、集成测试

3、系统测试

4、验收测试

软件测试阶段的划分:

1、单元测试

•单元测试是针对软件基本组成单元函数内部的语句、条件分支来进行正确性检验的测试工作

•单元测试的目的是检测软件模块对《详细设计说明书》LLD的符合程度

2、集成测试

•集成测试是在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统,验证组装后功能以及模块间接口是否正确的测试工作

•集成测试的目的是检测软件模块对《概要设计说明书》HLD的符合程度

3、系统测试

•系统测试是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的测试工作

•系统测试的目的在于通过与《需求规格说明书》SRS作比较,发现软件与系统需求定义不符合或与之矛盾的地方

4、验收测试

•单元测试、集成测试、系统测试是软件开发过程中在软件组织内部进行的测试阶段

•对于外包类的项目,在系统测试完成后,软件正式发布前一般都需要进行验收测试。验收测试通常有以下分类:

-α(ALPHA)测试

- β(BETA)测试

- UAT(User Acceptance Test)测试

•在通过了内部系统测试及软件配置审查之后,就可以开始验收测试

•验收测试是以用户为主的测试,验收组应该由项目组成员、用户代表等组成

•验收测试原则上在用户所在地进行,但如经用户同意也可以在公司内模拟用户环境进行

•验收测试根据合同、《需求规格说明书》或《验收测试计划》对成品进行验收测试

•验收测试的结果有两种情况:

-软件功能、性能等质量特性与用户的要求一致,软件可以接受

 软件功能、性能等质量特性与用户的要求有差距,不被用户接受

(1)α测试

•α 测试是由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试

• α测试时,软件在一个自然设置状态下使用。开发者坐在用户旁,随时记下错误情况和使用中的问题。这是在受控制的环境下进行的测试

• α测试的目的主要是评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和技术支持

(2)β测试

•β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试

• 与α测试不同的是,β测试时开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用

(3)UAT测试

UAT测试即用户接受度测试。一般用于商业用户验收系统的可用性。

•一般用于商业用户验证系统的可用性,通常情况由终端用户或利益相关方对被测试对象进行选择性功能验证。

• 也有可能根据法律法规、行业现行标准进行验收测试。

单元、集成、系统测试的比较

 测试方法不同

–  单元测试属于白盒测试范畴

–  集成测试属于灰盒测试范畴

–  系统测试属于黑盒测试范畴

• 测试对象不同

– 单元测试主要测试单元内部的数据结构、逻辑控制、异常处理等

– 集成测试主要测试模块之间的接口和接口数据传递关系,以及模块组合后的整体功能

–  系统测试主要测试整个系统相对于需求的符合度

• 判断标准不同

–  单元测试判断标准是详细设计说明书

–  集成测试的判断标准是概要设计说明书

–  系统测试的判断标准是软件需求规格说明书

软件测试方法

1、黑盒测试

2、白盒测试

3、灰盒测试

4、静态测试

5、动态测试

6、人工测试

7、自动化测试

软件测试的两种极端情况:

任何软件产品都可以使用以下的两种方法之一进行测试:

•已知产品的需求规格,但不知道其内部实现,可以进行测试证明每个需求是否实现。

•已知产品的内部实现过程,可以通过测试证明每种内部操作是否符合设计规格的要求,所有内部成分是否已经过检查。

1、黑盒测试

•黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现。

•黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。

•黑盒测试又可以被称为基于规格的测试。

黑盒测试的特点:

•对于更大的代码单元来说(子系统甚至系统级)比白盒测试效率要高;

•测试人员不需要了解实现的细节,包括特定的编程语言;

•从用户的视角进行测试,很容易被大家理解和接受;

•有助于暴露任何规格不一致或有歧义的问题;

2、白盒测试

•白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体功能实现情况。

•白盒测试是基于程序结构的逻辑驱动测试。

•白盒测试又可以被称为玻璃盒测试、透明盒测试、开放盒测试、结构化测试、逻辑驱动测试。

为什么进行白盒测试?

    我们只要保证需求得到实现就行了,为什么要花费时间和精力来测试内部的逻辑细节呢?

•白盒测试一般在测试前期进行,通过达到一定的逻辑覆盖率指标,使得软件内部逻辑控制结构上的问题能基本得到消除

•白盒测试能保证内部逻辑结构达到一定的覆盖程度,能够给予软件代码质量更大的保证

•白盒测试发现问题后解决问题的成本较低

3、灰盒测试

•根据利用的被测对象信息的不同,会采用不同的方法进行测试。

•利用被测对象的整体特性信息,采用黑盒测试方法

•利用被测对象的内部具体实现信息,采用白盒测试方法

•如果既利用被测对象的整体特性信息,又利用被测对象的内部具体实现信息,采用的就是灰盒测试方法。两种信息占的比例不同,相应的灰度就不同。完全是整体特性信息,就是黑盒测试,完全是内部具体实现信息,就是白盒测试

典型的灰盒测试比如集成测试和系统测试时借助log信息

4、静态测试

•静态测试:不运行被测试的软件系统,而是采用其他手段和技术对被测试软件进行检测的一种测试技术。例如:代码走读、文档评审、程序分析等都是静态测试的范畴。常用技术有静态分析技术。

-----------------------------静态分析技术----------------------------    

•定义:静态分析是一种不通过执行程序而分析程序执行的技术

•功能:检查软件的表示和描述是否一致,没有冲突或者没有歧义,它瞄准的是纠正软件系统在描述、表示和规格上的错误,因此是任何进一步测试执行的前提。

主要有三种不同的程序测试可能性:

•考虑程序是否满足编码规则,语法上是否具有一致性和完整性;

•考虑文档描述是否规范、准确、便于查阅;

•考虑程序和文档之间的一致性。

5、动态测试

•动态测试: 按照预先设计的数据和步骤去运行被测软件系统,从而对被测软件系统进行检测的一种测试技术。常用技术有动态分析技术。

6、人工评测

•人工测试:测试活动(如评审、测试设计、测试执行等)由人来完成,狭义上是指测试执行由人工完成,这是最基本的测试形式

7、自动化测试

•自动化测试:一般是指通过计算机模拟人的测试行为,替代人的测试活动,狭义上是指测试执行由计算机来完成

----------------------------------------自动化测试的意义---------------------------------------

•对程序新版本运行前一版本执行的测试,提高回归测试效率

•可以运行更多更频繁的测试,比如冒烟测试

•可以执行手工测试困难或不可能做的测试,比如大量的重复操作或者集成测试

•更好地利用资源,比如测试仪器或者被测对象

----------------------------------------自动化测试的限制---------------------------------------

•不能取代手工测试,自动化测试只能提高测试效率,不能提高测试有效性,即不可能发现更多缺陷

•手工测试比自动测试发现的缺陷更多

•对测试设计依赖性极大,测试设计的不好会遗漏问题

•自动化测试对软件开发具有很大的依赖性,开发上出现变更可能导致前面的自动化测试完全失效

•工具本身并不具备想象力,工具不具有智能

软件测试方法的分类:

按照是否关心内部结构分为:黑盒测试、白盒测试、灰盒测试

按照是否运行软件产品分为:静态测试、动态测试

按照测试执行方式分为:手工测试、自动化测试

软件产品的概念:

•软件研发可以看成一个生产过程,在这个过程中会有产品输出,或者叫做工件输出

•输出的产品分成两类:

    最终产品,如编译后的软件、用户手册等

    中间产品,如SRS、HLD、LLD、代码等

•无论是最终产品还是中间产品,都可以分成代码和文档

•文档进一步细分还可以分成:

    开发文档,如SRS、HLD、LLD等

    测试文档,如测试计划、测试方案、测试用例等

•只要是软件产品,都是测试的对象

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件测试阶段及方法 的相关文章

  • Warning Stopping docker.service, but it can still be activated by docker.socket

    执行 systemctl stop docker 后提示 Warning Stopping docker service but it can still be activated by docker socket 解释 xff1a 这是d
  • docker desktop stopping 问题解决

    搜了下网上一些解决问题好像比较多的是docker desktop stopped xff0c 他们是说换低版本的docker desktop解决的 xff0c 但是我的是通过更新WSL xff08 Windows Subsystem for
  • Hadoop启动

    博主用的是Cent0S XShell7使用Hadoop 1 启动Hadoop start all sh 这里会给你报出不赞同的问题 xff0c 但是也是可以使用的 xff0c 最好是采用分别运行HDFS YARN的方式来启动Hadoop 2
  • IDEA2020启动Tomcat控制台中文乱码解决

    IDEA2020启动Tomcat控制台中文乱码解决 1 中文乱码原因 基本上大家安装的windows系统本地语言都是选择中文 xff08 不会有人选择英文吧 xff1f 不会吧 xff1f 不会吧 xff1f xff09 xff0c 也就是
  • log4j和logback的比较

    一 slf4j slf4j是一系列的日志接口 xff0c 而log4j logback等则是具体实现了的日志框架 因为是接口 xff0c 所以在项目中如果你不引用log4j logback或者其它日志框架你会发现 xff0c 控制台的输出是
  • MyEclipse配置Tomcat 7

    1 打开步骤 xff1a 窗口 gt 首选项 gt MyEclipse gt Servers gt Tomcat gt Tomcat 7 x 2 配置自己本地的Tomcat 7版本 3 关闭MyEclipse自带的Tomcat服务器 4 启
  • mysql之模糊查询的方法

    Mysql模糊查询正常情况下在数据量小的时候 xff0c 速度还是可以的 xff0c 但是不容易看出查询的效率 xff0c 在数据量达到百万级 xff0c 千万级的甚至亿级时mysql查询的效率是很关键的 xff0c 也是很重要的 一 一般
  • Spring Cloud限流详解

    Spring Cloud限流详解 Spring Cloud Spring Cloud 2017 12 01 在高并发的应用中 xff0c 限流往往是一个绕不开的话题 本文详细探讨在Spring Cloud中如何实现限流 在Zuul上实现限流
  • 如何释放linux的内存

    你们知道怎么释放linux的内存吗不知道的话跟着学习啦小编一起来学习怎么释放linux的内存 释放linux的内存的步骤 Linux下操作频繁时 xff0c 物理内存会被快速用完 xff0c 当操作结束后 xff0c 物理内存没有被正常的释
  • docker修改镜像名称以及tag版本

    docker tag 镜像ID 镜像名称 tag版本信息 docker tag 8ef375298394 mysql v5 7
  • 跨域的五种解决方案详解

    1 跨域解决方案一 cors技术 CORS 全称cross origin resource share xff08 资源共享 xff09 工作原理 xff1a 服务器 在返回响应报文的时候 xff0c 在响应头中 设置一个允许的header
  • MySQL 日期时间类型精确到毫秒

    MySQL 常用的日期时间类型常用的是datetime timestamp 其中datetime占用5个字节 xff08 有些文档中说占用8个字节是不对的 xff0c 默认也不会保存毫秒 xff09 DATETIME和TIMESTAMP两种
  • Spring Boot——Thymeleaf

    哈喽 xff01 大家好 xff0c 我是 xff0c 一位上进心十足的 Java领域博主 xff01 的写作风格 xff1a 喜欢用 通俗易懂 的文笔去讲解每一个知识点 xff0c 而不喜欢用 高大上 的官方陈述 博客的领域是 面向后端技
  • 详细nginx配置websocket的wss协议

    需求 xff1a 小程序连接websocket xff0c 必须使用wss协议 nginx配置websocket以及wss协议 其实wss协议就是使用了ssl协议的域名所自带的协议 xff0c 所以wss协议需要域名来进行socket连接
  • Java面试宝典(超级详细)

    一 Java 基础 1 JDK 和 JRE 有什么区别 xff1f JDK xff1a Java Development Kit 的简称 xff0c java 开发工具包 xff0c 提供了 java 的开发环境和运行环境 JRE xff1
  • VNCServer卡死处理办法

    通过VNC连接远程Linux服务器 xff0c 一段时间后 xff0c 远程界面卡死 xff0c 不能操作 解决办法 xff1a 重启vncserver服务 通过终端远程ssh到服务器 1 xff09 查看vncserver命令用法 xff
  • Lottie进阶和原理分析

    简介 Lottie是aribnb发布的开源库 xff0c 它可以将AE制作的动画在Android iOS和RN代码中渲染出来 Lottie的功能及其强大 xff0c 只需要设计师使用AE设计动画 xff0c 用bodymovin导出 xff
  • 前端都应该了解的 NodeJs 知识及原理浅析

    node js 初探 Node js 是一个 JS 的服务端运行环境 xff0c 简单的来说 xff0c 它是在 JS 语言规范的基础上 xff0c 封装了一些服务端的运行时对象 xff0c 让我们能够简单实现非常多的业务功能 如果我们只使
  • 网站安全检测被 提示该网站内容被禁止访问

    很多建站公司都在使用Kindeditor开源的图片上传系统 xff0c 该上传系统是可视化的 xff0c 采用的开发语言支持asp aspx php jsp 几乎支持了所有的网站可以使用他们的上传系统 xff0c 对浏览器的兼容以及手机端也

随机推荐