软件测试的基本概念

1.什么是软件测试

软件测试是软件测试人员验证是否满足用户的需求。

2.软件测试和软件开发的区别?

(1)本身

开发:广度小,专业度高

测试:所需技能比较广泛,但专业度低

难易,薪资,工作环境,压力,责任

(2)软件测试和软件调试

目的:软件开发人员确保程序做了他想让程序实现的功能。

软件测试是测试人员确保程序实现了他应该实现的功能(用户需求)

角色:

测试:开发人员和测试人员共同完成

开发:开发人员

阶段:

软件测试贯穿了整个软件开发的生命周期。

软件开发:开发阶段。

3.什么是需求

用户的期望和满足合同(文档,规则,标准)的规定所需要的条件和权限。

用户需求和软件需求:

(1)软件需求是用户需求转化而来的,他是用户需求的细化,使用户需求的具体实现细节和规范。

(2)用户需求较粗略,之间实现会有困难,因为没有细节,所以需要软件需求把用户需求细节实现和规范,把用户需求变成一个具体的可实现的过程文档。

4.需求是软件测试的依据

验证需求,保证需求的正确可实现,细化需求,从需求中提炼出一个个的测试项。

以“用户登录”为例:

软件测试的基本概念_第1张图片

 软件测试人员如何深入了解需求?

从需求分析阶段开始介入了解需求,站在用户需求角度。

5.测试用例:

测试用例就是向被测试的系统发起的一组集合,包含测试环境,测试数据,测试步骤,预期结果。

6.测试用例告诉我们测什么,怎么测?

优点:衡量需求的覆盖率;复用性,借鉴意义;可以用于回归测试;防止遗漏测试需求。

7.什么是BUG(软件错误)?

当前仅当,程序规格说明书(软件需求)存在并且合理,如果软件功能和软件规格说明书不相符合,我们就说是软件错误;当软件不存在,用户需求存在并且合理,软件功能和用户功能不相符合,说明是软件错误;

软件测试的阶段:整个软件的开发生命周期,续期阶段介入,验证需求的合理性和正确性。

8.开发模型(5个)

软件开发的生命周期:

需求分析——计划——开发——测试——运行维护

(1)瀑布模型

start --> 需求分析 --> 计划 --> 设计 --> 编码 --> 测试 --> End

特点:阶段性强,每一个阶段比较独立;看重前期的需求分析和后期的测试。

缺点:测试在编码后才开始介入,导致前期的问题后期才发现,会失去错误补救的机会。

(2)螺旋模型

软件测试的基本概念_第2张图片

适合于项目庞大,前期风险大,不是很明确的项目。

特点:强调每一个迭代的测试质量和风险分析。

缺点:风险管控人力物力投入很多,成本比较大。

(3)增量模型

同一个系统的四个模块A  B  C  D两周

                第一周开发A  B功能模块

                第二周开发C  D功能模块

(4)迭代模型:

同一个系统的四个模块A  B  C  D两周

               第一周先开发A  B  C  D的基础功能,

               第二周在第一周的基础上完成其他的功能

特点:抗风险能力强。

(5)敏捷模型

特点:轻文档,轻流程,重目标,重产出。

scrum流程:

软件测试的基本概念_第3张图片

角色:
Po product owner,把用户需求转化成user story; 

SM scrum master 项目经理,管理整个团队,负责敏捷流程顺利实施,各种会议;
ST scrum team,各种技能的人组成,开发,测试UI。
 

发布计划会议:产品经理收集需求形成userstory,讲解,排出本迭代需要进行开发的userstory形成sprint backlog;

迭代计划会议:分析用户故事,把userstory分解一个个的任务,分配开发人员,制定开发计划;
每日站会:昨天千了什么,遇到的问题,今天的计划;
产品演示会议:甲方,用户演示产品,PO把不足的地方收集成user story,下一次迭代改进;
回顾计划会议:回顾整个迭代过程,把不足的地方找出,在下一次迭代过程中改进,优化迭代流程。
 

9.测试模型

(1)V模型

特点:每个阶段独立性比较强,左边每个阶段是右边测试阶段的依据,和右边每个测试阶段一一对应。

瀑布模型变种(缺点)

缺点:编码后才进行测试,前期的错误后期才发现,会失去错误及时纠正的机会。

软件测试的基本概念_第4张图片

(2)W模型

双V模型

特点:每一个阶段独立性强,测试一开始就介入,可以保证前期的问题及时发现和纠正,测试和开发并行。

缺点:每一个阶段都是一个串行的过程,一个阶段完了之后就进行下一个阶段;不支持敏捷开发。

软件测试的基本概念_第5张图片

你可能感兴趣的:(其他)