初步了解软件测试

什么是软件测试

软件测试的主要工作就是验证软件功能是否满足用户需求。

那么软件测试和软件的调试又没什么区别呢?

1.目的不同
软件测试的目的测试找出和程序的缺陷,而软件调试过程是为了定位问题,并解决问题。
2.参与角色不同
软件测试是由测试人员主要参与的,而软件调试是又开发人员完成的
3.执行阶段不同
测试要贯穿整个软件的开发生命周期,而调试只在开发阶段。

软件测试又有哪些岗位呢

有软件测试开发工程师SET,有测试工程师,有软件开发工程师,WEB测试工程师,APP测试工程师,游戏测试工程师,嵌入式测试工程师,等。

软件测试的目的和原则

目的和概念描述类似,主要就是验证软件有还是没有缺陷
原则:软件测试是以客户为中心的,要遵循软件测试的规范,流程、标准和要求。

什么是需求

1.用户需求:笼统的用户需要软件实现的要求,实现什么功能,满足什么要求等。
2.软件需求:相比较以用户需求,软件需求更加具体(用户需求通过沟通确定软件需求),是将用户需求拆分成更加具体的多个子需求。可以理解成要想实现用户需求需要先满足这些软件需求。软件需求的定义要求,可以满足开发人员看了会写代码,测试人员看了可以编写测试用例。
综上,需求就是要满足用户期望,符合正式文档规定的所应该具有的条件和权能,需求包含用户需求和软件需求。

什么是bug缺陷

当有规格说明书,而且说明书正确的前提下,程序与规格说明的不一致、不匹配就是bug
当没有规格说明书时,程序没有实现最终用户合理预期的功能要求,就是软件bug。

什么是测试用例

测试用例就是味蕾实施测试而向提供给测试系统的一组测试元素集合,包括测试环境,操作步骤,测试数据,预期结果等要素。

什么是软件的生命周期

从软件被需要,设定需求分析,
到计划软件开发过程,
到设计软件的要求
到具体的编码
到测试
到运行维护
需求分析、计划、设计、编码、测试、运行维护

开发模型

开发模型有多种瀑布模型,螺旋模型,增量模型,迭代模型、敏捷模型等
1.瀑布模型
瀑布模型是较为传统的开发模式,采用线性测试,一步接着一步走,强调开发阶段,强调早期计划和需求分析。强调测试。
但是所带来的缺点、往往就是由于线性操作很多风险不足滞留到后期测试阶段才显露,因而失去了及早矫正错误的机会。所以瀑布模式不适应需求频繁变更的情况。
2.螺旋模型-渐进式
螺旋模式强调风险分析,螺旋前进,适合规模庞大,复杂度高,风险大的项目。
3.增量模型
增量模式利用块的概念,使用的是组块建造的思想。就是一个模块一个模块的测试。这种开发模型,估计用户反馈,使得小组以一种循环可预测的方式驱动产品开发。增量和迭代方式。因为不断的对需求的调整,要求测试频繁进行,并且与开发人员紧密合作。
4.迭代模型
相比较与增量模型,迭代模型强调的是先整体后细节的思想,是一个反复求精,细化的过程。
5.敏捷模型
敏捷模型强调的是沟通,是一种轻文档,要求客户参与,并且拥抱变化,乐于接收需求修改的开发模型。因为敏捷模型的迭代周期频繁,所以对测试人员要求很高,而且因为拥抱变化,需要调整所以每天都会有例会哦。

敏捷模型scrum步骤

1.首先产品负责人(product owner)先将功能点整理成多个用户故事(user story)
2.发布产品会议 负责人讲解用户故事,对其进行评估排序。
3.迭代计划会议 对每个用户故事进行任务分解,确定每个任务的负责人。
4.每日例会 敏捷教练(scrum master)召集会议,总结今天,计划明天,反应问题
5.演示会议 迭代结束后,展示迭代成果,反馈记录由负责人整理成新的用户故事
6.回顾会议 对一期的迭代总结,制定改进计划,以达到持续改进的效果。

软件测试模型

软件测试V模型

在这里插入图片描述

1.单元和集成测试应检测程序的执行是否满足软件设计的要求。
2.系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标。
3.验收测试确定软件的实现是否满足用户需要或合同的要求
V模型的缺陷:风险往往滞留到后期才暴露。修复代价大。
软件测试W模型
在这里插入图片描述

缺点:依然是串行的,必须等代码编码完成才能测试,不能满足需求频繁变更,不能适应敏捷开发模型。

配置管理软件

SVN &GIT
配置管理是通过对在软件生命周期不同的时间点上的软件配置进行标识,并对这些被标识的软件配置项的更改进行系统控制,从而达到保证软件产品的完整性和可溯性的过程。

什么是配置项
代码,文档,工具,程序都是配置项

软件配置管理的应用

软件开发过程中会产生大量软件产品(包括文档、源代码和数据等),这些产品之间存在着关联关系。
同一软件产品也会发生变更,从而产生许多版本。软件开发小组必须清晰地知道会有哪些产品、这些产品会有哪些不同的形式和版本。开发小组必须清晰地知道如何将产品的变更通知给受影响的小组。如果不能有效地了解软件产品及其变更,开发小组将很难组装这些软件产品,很难得到所需的软件产品,先向上变更为版本再调试。
优点:
(1)能够对项目中的文档、代码等的变化进行有效管理。
(2)能够方便地重现某个文件的历史版本。
(3)能够重新编译某个历史版本,使维护工作变得容易。
(4)能够使异地多团队开发、并行开发成为现实。
(5)从公司级看,实行统一的配置管理流程可提高项目组间人员流动时的工作效率。

配置管理和软件测试的关系

测试人员应该从配置库取源代码编译后再测试,只有看到新的构建版本不再出现那个Bug,才能把缺陷库中的Bug关闭。

软件测试的生命周期

需求分析→测试计划→测试设计、测试开发→测试执行→测试评估
1.需求阶段 -测试人员了解需求、对需求进行分解,得出测试需求
2.计划阶段 -根据需求编写测试计划/测试方案
3.设计阶段 -测试人员适当的了解设计,对于设计测试用例是很有帮助的,测试人员搭建测试用例框架,根据需求和设计编写一部分测试用例
4.编码阶段 -测试人员一般是不需要编码的,但已经编码的模块,专业的白盒测试人员可以计划执行单元测试,完善、细化测试用例以及调整测试计划和方案。
5.测试阶段 -测试阶段是软件测试人员最为重要的工作阶段,根据测试用例和计划执行测试,在执行的过程中记录、管理缺陷,测试完成后编写测试报告。
6.运行维护 -测试人员需要参与项目的实施工作。测试人员对项目产品的业务和操作非常了解,加上测试人员的沟通表达能力一般都比较强,所以测试人员可以参与用户使用软件的培训,在试运行项目时收集问题并及时反馈给相关负责人。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页