01-软件测试的定义及分类
一 软件测试的定义及分类
## 1 软件测试的定义及目的
1.1软件测试的对象:计算机程序、程序所用的数据以及有关文档资料的集合
应用软件架构
C/S:client-server,要安装客户端才能的软件(APP是移动端C/S)
B/S:browser-server,仅需要浏览器就能访问服务
1.2软件测试是什么
定义:使用人工和自动手段来运行或测试某个系统的过程
目的:
①为了发现程序(软件)存在的代码或业务逻辑错误
②为了检验产品是否符合用户需求 --用户需求
③为了提高用户的体验 --流畅度、性能范畴
2软件测试的分类 ---按照不同的角度 维度
1)按测试技术划分
黑盒测试 白盒测试 灰盒测试
2)被测试对象是否运行划分
动态测试(打开程序 app) 静态测试(文档检测、代码走查)
3)按不同测试手段划分
手工测试(点工,纯手动) 自动化测试(工具(JMETER-有局限性)+代码)
4)按测试包含的内容划分
功能测试 界面测试(UI(user interface)) 安全测试 兼容性测试 易用性测试 性能测试
5)按测试阶段划分
单元测试 集成测试 系统测试 验收测试 α测试 β测试
6)其他测试
回归测试(regression test) 冒烟测试 探索性测试/自由测试(测试思维)
2.1软件测试的分类说明
- 白盒测试
基于软件内部设计和程序实现的测试方法(代码层面)。不仅仅关注输入与输出的结果是否正确,同时还关注程序是如何处理的
黑盒测试
字面:把所有的功能和逻辑接口放在一个盒子里,你看不到里面的逻辑和走向,只能通过盒子外表进行测试
定义:指在测试过程中只关注输入和输出,如果输入一个测试数据,输出结果是正确的,则认为这个功能是正确的,也叫数据驱动测试
功能测试
软件测试的功能是否复合需求,通常采用黑盒测试方法,一般由测试人员独立执行。
界面测试
简称UI测试,测试用户界面布局是否合理,整体风格是否一致,界面文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等
安全性测试
测试该系统防止非法入侵的能力
兼容性测试
测试该系统与其他软件硬件兼容的能力(app与cs架构软件、bs架构软件)
易用性测试
软件测试是否易用,主观性比较强,一般要根据很多用户的测试反馈信息,才能评价易用性(同类型产品) 用户使用习惯 好不好用
性能测试
通过自动化测试工具模拟多种正常、峰值及异常负载条件来对系统的各项性能指标进行测试
负载测试
通过改变系统负载方式、增加负债等来发现系统组所存在的性能问题。更多地体现了一种方法或一种技术。为了发现软件系统中所存在的问题,包括性能瓶颈、内存泄漏等
压力测试(强度测试)
分为:高负债下的长时间(如24小时以上)的稳定性压力测试和极限负债情况下导致系统崩溃的破坏性压力测试。主要为了确定系统稳定性。可以更快发现内存泄漏问题,更快发现影响系统稳定性的问题
恢复测试
主要检查系统的容错能力。采用各种办法强迫系统是吧,后验证系统能否在指定时间间隔内尽快恢复并重新启动系统
回归测试
指错误被修正后或软件功能、环境发生变化后进行的重新测试,确认修改部分不会对其它功能造成影响
冒烟测试
冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。
探索性测试
是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方法。
Alpha测试
一种前期用户测试,公司内部组织员工及部分用户,模拟实际操作环节下进行验收测试(内测) ---不能由测试和开发进行,仅测试数据,开发环境(内测删档)
Beta测试
一种后期用户测试,此时系统已经通过内部测试,大部分错误已经改正,即将正式发行。在一个或多个真实环境下发布版本,进行测试(公测)
Alpha测试与Beta测试的相同与不同
相同:①开发和测试不参与,必须由用户来(避嫌)
不同:①Alpha属于前期,Bate属于后期 ②Alpha在开发环境进行,Bate在正式环境运行
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)