软件测试基础
博主是一个计划往测试开发方向发展的努力者。写自己的博客是为了方便自己查询,也能够跟同路的大家一起努力、进步。
(下面将由问题以及回答的形式来回忆软件测试的基础)
软件测试的概述
- Q:软件测试领域是什么?
A:IT领域、研发部门、质量岗位。 - Q:软件测试岗位的特点是什么?
A:入行容易、有深度、技术与管理并举。 - Q:软件测试的核心目标是什么?
A:尽早、尽快、尽多地发现软件缺陷。促进软件质量与客户满意度的提升。 - Q:软件测试的几种方法?
A:
1.等价类划分:将无穷的测试输入变成有限的输入。
2.边界值法:从划分的等价类里面选取数据的方法。
3.因果图法:考虑数据之间的组合关系。
4.用户故事法:模拟用户的行为,用户故事只是描述系统的外在行为。
5.错误推测法:反推。 - Q:测试用例的作用是什么?
A:测试用例是将测试方法格式化。 - Q:测试用例包括什么?
A:测试用例编号、测试项目、测试标题、重要级别、预置条件、输入、预期输出、测试结果、测试者&时间。
软件和软件测试
- Q:软件指的是什么?
A:软件包括程序、数据、文档。 - Q:软件的分类?
A:
1)按照层次划分:可以分为系统软件(例如Windows)和应用软件(直播平台软件)
2)按照组织划分:可以分为商业软件和开源软件。
3)按照结构划分:可以分为单机软件和分布式软件。
单机软件指的是不联网都能运行的软件,在一台电脑上就可以运行的软件,比如纸牌游戏。 - Q:关于软件缺陷?
A:1)所有不满足需求或超出需求的都是缺陷。
2)没有不存在缺陷的软件,只有迄今为止尚未发现的缺陷。 - Q:软件缺陷的定义?
A:1)软件未实现产品说明书要求的功能。
2)软件出现了产品说明书指明不该出现的功能。
3)软件实现了产品说明书中未提到的功能。
4)软件未实现产品说明书虽未明确提及但应该实现的目标。
5)软件难以理解、不易使用、运行缓慢或者(从测试的角度看)最终用户会认为不好的。
软件测试的定义和目的
-
软件测试正向思维的定义
出发点:使自己确信产品是能够正常工作的。
评价一个程序和系统的特性或能力,并确定它是否达到期望的结果,软件测试就是以此为目的的任何行为。 -
软件测试反向思维的定义
1.出发点:测试是为发现错误而执行一个程序或者系统的过程。
2.测试是为了证明程序有错,而不是证明程序无错误。
3.一个好的测试用例在于它能够发现以前从未发现的错误。
4.一个成功的测试是为了发现以前未发现的错误的测试。 -
IEEE定义的测试
1.在规定条件下运行系统或构件的过程:观察和记录结果,并对系统或构件的某些方面给出评价。
2.分析软件项目的过程:检测现有状况和所需状况之间的不同,并评估软件项目的特性。 -
软件测试的定义
广义软件测试定义:
1)软件测试是对软件形成过程中的所有工作产品(包括程序以及相关文档)进行的测试,而不仅仅是对程序的运行进行测试。
2)确认:通过检查和提供客观证据来证实特定目的的功能或应用 是否已经实现。
3)验证:通过检查和提供客观的证据来证实指定的 需求是否满足。 -
验证和确认的区别
确认→是不是,有没有,存不存在
验证→是不是满足需求 -
软件测试的目的
1)以 最少的人力、物力和时间 找出软件中潜在的各种错误和缺陷,保证各种错误和缺陷得以修复,避免软件发布后由于潜在的软件错误和缺陷造成的隐患所带来的商业风险。
2)同时利用软件测试过程中得到的测试结果和测试信息,作为后续项目开发和测试过程改进的重要输入,避免在将来的项目开发和测试中重复同样的错误。
3)采用更高效的测试管理手段,提高软件测试的效率和软件产品的质量。 -
测试和调试的区别
1)在主体、目标、方法、思路上的区分
测试 | 调试 | |
---|---|---|
主体 | 测试人员 | 开发 |
目标 | 找bug | 将错误修改正确 |
方法 | 等价类、边界值 | 程序与逻辑算法 |
思路 | 反向思维 | 正向思维 |
2)测试是从已知的条件开始,使用预先定义的过程,并且有预知的结果,调试是从未知的条件开始,结束的过程不可预计。
3)测试可以计划,可以预先制定测试用例和过程,工作进度可以度量;描述调试的过程或持续时间相对比较困难。
4)测试的对象包括软件开发过程中的文档,数据以及代码,而调试的对象一般来说只是代码。