软件测试学习第一期

🎬 博客主页:博主链接

🎥 本文由 M malloc 原创,首发于 CSDN🙉

🎄 学习专栏推荐:LeetCode刷题集!

🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

📆 未来很长,值得我们全力奔赴更美好的生活✨

------------------❤️分割线❤️-------------------------


文章目录

😁大家好呀,今天来学习软件测试的相关知识吧!

😧软件测试的心理学

测试执行得差,其中一个主要原因在于大多数的程序员一开始就把"测试"这

个术语的定义搞错了,他们可能会认为:

  1. "软件测试就是证明软件不存在错误的过程。"
  2. "软件测试的目的在于证明软件能够正确完成其预定的功能。"
  3. "软件测试就是建立一个'软件做了其应该做的'信心的过程。

在上述的说法中其实大多都是错误的,我认为软件测试的真正理解是

"测试是为发现错误而执行程序的过程"

😧软件测试的经济学

在给出软件测试的基本定义后,下一步就是能否确定软件测试是否能够发现"所有的错误"。我们要证明答案是错误的,即使是规模很小的程序。一般说来,要发现程序中的所有错误也是不切实际的,常常也是不可能的。这个基本的问题反过来暗示出软件测试的经济学问题、测试人员对被测软件的期望,以及测试用例的设计方式。

黑盒测试

黑盒测试是一种重要的测试策略,又称为数据驱动的测试或输入/输出驱动的测试。

使用这种测试方法时,将程序视为一个黑盒子。测试目标与程序的内部机制和结构完全无关,而是将重点集中放在发现程序不按其规范正确运行的环境条件。


在这种方法中,测试数据完全来源于软件规范(换句话说,不需要去了解程序 的内部结构)。如果想用这种方法来发现程序的所有错误,判定的标准就是"穷举 输入测试",将所有可能的输入条件都作为测试用例。

那我们为什么要这样做?

就比如说在三角形测试的程序中,试过了三个等边三角形的测试用例。这不能确保正确地判断出所有的等边三角形。

程序中可能包含对边长为 3842,3842,3842 的特殊检查,并指出此三角形为不规则三角形。

由于程序是个黑盒子,因此能够确定此条语句存在的惟一方法,就是试验所有的输入情况。

要穷举测试这个三角形程序,可能需要为所有有效的三角形创建测试用例,只要三角形边长在开发语言允许的最大整数范围内。这些测试用例本身就是天文数字,但这还不是所谓的穷尽的,当程序指出-3,4,5是一个不规则三角形或 2,A,2 是一个等腰三角形时,问题就暴露出来了,为了确保能够发现所有这样的错误,不仅得用所有有效的输入,而且还得用所有可能的输入进行测试。因此,为了穷举测试三角形程序,实际上需要创建无限的测试用例:这当然是不可能的。


上述讨论说明,穷举输入测试是无法实现的,这有两方面的含义,一是我们无 法测试一个程序以确保它是无错的,二是软件测试中需要考虑的一个基本问题是软 件测试的经济学。

白盒测试

另一种测试策略称为白盒测试或称逻辑驱动的测试,允许我们检查程序的内部结构。这种测试策略对程序的逻辑结构迸行检查,从中获取测试数据(遗憾的是,常常忽略了程序的规范)。

好啦今天先到这里啦,这篇文章简单的介绍了一下什么是软件测试。

相关推荐
for_ever_love__2 小时前
python基础语法学习: 数据容器
windows·python·学习
云空3 小时前
《电子专业完整学习路线图(分两套:本科四年版 / 零基础自学速成版)》
科技·学习·学习方法·高考
min(a,b)3 小时前
学习第16天:LangGraph 与 Agent 工作流编排
学习
woshihuanglaoshi3 小时前
鸿蒙技术进阶全景高级成长体系:从初中级到架构师的技能树/学习路径/项目实战/认证体系系统性方法论
学习·华为·harmonyos
AI即插即用3 小时前
即插即用系列 | IEEE TMI PLG-HN:原型学习引导的 CNN-Transformer 混合网络,攻克乳腺肿瘤分割难题
人工智能·深度学习·神经网络·学习·目标检测·cnn·transformer
for_ever_love__5 小时前
python基础语法学习: 变量, 输入输出, 运算符
网络·python·学习
学习和思考5 小时前
非自动化专业如何自学PLC?我的6个月学习路线图
笔记·学习·自动化·学习方法
拾陆楼5 小时前
PT: DMSA辅助调tree报告前后级余量脚本
后端·学习
sbjdhjd7 小时前
大三网安秋招核心学习前言(AI 安全 + Web 漏洞 + 内网渗透全考点)
人工智能·网络协议·学习·安全·网络安全·开源·php
Patrick在香港8 小时前
Python爬虫框架实战:优雅抓取香港政府公开API数据的通用方案
java·开发语言·爬虫·python·ai编程·数据可视化·可用性测试