【软件测试】5_测试理论 _软件测试分类(重点)

一、按测试阶段划分

1.1 单元测试[ UT unit test ]

  • 又称模块测试,针对软件设计中的最小单位——程序模块,进行正确性检查的测试工作。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
  • 单元定义:C中指一个函数,Java中指一个类,在图形化的软件中,单元一般指1个窗口,1个菜单。

1.2 集成测试[ IT integration test ]

又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分。(接口测试)

1.3 系统测试[ST system test ]

  • 指的是将整个软件系统看为一个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。
  • 系统测试在系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性等。

1、功能测试:验证当前的软件主体功能是否可用。

2、兼容性测试:验证当前软件在不同的环境下是否还可以使用。

3、安全测试:验证软件是否只是对授权用户提供功能使用。

4、性能测试:相对于当前软件消耗的资源 它的产出能力。

二、按是否查看源代码划分

在软件公司,往往采用黑盒测试&白盒测试相结合的方式。

  • 软件的整体功能和性能进行黑盒测试
  • 软件的源代码采用白盒测试
  • 下述三种方法当中的 “盒” 指的就是被测对象。

2.1 白盒测试(white-box testing)

指的是把盒子打开,去研究里面的源代码和程序结构。

2.2 灰盒测试

灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,既可保证黑盒的关注点又可掌控白盒的内部结构,但不会去对内部程序功能和运作做详细了解,灰盒测试结合了白盒测试和黑盒测试的要素。

2.3 黑盒测试(black-box testing)

又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据输出数据

2.3.1 黑盒测试能发现以下几类错误

  • 功能不对或功能遗漏。
  • 界面错误。
  • 数据库访问或者处理错误。
  • 性能问题。

2.3.2 黑盒测试的优缺点

1、优点

  • 测试人员不需要了解实现得细节,包括特定的编程语言(没有编程经验的人也可以设计测试用例);
  • 测试人员和编程人员是相互独立的(黑盒测试用例设计与程序如何实现无关);
  • 从用户的角度进行测试,很容易被接受和理解;
  • 有助于暴露任何与规格不一致或者歧异的地方;

2、缺点

  • 不能测试程序内部特定部位;
  • 如果程序未执行的代码无法发现;
  • 不可能做到穷举测试

2.3.3 黑盒测试的分类

2.3.3.1 功能测试

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

​ 1、逻辑功能测试 (functiontesting)

​ 2、界面测试 (UItesting)

​ 3、易用性测试 (usability testing)

​ 4、安装测试 (installationtesting)

​ 5、兼容性测试 (compatibilitytesting)

2.3.3.2 性能测试

性能测试(performance testing)峰值:是软件测试的高端领域,性能测试工程师的待遇和白盒测试工程师不相上下,通常我们所说的高级软件测试工程师一般就是指性能测试或是白盒测试工程师。

​ 1、时间性能(事务响应时间等)

​ 2、空间性能 (系统资源消耗)

​ 3、一般性能测试:软件正常使用,正常走通的测试。

​ 4、稳定性测试

​ 5、负载测试:通过负载测试来确定在各种工作负载下,系统各项性能指标的变化情况。

​ 6、压力测试:通过确定一个系统的瓶颈或者刚好不能接受的性能点,来获得系统能够提供的最大服务级别。

三、按是否运行分类

3.1 静态测试

静态测试(static testing):指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。(测文档,看网页)

互审(不正式)——走读——审查(正式)

3.2 动态测试

动态测试(dynamic testing):是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

四、按其它分类

4.1 回归测试

回归测试:当我们将某个缺陷提交给开发之后,由它们进行修复,修复完成之后需要测试人员再次对其进行测试【回归测试】

4.2 冒烟测试

  • ① 一般在执行用例之前我们会做一个冒烟测试。这种测试的核心就是快速的对当前软件的核心功能或者主体执行流程进行验证。如果冒烟测试阶段有问题,则可以将此版本回退给开发。
  • ② 如果冒烟测试通过,那么才会开展全面的测试。

