测试基础知识

简介: 测试基础知识

hi,大家好,好久不见,今天为大家带来测试的相关基础知识

我们已经在上一篇介绍了一些概念,在正式进入到软件测试前,我们要先了解一下软件测试的基本概念

1.什么是需求

2.什么是BUG


.3什么是测试用例

4.开发模型和测试模型

5.配置管理和软件测试

🐷🐷🐷1.什么是需求

首先要知道需求的重要意义:是衡量软件测试结果的依据!!!

满足用户期望或正式规定文档(合同,标准,规范)所具有的条件和权能,包含用户需求和软件需求

用户需求:也就是甲方爸爸提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务,这个需求比较简略

软件需求:这个需求会详细介绍开发人员必须实现的软件功能,也可以叫功能需求

在工作中进行软件开发的时候会把用户需求转化成用户需求,开发人员和测试人员工作就是根据软件需求进行的

软件需求是测试人员进行测试工作的基本依据

设计测试用例步骤:业务需求—>软件功能需求点—>测试需求点—>测试用例

为什么需求对软件测试人员如此重要

1.从软件功能需求出发,无遗漏的识别出测试需求是至关重要的,这将直接关系到用例的测试覆盖率

2.对于识别出的每个测试需求点,需要采用具体的设计测试用例的方法来进行测试用例的设计


🐷🐷🐷2.什么是BUG

软件错误的一般定义: 程序与规格说明之间不匹配 。准确的说当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误

当程序没有实现其最终用户合理预期的功能要求时,就是软件错误


🐷🐷🐷3.测试用例的概念

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。

为什么一定要有测试用例呢?

测试过程中可能会遇到以下问题: 不知道是否较全面的测试了所有功能 ,测试的覆盖率无法衡量

版本的重复测试很难实施 还存在大量冗余测试影响测试效率

测试用例的产生就是为了解决上述的问题


🐷🐷🐷4.开发模型和测试模型

软件的生命周期

软件的生命周期可以分成6个阶段,即需求分析、计划、、设计、编码、测试、运行维护

开发模型分为瀑布模型和螺旋模型,增量模型,迭代模型

瀑布模型:

5429bec6aa9547be9ded4f5df6ecc4ea.jpg


瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式


优点:强调开发的阶段性; 强调早期计划及需求调查; 强调产品测试

有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。 缺点:

(1)开发过程一般不能逆转,否则代价太大;


(2)实际的项目开发很难严格按该模型进行;


(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。


(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。


螺旋模型(Spiral Model)

一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模式。螺旋模型是渐进式开发模型的代表之一

42d2c18f2a104943858d340d1ef78229.jpg

螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。

对于那些规模庞大、复杂度高、风险大的项目尤其适合。这种迭代开发的模式给软件测试带来了新的要求,它不允许有一段独立的测试时间和阶段,测试必须跟随开发的迭代而迭代

优点:

1、设计上的灵活性,可以在项目的各个阶段进行变更。


2、以小的分段来构建大型系统,使成本计算变得简单容易。


3、客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。


4、随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。

缺点:


1、采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。


2、过多的迭代次数会增加开发成本,延迟提交时间。


在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估!

🐷🐷🐷增量和迭代

增量迭代模型是软件开发过程中、常用的开发模型。其中的增量是指是软件开发过程中,先开发主要功能模块,再开发次要功能模块,逐步完善,最终开发出符合需求的软件产品。


👀👀👀比如,需要开发一个类似WORD的软件,应该首先开发出文件管理(保存、读取文件)、基本编辑功能、打印等,而其它不太常用的功能可以最后开发。

迭代是指增量开发过程中,各模块的开发是反复进行的,并不是完成了某个模块后就终止该模块的开发转而开发下一个模块,以上面的开发WORD为例,比如,现在已开发了文件管理模块,正在开发编辑模块,但后来发现,文件管理模块有某些功能还没有实现,可以在编辑模块的开发过程中同时继续开发文件管理模块,如此不断的反复,所以说这个过程是迭代的过程。经过这样的反复迭代后该软件的功能就会越来越完善,最终完成开发


敏捷

敏捷宣言:

个体与交互重于过程和工具
可用的软件重于完备的文档
客户协作重于合同谈判
响应变化重于遵循计划
在每对比对中,后者并非全无价值,但我们更看重前者。

软件测试模型

1.V模型

2.W模型

😎1.V模型

5f1ae10431c54becb9e7bba4d4b641d7.png

优点:简单、高效

缺点:容易让人误解为测试是在开发完成之后的一个阶段;由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找到其根源,并且代码修改起来很困难;实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试。返工量大。

适用范围:小型项目、规模较小的公司、业务需求稳定的项目


a9782dbaf98846df9fdd493d542786cc.jpg

优点:简单、高效

缺点:容易让人误解为测试是在开发完成之后的一个阶段;由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找到其根源,并且代码修改起来很困难;实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试。返工量大。

适用范围:小型项目、规模较小的公司、业务需求稳定的项目


今天的讲解就到这里了,我们下期再见!!!

相关文章
|
4月前
|
人工智能 算法 编译器
C语言初阶测评题:测试你的基础知识和编程技能!!
C语言初阶测评题:测试你的基础知识和编程技能!!
52 1
|
14天前
|
分布式计算 Hadoop 测试技术
Hadoop【基础知识 05】【HDFS的JavaAPI】(集成及测试)
【4月更文挑战第5天】Hadoop【基础知识 05】【HDFS的JavaAPI】(集成及测试)
41 8
|
11月前
|
机器学习/深度学习 人工智能 数据挖掘
【人工智能】45测试深度学习基础知识的数据科学家的问题(以及解决方案)(下)
【人工智能】45测试深度学习基础知识的数据科学家的问题(以及解决方案
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能】45测试深度学习基础知识的数据科学家的问题(以及解决方案)(上)
【人工智能】45测试深度学习基础知识的数据科学家的问题(以及解决方案)
|
11月前
|
SQL Oracle 关系型数据库
Oracle数据库管理员经典试题【Oracle基础知识测试】
Oracle数据库管理员经典试题【Oracle基础知识测试】
81 0
|
Android开发 iOS开发
测试开发工程师需要知道的 Android和iOS CPU架构基础知识
测试开发工程师需要知道的 Android和iOS CPU架构基础知识
434 0
|
测试技术 Linux 网络安全
|
前端开发 JavaScript 测试技术
《JavaScript忍者秘籍》——2.4 测试套件基础知识
内部的实现函数runTest(),在测试排队时从列中移除时进行调用。它用于检查当前套件目前是否没被暂停以及队列中是否有测试任务,一旦满足情况,将从队列中取出一个测试并尝试执行它。此外,测试组完成执行之后,runTest()会检查该套件目前是否暂停了,如果没暂停(这意味着,测试组中只有异步测试),runTest()将开始执行下一组测试。
1328 0
|
应用服务中间件 开发工具 nginx
【推荐】Nginx基础知识之————多模块(非覆盖安装、RTMP在线人数实例安装测试)
说明:已经安装好的nginx,需要添加一个未被编译安装的模块,需要怎么弄呢? 具体:这里以安装第三方nginx-rtmp-module和nginx-accesskey-2.0.3模块为例,nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.
1468 0
|
19天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
26 0

热门文章

最新文章