软件测试基础知识

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。

博主主页:Yan. yan.

文章目录

1、什么是软件?

软件是计算机系统中的程序和相关文件或文档的总称。

2、什么是软件测试?

说法一:使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。

说法二:软件测试就是利用一定的方法对软件的质量或者使用性进行判断和评估的过程。

3、软件测试工程师的工作内容

  • 寻找软件中的bug,并且越早发现越好
  • 确认bug的可重复性以及bug产生的步骤
  • 确认bug是否被解决
  • 测试方法,测试计划,测试平台,测试代码,测试用例,测试文档,测试报告的确定、编写和执行。

4、常见的软件生命周期模型

  • 大爆炸模型:优点:简单,不用学习就会。缺点:产品质量无法保障,尽量避免使用
  • 边做边改模型:优点:快速得到可运行的版本。缺点:计划有些缺乏,导致版本前后变化较大
  • 瀑布模型:优点:计划周密,专业,按部就班实现。缺点:相对难于做到快速开发,以抢占市场,可选择的模型之一
  • 螺旋模型:优点:计划变化同事考虑。

5、软件开发的几个阶段

  • 项目启动阶段:了解客户需求、配置相关资源
  • 项目设计阶段:明确客户需求,确立软件开发、测试的方法
  • 项目执行阶段:开发与测试阶段
  • 项目竣工阶段:软件的上市、后期维护与技术支持

6、软件bug的五个要素

  • 软件没有实现说明书中所列出的功能
  • 软件出现了说明书中提到不应该出现的事情
  • 软件没有实现说明书中没有提到但应该实现的事情
  • 软件非常难于学习、使用,运转速度很慢,用户认为无法达到预期

7、软件测试的分类

  • 黑盒测试:对软件内部如何实现不了解,以外部的视角来视察软件。

黑盒测试方法:等价类边界值,因果图,判定表,错误推测法

  • 白盒测试:白盒测试与黑盒测试相反,需要了解软件中的结构。白盒测试也叫结构化测试,玻璃盒测试。

黑盒测试与白盒测试的优缺点

黑盒测试,

优点:不需要了解软件实现细节,软件内部实现机制更改时,一般不必修改用例实现相对简单,以用户角度出发

缺点:无法保证软件代码内各主要路径都被覆盖到,容易导致测试不很完全

白盒测试,

优点:针对软件代码和路径进行测试,相对易于调试,容易发现bug产生的原因

缺点:对测试人员的编程能力要求高,软件实现代码改变,测试用例一般也需要改变。

  • 功能测试
  • 兼容性测试
  • 性能测试
  • 安全测试
  • 压力测试

8、什么是测试用例

测试用例是描述输入实际值和预期输出行为或者结果的文档,他同时也标识了测试过程结果与约束。

9、测试用例几大要素

标识符,测试内容,输入条件,预期结果,测试环境信息,与其他测试用例的依赖关系,测试用例需要被开发、审阅、使用、维护和保存。

软件测试方法分类:

  1. 白盒、黑盒、灰盒
  2. 单元测试、集成测试、系统测试、验收测试、回归测试、Alpha 测试、Beta 测试
  3. 静态测试和动态测试

设计测试用例的主要方法

  1. 等价类划分
  2. 边界值分析法
  3. 因果图法
  4. 场景法
相关推荐
@东辰2 分钟前
【golang-技巧】-自定义k8s-operator-by kubebuilder
开发语言·golang·kubernetes
乐悠小码8 分钟前
数据结构------队列(Java语言描述)
java·开发语言·数据结构·链表·队列
史努比.10 分钟前
Pod控制器
java·开发语言
敲敲敲-敲代码19 分钟前
游戏设计:推箱子【easyx图形界面/c语言】
c语言·开发语言·游戏
ROC_bird..28 分钟前
STL - vector的使用和模拟实现
开发语言·c++
MavenTalk34 分钟前
Move开发语言在区块链的开发与应用
开发语言·python·rust·区块链·solidity·move
XiaoLeisj1 小时前
【JavaEE初阶 — 多线程】生产消费模型 & 阻塞队列
java·开发语言·java-ee
2401_840192271 小时前
python基础大杂烩
linux·开发语言·python
@东辰1 小时前
【golang-技巧】- 定时任务 - cron
开发语言·golang·cron
机器人天才一号1 小时前
C#从入门到放弃
开发语言·c#