4.3 随机测试(探索测试)

随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressivetesting)一起进行。

总结:针对重要功能、新增加的功能、特殊情况、以前发现过重大bug的模块进行二次测试;也叫探索测试,它可以结合回归测试来使用;

4.4 验收测试

  • 软件正式版本推出之前的几个版本, 需要有人测试一下, 看看是不是有问题。在开发该软件的公司内部的由该公司内部人员测试的称为: Alpha 测试, Alpha 测试主要看有没有功能缺失或系统错误, Alpha 测试完后一般不会有大问题了。然后把软件拿给用户测试,称为: beta 测试, 主要是看用户对软件外观、使用方便等的反应。这么多的测试版一方面为了最终产品尽可能地满足用户的需要, 另一方面也尽量减少了软件中的bug。然后做过一些修改, 成为正式发布的候选版本时, 叫做gamma( 现在叫做RC - Release Candidate) 。
  • 简单来说,阿尔法测试主要是测试人员在开发环境下的测试,贝塔测试是在实际环境中的测试,或者公司内部人员在模拟真实环境中的测试。
  • 验收测试的核心就是让用户为当前软件 “买单”

4.4.1 α测试-内测

Alpha 是内测版本,即现在所说的CB,此版本表示该软件仅仅是一个初步完成品, 通常只在软件开发者内部交流, 也有很少一部分发布给专业测试人员。一般而言, 该版本软件的bug 较多, 普通用户最好不要安装。

4.4.2 β测试-公测

Beta是公测版本,是对所有用户开放的测试版本。该版本相对于α 版已有了很大的改进,消除了严重的错误, 但还是存在着一些缺陷,需要经过大规模的发布测试来进一步消除。这一版本通常由软件公司免费发布, 用户可从相关的站点下载。通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改。该版本也不适合一般用户安装。

4.4.3 γ测试

Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟了, 与即将发行的正式版相差无几, 成为正式发布的候选版本。

4.4.4 UAT测试

UAT( user acceptance test )测试---- 由客户派出对于业务非常精通的人员来使用该软件,从而对功能进行测试。

五、是否自动化分类

5.1 人工测试

人工测试:由测试人员手动的对被测对象进行验证,优点就是可以灵活的改变测试操作及环境。

5.2 自动化测试

  • 自动化测试:所谓自动化主要有二种形,一种是自己写测试脚本,另外一种就是通过第三方的工具对被测对象进行测试。优点就是可以高效率的去执行一些人工无法实现的操作。
  • 自动化测试归属功能测试

六、小结

6.1 测试主流技能

一、测试主流技能
1、功能测试:测试主要验证程序的功能是否满足需求(主要是有测试思维,是测试基本功)
2、自动化测试:使用代码或工具代替手工,对项目进行测试--属于功能测试
3、接口测试:使用代码或工具验证程序中的接口是否访问正常
4、性能测试:模拟多人使用软件,查找服务器缺陷

主流⽅向建议:
	1、功能测试+接⼝测试
	2、功能测试+性能测试
	3、功能测试+web自动化

6.2 测试分类

一、按测试阶段划分
1、单元测试:针对程序源代码进行测试。(单元:最⼩独⽴功能代码段)
提示:
-国内单元测试⼀般开发自测
-单元测试可以解决-快速定位缺陷
-使⽤技术⼿段验证软件是否满⾜需求
2、集成测试:又称接口测试,针对模块之间访问地址进行测试。
3、系统测试:对整个系统进行测试包括功能、兼容、文档等测试。(针对程序功能、非功能进行测试)
4、验收测试:主要分为内测、公测,使用不同人群来发掘项目缺陷。

二、按代码可见度划分
⽩盒测试:针对程序源代码进⾏测试(测试阶段划分->单元测试)
灰盒测试:针对接⼝测试(测试阶段划分->集成测试)
⿊盒测试:主要针对功能(测试阶段划分->系统测试)

