软件测试方法&分类

来源:互联网 发布:amd锐龙 知乎 编辑:程序博客网 时间:2024/05/20 01:37
转载自:秋之川老师在小密圈里的回答

1. 按软件开发流程分:
(1)需求阶段:
需求测试。比如逻辑错误需求合理性需求缺失需求建 议
(2)编码阶段:
单元测试:对软件的最小组成单元进行测试。比如某函数某方法
集成测试:即联合测试。在单元测试基础上,将所有模块按业务需求组装起来,进行集成测试。
(3)测试阶段:
系统测试:将已经完成集成测试的软件+硬件+网络等各元素结合在一起,进行系统的组装测试确认测试
即对整个产品进行测试,目的是验证是否 "满足产品需求" 的定义
(4)发布阶段:
验收测试:Acceptance Testing,也叫交付测试。在产品完成系统测试后,产品发布上线前进行的测试活动。目的是确保软件准备就绪。
α测试:公司内部人员模拟各类用户对即将发布的产品进行测试。关键:逼真模拟真实用户。
经过α测试后的版本叫β版本
β测试:各方面的典型用户在日常工作中实际使用β版本,并给出“用户报告”异常情况、提出“批评意见

2. 按测试视角分:
(1)外部视角:
黑盒测试:只关注程序的输入&输出。一般用于系统测试阶段
(2)内部视角:
白盒测试:不仅关注程序的输入&输出,还关注程序的内部逻辑。一般用于单元测试阶段
(3)内外兼顾:
灰盒测试:兼顾黑白测试。一般用于集成测试阶段
不关注模块内部实现细节(白盒关注),关注系统内部各模块之间如何协作(黑盒不关注)

3. 按测试对象分:
(1)GUI测试:对APP的图形用户界面进行测试,包含了UI测试适配测试
(2)功能测试:验证产品是否符合需求说明书的功能
(3)易用性测试:测试APP的交互界面对用户来说是否友好易用
(4)接口测试:测试系统组件间接口,检查模块之间的参数传递是否符合设计文档的要求
(5)性能测试:通过根据模拟多种正常峰值异常负载的情况,测试系统各项性能指标。
包括:负载测试、压力测试、稳定性测试
(6)安全测试:找出系统的安全缺陷漏洞
(7)兼容性测试:测试软件在不同硬件操作系统浏览器数据库下是否正常运行。(C/S结构,要测服务器&客户端的兼容性)
(8)国际化测试:测试系统对多字节字符集的支持、区域设置、时区设置、字符串编码等
(9)本地化测试:测试翻译后的系统,语言UI格式内容等是否都正确

4. 按测试对象是否处于运行状态分:
(1)静态测试:被测系统无需运行时的测试。如:
代码静态扫描:利用安全扫描工具快速查找和修复源代码(无需编译)的代码安全问题。减少代码编写中可能出现的安全漏洞
代码评审:通过阅读代码来检查源代码质量。如编码规范问题、代码结构问题(框架使用不当)、实现问题(错误验证、异常处理)
文档评审:对项目执行情况未来计划做一个评审,对项目的财务状况做一个总结
(2)动态测试:需要被测系统运行时的测试。如单元测试集成测试系统测试

5. 按测试范围分:
(1)冒烟测试:测试包进行快速可用性测试,一般只覆盖系统核心功能 / 所有功能的核心测试点
(2)全面测试:对系统所有功能进行测试









自动化测试
功能:主要用于回归测试,一般在系统“新增功能”或“功能变更”后检测对其他旧功能的影响 —— 为不变的功能提供保障
时间:可以滞后于新功能的测试。
目的&本质:提高产品开发效率因为自动化测试会覆盖到大部分场景开发更关心的是测试能覆盖更多主要功能
有自动化测试的保障,开发才能更频繁有效地迭代。

原创粉丝点击