软件测试基础知识

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. 场景法
相关推荐
ん贤18 分钟前
怎么设计,才算一个优秀审计模块
大数据·开发语言·设计·审计
l1t24 分钟前
测试用rust重写的postgresql: pgrust
开发语言·postgresql·rust
2501_9481069127 分钟前
计算机毕业设计之jsp-智慧旅游分享平台
java·开发语言·spark·汽车·课程设计·旅游
阿里云云原生1 小时前
Agent 不再是“玩具”!AgentScope Java 2.0 GA 发布:构建企业级分布式智能体底座
java·开发语言·分布式·agentscope
BIM云平台开发1 小时前
【App.vue里跟踪页面跳转和用户ID】
开发语言·前端·javascript
NiceCloud喜云1 小时前
ClaudeAPI 接入 n8n / Dify / Open WebUI 实战:Base URL 配置、调用示例与排错
开发语言·ai·chatgpt·aigc
庵中十三居士1 小时前
【纯AI无人工修改】AI Agent从0到1实战:50行Python手写核心循环,一次看懂所有Agent框架的底层逻辑
开发语言·人工智能·python
甄同学1 小时前
第二十篇:MCP协议集成,Claude Code如何扩展AI Agent的能力边界
开发语言·人工智能·qt
@atweiwei2 小时前
Langchainrust:中LLM-as-a-Judge,用 Rust 实现一套 LLM 评估系统
开发语言·后端·ai·rust·llm·rag
风华圆舞2 小时前
鸿蒙HarmonyOS 多模态输入实战 —— 图片与文档输入智谱/DeepSeek
开发语言·人工智能·华为·php·harmonyos·arkts·arkui