6.3 总结

单元测试和白盒测试是对代码进行测试
集成测试和灰盒测试⼜称接⼝测试
系统测试和黑盒测试重点核⼼是功能测试

自动化测试归属功能测试
性能测试、安全测试归属专项测试

在这里插入图片描述

已经博主授权,源码转载自 https://pan.quark.cn/s/053f1da40351 在计算机科学领域,MIPS(Microprocessor without Interlocked Pipeline Stages)被视作一种精简指令集计算机(RISC)的架构,其应用广泛存在于教学实践和嵌入式系统设计中。 本篇内容将深入阐释MIPS汇编语言中涉及数组处理的核心概念与实用操作技巧。 数组作为一种常见的数据结构,在编程中能够以有序化的形式储存及访问具有相同类型的数据元素集合。 在MIPS汇编语言环境下,数组通常借助内存地址与索引进行操作。 以下列举了运用MIPS汇编处理数组的关键要素:1. **数据存储**: - MIPS汇编架构采用32位地址系统,从而能够访问高达4GB的内存容量。 - 数组元素一般以连续方式存放在内存之中,且每个元素占据固定大小的字节空间。 例如,针对32位的整型数组,其每个元素将占用4字节的存储空间。 - 数组首元素的地址被称为基地址,而数组任一元素的地址可通过基地址加上元素索引乘以元素尺寸的方式计算得出。 2. **寄存器运用**: - MIPS汇编系统配备了32个通用寄存器,包括$zero, $t0, $s0等。 其中,$zero寄存器通常用于表示恒定的零值,$t0-$t9寄存器用于暂存临时数据,而$s0-$s7寄存器则用于保存子程序的静态变量或参数。 - 在数组处理过程中,基地址常被保存在$s0或$s1寄存器内,索引则存储在$t0或$t1寄存器中,运算结果通常保存在$v0或$v1寄存器。 3. **数组操作指令**: - **Load/Store指令**:这些指令用于在内存与寄存器之间进行数据传输,例如`lw`指令用于加载32位数据至寄存器,`sw`指令...
根据原作 https://pan.quark.cn/s/cb681ec34bd2 的源码改编 基于Python编程语言完成的飞机大战项目,作为一项期末学习任务,主要呈现了游戏开发的基本概念和技术方法。 该项目整体构成约500行代码,涵盖了游戏的核心运作机制、图形用户界面以及用户互动等关键构成部分。 该项目配套提供了完整的源代码文件、相关技术文档、项目介绍演示文稿以及运行效果展示视频,为学习者构建了一个实用的参考范例,有助于加深对Python在游戏开发领域实际应用的认识。 我们进一步研究Python编程技术在游戏开发中的具体运用。 Python作为一门高级编程语言,因其语法结构清晰易懂和拥有丰富的库函数支持,在开发者群体中获得了广泛的认可和使用。 在游戏开发过程中,Python经常与Pygame库协同工作,Pygame是Python语言下的一款开源工具包,它提供了构建2D游戏所需的基础功能模块,包括窗口系统管理、事件响应机制、图形渲染处理、音频播放控制等。 在"飞机大战"这一具体游戏实例中,开发者可能运用了以下核心知识点:1. **Pygame基础操作**:掌握如何初始化Pygame环境,设定窗口显示尺寸,加载图像和音频资源,以及如何启动和结束游戏的主循环流程。 2. **面向对象编程**:游戏中的飞机、子弹、敌人等游戏元素通常通过类的设计来实现,利用实例化机制来生成具体的游戏对象。 每个类都定义了自身的属性(例如位置坐标、移动速度、生命值状态)和方法(比如移动行为、碰撞响应、状态更新)。 3. **事件响应机制**:Pygame能够捕获键盘输入和鼠标操作事件,使得玩家可以通过按键指令来控制飞机的移动和射击行为。 游戏会根据这些事件的发生来实时更新游戏场景状态。 4. **图形显示与刷新**:...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少云清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值