软件测试学习第一期

🎬 博客主页:博主链接

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

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

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

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

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


文章目录

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

😧软件测试的心理学

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

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

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

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

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

😧软件测试的经济学

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

黑盒测试

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

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


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

那我们为什么要这样做?

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

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

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

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


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

白盒测试

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

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

相关推荐
辞旧 lekkk3 小时前
【Qt】信号和槽
linux·开发语言·数据库·qt·学习·mysql·萌新
爱上好庆祝6 小时前
学习js的第七天(wed APIs的开始)
前端·javascript·css·学习·html·css3
风兮雨露8 小时前
VMware虚拟机(安装/绿色版)
学习
zl_dfq9 小时前
python学习8 之 【集合、datetime模块、字典】
学习
kdxiaojie10 小时前
U-Boot分析【学习笔记】(3)
linux·笔记·学习
MediaTea10 小时前
Scikit-learn:从数据到结构——无监督学习的最小闭环
人工智能·学习·算法·机器学习·scikit-learn
@杰克成10 小时前
Java学习26
java·学习·idea
qeen8710 小时前
【数据结构】二叉树相关经典函数C语言实现
c语言·数据结构·c++·笔记·学习·算法·二叉树
dingxingdi10 小时前
如何学习一个新的 Coding CLI 工具
学习
Alice-YUE11 小时前
深入解析 JS 事件循环:浏览器与 Node.js 的差异全解析
前端·javascript·笔记·学习