软件测试的定义&分类
一 软件测试的定义及分类
1 软件测试的定义及目的
1.1软件测试的对象:计算机程序、程序所用的数据以及有关文档资料的集合
△ 应用软件架构 --了解
C/S:client-server,要安装客户端才能的软件(App是移动端C/S)
优点:系统兼容性,不需要考虑浏览器兼容性
缺点:每次更新都要更新服务端和客户端(有些还要重启导致业务中断)
B/S:browser-server,仅需要浏览器就能访问服务
优点:只需更新服务器,较稳定,用户主动性较高
1.2软件测试是什么
定义:使用人工和自动手段来运行或测试某个系统的过程
目的:①为了发现程序(软件)存在的代码或业务逻辑错误 --功能问题--有bug--熟悉产品需求
②为了检验产品是否符合用户需求 --用户需求
③为了提高用户的体验 --流畅度、性能范畴
2 软件测试的分类 ---按照不同的角度 维度
1)按测试技术划分
黑盒测试 白盒测试 灰盒测试
黑盒测试:产品--黑色盒子(看不到代码实现)--关注输入输出--点点点
白盒测试 :产品--透明盒子(能看到代码逻辑)--会看代码--非测试做,开发自测--代码审查
灰盒测试:(介于黑白之间)大概知道代码逻辑,但不需要看懂所有代码 ----接口测试
2)被测试对象是否运行划分
动态测试(打开程序 App) 静态测试(文档检测、代码走查)
3)按不同测试手段划分
手工测试(点工,纯手动) 自动化测试(工具(JMETER-有局限性)+代码)
4)按测试包含的内容划分
功能测试 界面测试(UI(user interface)) 安全测试 兼容性测试 易用性测试 性能测试
功能: 测试业务逻辑(手工 自动化)--核心重要
界面: 外观美观 设计合理 友好--主观性强--需求文档(原型图 UI切图)←产品收集需求规格说明书
安全: 高级类型--防止攻击(工具:Appscan扫描/代码:脚本-sql注入)--漏洞 薄弱--账号密码/HTTP协议→https协议 --人才较少
性能: 高级类型--eg:双11同一时间访问人多,流量大--并发--资源/cpu/内存各项指标ok--高压下服务器/软件能正常处理--(包括压力测试、负载测试、稳定性测试)
兼容性: 软件+硬件(Windows/Linux/MacOS/Android/Ios)
软件+软件(浏览器兼容)--调用:软件不同版本之间--App升级(老功能、数据)
易用性: 主观--人性化 舒适 使用习惯 用户体验--提bug---站在用户角度考虑,参考成熟产品
5)按测试阶段划分 ---见‘二2.3’
单元测试 集成测试 系统测试 验收测试 α测试 β测试
α:由一个用户在开发环境下进行测试,也可以是公司内部用户在模拟实际操作环境下进行的受控测试;不能有程序员或测试员完成
β:是软件的多个用户在一个或多个用户的实际使用环境下进行的测试,开发者通常不在测试现场;不能有程序员或测试员完成
6)其他测试
回归测试(regression test) 冒烟测试 探索性测试/自由测试(测试思维)
回归: 测试-bug,开发修复bug(修改代码)-验证bug-其他没被修改的代码模块的测试,影响:上线之前-很多轮(2-4)回归测试(重复)--策略-借助自动化实现
冒烟:
硬件:电路板-通电-冒烟-短路被烧-打回开发重做
软件:核心业务功能 主流程-打回开发-提高效率
探索性: 发散测试-能力要求非常高:依据/方法--靠经验/积累/直觉--测试思维
2.1软件测试的分类说明
| 名称 | 说明 |
| 白盒测试 | 基于软件内部设计和程序实现的测试方法(代码层面)。不仅仅关注输入与输出的结果是否正确,同时还关注程序是如何处理的 |
|
黑盒测试 |
字面:把所有的功能和逻辑接口放在一个盒子里,你看不到里面的逻辑和走向,只能通过盒子外表进行测试 定义:指在测试过程中只关注输入和输出,如果输入一个测试数据,输出结果是正确的,则认为这个功能是正确的,也叫数据驱动测试 |
| 功能测试 | 软件测试的功能是否复合需求,通常采用黑盒测试方法,一般由测试人员独立执行。 |
| 界面测试 | 简称UI测试,测试用户界面布局是否合理,整体风格是否一致,界面文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等 |
| 安全性测试 | 测试该系统防止非法入侵的能力 |
| 兼容性测试 | 测试该系统与其他软件硬件兼容的能力(App与cs架构软件、bs架构软件) |
| 易用性测试 | 软件测试是否易用,主观性比较强,一般要根据很多用户的测试反馈信息,才能评价易用性(同类型产品) 用户使用习惯 好不好用 |
| 性能测试 | 通过自动化测试工具模拟多种正常、峰值及异常负载条件来对系统的各项性能指标进行测试 |
| 负载测试 | 通过改变系统负载方式、增加负债等来发现系统组所存在的性能问题。更多地体现了一种方法或一种技术。为了发现软件系统中所存在的问题,包括性能瓶颈、内存泄漏等 |
| 压力测试(强度测试) | 分为:高负债下的长时间(如24小时以上)的稳定性压力测试和极限负债情况下导致系统崩溃的破坏性压力测试。主要为了确定系统稳定性。可以更快发现内存泄漏问题,更快发现影响系统稳定性的问题 |
| 恢复测试 | 主要检查系统的容错能力。采用各种办法强迫系统是吧,后验证系统能否在指定时间间隔内尽快恢复并重新启动系统 |
| 回归测试 | 指错误被修正后或软件功能、环境发生变化后进行的重新测试,确认修改部分不会对其它功能造成影响 |
| 冒烟测试 | 冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。 |
| 探索性测试 | 是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方法。 |
| Alpha测试 | 一种前期用户测试,公司内部组织员工及部分用户,模拟实际操作环节下进行验收测试(内测) ---不能由测试和开发进行,仅测试数据,开发环境(内测删档) |
| Beta测试 | 一种后期用户测试,此时系统已经通过内部测试,大部分错误已经改正,即将正式发行。在一个或多个真实环境下发布版本,进行测试(公测) |
|
Alpha测试与Beta测试的相同与不同 相同:①开发和测试不参与,必须由用户来(避嫌) 不同:①Alpha属于前期,Bate属于后期 ②Alpha在开发环境进行,Bate在正式环境运行 |
|

浙公网安备 33010602011771号