乐于分享
好东西不私藏

软件测试基础大全:10个知识点速记

软件测试基础大全:10个知识点速记

你有没有遇到过这样的情况:

  • 刚上线的APP突然崩溃,用户疯狂投诉?
  • 明明功能都实现了,但系统运行慢得像蜗牛?
  • 在安卓手机上正常运行,到了iOS就各种bug?

这些问题的背后,都离不开一个关键角色——软件测试

今天,我们就用最通俗易懂的方式,带你搞懂软件测试的8个核心概念。无论你是测试新手、转行人员,还是想了解测试的开发者,这篇文章都能帮你快速入门。

1、软件的含义

程序、数据及相关文档的完整集合。
2、测试与调试的区别是什么?
测试是由测试人员来进行,主要目标是发现、报告和跟踪缺陷。
调试是由开发人员进行,主要目标是定位缺陷位置,分析缺陷原因,修复缺陷。
对比维度
测试(Testing)
调试(Debugging)
执行人员
测试人员
开发人员
主要目标
发现、报告、跟踪缺陷
定位缺陷位置、分析原因、修复缺陷
工作阶段
整个开发周期
发现bug后
思维方式
破坏性思维(找问题)
建设性思维(解决问题)
3、IEEE 是什么意思?
全称:Institute of Electrical and Electronics Engineers
中文:国际电气电子工程师协会
作用:制定电子、电气、计算机领域的国际标准(包括软件测试标准)
📌 举个例子:我们前面提到的软件测试定义,就是 IEEE 610.12 标准中的定义
4、GB 是什么意思?

全称:Guo Biao(国标)

中文:国家标准

作用:中国制定的国家标准,涉及软件质量、测试规范等

📌 举个例子:GB/T 25000.51-2016 就是软件产品质量要求的国家标准。
5、软件测试的含义
简单讲,软件测试是发现缺陷的过程;IEEE 中的定义是,软件测试是使用人工或自动手段来运行或测定某个系统的过程,目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
6、软件测试的目的
(1)验证软件是否满足各类文档说明书等规定的软件质量要求
(2)找出软件缺陷
(3)为软件产品的质量测量和评价提供依据
(4)帮助开发改进开发流程
7、什么是功能、性能、兼容性

7.1 功能测试(Functionality)

核心问题:软件能做什么?

测试内容

  • 软件的功能是否完整?
  • 每个功能是否按照需求实现?
  • 操作流程是否符合用户习惯?

📌 举个例子:一个登录功能,输入正确的账号密码能登录,输入错误的会提示,这就是功能测试要验证的。


7.2 性能测试(Performance)

核心问题:软件跑得快不快?稳不稳定?

测试内容

  • 响应时间(速度)
  • 并发用户数(效率)
  • CPU、内存占用(资源消耗)

📌 举个例子:双十一期间,淘宝能同时承受多少用户下单而不崩溃?这就是性能测试要回答的。


7.3 兼容性测试(Compatibility)

核心问题:软件在不同的环境下能不能正常运行?

测试内容

  • 硬件兼容性(不同手机、电脑)
  • 操作系统兼容性(Windows、macOS、Android、iOS)
  • 软件兼容性(与其他软件的冲突)

📌 举个例子:你的APP在华为手机上能跑,在iPhone上却闪退,这就需要兼容性测试来发现。

💡 一句话总结

功能测试看"能不能用"

性能测试看"好不好用"

兼容性测试看"在哪里能用"

8、测试分为哪几个阶段?每个阶段的测试目的是什么?
软件测试不是一次性工作,而是分阶段、有层次的过程。通常分为四个阶段:

8.1 单元测试(Unit Testing)

测试对象:最小的代码单元(如一个函数、一个类)

执行人员:开发人员

测试目的:验证代码的正确性,发现最早的缺陷

📌 举个例子:测试一个计算加法的函数,输入 1+1 是否返回 2。


8.2 集成测试(Integration Testing)

测试对象:多个模块组装后的接口和交互

执行人员:测试人员或开发人员

测试目的:发现模块之间的接口错误、数据传递问题

📌 举个例子:用户模块和订单模块是否能正常交互?用户下单后,订单能否正确关联用户ID?


8.3 系统测试(System Testing)

测试对象:完整的系统

执行人员:测试人员

测试目的:验证系统是否满足需求规格说明书的要求

📌 举个例子:在整个电商系统中,从用户注册、浏览商品、下单、支付到收货,整个流程是否能走通?


8.4 验收测试(Acceptance Testing)

测试对象:完整的系统

执行人员:用户或客户

测试目的验证软件满足了用户需求,帮助用户建立系统可以正常使用的信心(发现缺陷不是此阶段的目标

⚠️ 关键区别

前三个阶段的目标:尽可能多地发现缺陷

验收测试的目标:验证软件是否可用,建立用户信心

💡 一句话总结:单元测试看代码,集成测试看模块,系统测试看整体,验收测试看用户满意度。

9、软件开发有什么模型?软件测试主要有哪些模型?
软件开发模型:大爆炸模型、边写边改模型、瀑布模型、螺旋模型、敏捷开发模型 软件测试模型:V 模型、W 模型、H 模型、X 模型、前置测试模型、敏捷测试模型
10、 V 模型和W模型
10.1 V 模型
V 模型的过程:用户需求→需求分析→概要设计→详细设计→编码→单元测试→集成测试→系统测试→验收测试。
优点:
(1)V 的左端表示传统的瀑布开发模型,V 的右端明确地将测试分为不同的级别或阶段,测试过程更为具体;
(2)测试各个阶段和开发的各个阶段相对应;
(3)V 模型的测试策略包括低层测试和高层测试,低层测试是为了源代码的正确性,高层测试是为了整个系统满足用户的需求。
缺点:
(1)测试的对象就是程序本身。忽视了测试活动对需求分析,系统设计等活动的验证和确认的功能,直到后期的验收测试才被发现。
(2)测试是开发之后的一个阶段。实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。
10.2 W 模型
W 模型的过程:左边V 是需求分析→概要设计→详细设计→编码实现→模块集成→系统构建→系统安装;右边 V 是需求测试→概要设计测试→详细设计测试→单元测试→集成测试→系统测试→验收测试。
优点:
(1)W 模型体现了尽早和不断测试的原则,既强调测试方案设计,也强调测试执行。
(2)左侧V 是开发,右侧V 是与开发并行的测试,相对于V 模型,W 模型增加了软件各开发阶段中应同步进行的验证和确认活动,W 明确表示出了测试与开发的并行关系。测试与开发是同步进行的,有利于尽早地全面的发现问题。
(3)测试伴随整个软件开发周期,且测试的对象不仅仅是程序,需求、设计等同样要测试。
缺点:
在W 模型中,需求、设计、编码等活动被视为串行的,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代   的开发模型,不利于当前软件开发复杂多变的情况。

下一篇文章,我们将深入讲解黑盒测试 vs 白盒测试

  • 什么是黑盒测试?什么时候用?
  • 什么是白盒测试?需要懂代码吗?
  • 实际工作中,如何搭配使用这两种测试方法?

如果觉得这篇文章对你有帮助,欢迎点赞、在看、转发三连!你的支持是我持续创作的动力!

我们下期见!👋

图片来自网络用于理解语言内容,侵权删除