1、软件生命周期

问题定义===》需求分析===》软件设计===》软件开发===》软件测试===》软件维护===》淘汰

2、软件开发模型

(1)瀑布模型(已被淘汰)

瀑布模型

优点:提高开发效率

缺点:1、线性结构,无法适应用户的需求变更

​ 2、如果中途出现失误,损失巨大,增加了开发的工作量

(2)快速原型模型

快速

优点:可以和客户有充分的沟通,克服了需求不明确带来的风险,适用于不能预先确定需求的软件项目。

缺点:1、原型设计较难;

​ 2、不利于开发人员对产品的扩展;

(3)迭代模型

迭代

分成好多组件,每一个组件完成后给客户,供客户审核。

优点:适应客户需求变更;降低了开发成本和风险

缺点:1、增加了集成失败风险;

​ 2、容易退化为“边做边改”模式,失去对整个项目的控制

(4)螺旋模型(从里向外看)

螺旋

最大的特点是引入了风险分析

优点:1、强调了风险分析,有助于将软件质量融入开发中;

​ 2、小分段构建大型软件,易于计算成本;

​ 3、客户参与,保证了项目的可控性;

缺点:构建过程太过于繁琐,不适合小型项目

(5)敏捷模型

1、客户的需求进化为核心,注重“人”的作用

2、采用迭代,循序渐进的方法,将整个项目分解为很多子项目

3、可对某个子项目进行修改,满足客户的需求

4、开发测试同时进行,甚至可以提前写好测试代码

3、软件质量

(1)什么是软件质量

软件产品满足基本需求及隐式需求的程度。

软件质量分为三个层次

满足需求规定:软件产品符合开发者明确定义的目标,并且能可靠运行。

满足用户需求:软件产品的需求是由用户产生的,软件的最终的目的就是满足客户需求,解决用户的实际问题。

满足用户隐式需求:软件如果满足用户隐式需求,即潜在的可能需要在将来开发的功能。将会极大的提升用户满意度,这就意味着和软件质量更高。

(2)软件质量的评价标准(国际评价标准)

标准

(3)影响软件质量的因素

1、需求模糊

2、软件开发缺乏规范性文件指导,开发人员各写各的

3、软件开发人员问题

4、缺乏软件质量控制管理

4、软件缺陷产生的原因

(1)需求不明确

(2)软件结构复杂

(3)开发人员水平有限

(4)项目期限短

(5)使用新技术

5、软件缺陷的分类

分类

一般以严重程度优先级进行分类

6、软件缺陷的处理流程

流程

缺陷报告:列举缺陷的类型、严重程度、缺陷描述、缺陷编号等,每个公司的缺陷报告不同。

7、常见的软件缺陷管理工具

(1)Bugzilla

Bugzilla是Mozilla公司提供的一款免费的软件缺陷管理工具。Bugzilla能够建立一个完整的缺陷跟踪体系,包括缺陷跟踪、记录、缺陷报告、处理解决情况等。

使用Bugzilla管理软件缺陷时,测试人员可以在Bugzilla上提交缺陷报告,Bugzilla会将缺陷转给相应的开发者,开发者可以使用Bugzilla做一个工作表,标明要做的事情的优先级、时间安排和跟踪记录。

(2)禅道

禅道是一款优秀的国产项目管理软件,它集中产品管理、项目管理、质量管理、缺陷管理、文档管理、组织管理和事务管理于一体,是一款功能完备的项目管理软件,完美地覆盖了项目管理的核心流程。

禅道分为专业和开源两个版本,专业版是收费软件,开源版是免费软件,对于日常的项目管理,开源版已经足够使用。

(3)JIRA

JIRA是Atlassion公司开发的项目与实务跟踪工具,被广泛 用于缺陷跟踪、客户实务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。JIRA配置灵活、功能全面、部署简单、扩展丰富、易用性好,是目前比较流行的基于Java架构的管理工具。

JIRA软件有两个认可度很高的特色;第一个是Atlassian公司对该开源项目实行免费提供缺陷跟踪服务;第二个是用户在购买JIRA软件同时将源代码也购置进来,方便二次开发。

8、软件测试

(1)按照测试阶段分类

单元测试:验证软件单元是否符合软件需求与设计,开发人员自测;

冒烟测试:软件构建版本建立后,对系统的基本功能进行简单的测试,这种测试重点验证的是程序的主要功能,而不会对具体功能进行深入测试。

集成测试:冒烟测试后,将已经测试过的软件单元在一起测试他们之间的接口,用于验证软件是不是满足设计需求。

系统测试:将经过测试的软件在实际环境中运行,将其他成分组合在一起测试

验收测试:对照软件产品的说明书,逐步测试,保证符合需求

(2)按照测试技术进行分类

黑盒测试:把软件当作一个有输入与输出的黑匣子,不必关心程序内部是怎样实现的。

白盒测试:测试人员了解软件程序的逻辑结构、路径与运行过程,在测试时按照程序的执行路径得出结果。白盒测试就是把软件当作一个透明的盒子,测试人员清除的知道从输入到输出的每一步过程。

(3)按照软件质量特性分类

功能测试:测试软件的功能是否满足客户的需求,包括准确性、易用性、适合性、互操作性等。

性能测试:测试软件的性能是否满足客户的需求,性能测试包括负载测试、压力测试、兼容性测试、可移植行测试和健壮性测试等。

(4)按照自动化程度进行分类

手工测试:一条一条代码测试。

自动化测试:借助脚本、自动化测试工具完成测试,需要人工参与,但是人工参与只是写脚本。

(5)按照测试项目分类

界面类测试:验证界面是否符合客户需求

安全性测试:测试在受到攻击时能否保护软件与数据的安全

文档测试:以需求分析,软件设计,用户手册、安装手册为主,主要验证文档说明与实际文件之间是否存在差异。

9、软件测试与软件开发的关系

关系

10、软件测试模型

v模型(瀑布开发模型的一个变种)

V

W模型

w

H模型(测试同步执行)

H

X模型

X

11、软件测试原则

​ 测试应基于客户需求

​ 测试要尽早进行

​ 穷尽测试是不可能的

​ 遵循GoodEnough原则

​ 测试缺陷要符合“二八”定理

​ 避免缺陷免疫

12、软件测试基本流程

流程

测试用例编写的原则:用最少的测试用例,测试覆盖率最大的程序。

最后修改:2022 年 09 月 08 日
如果觉得我的文章对你有用,请随意赞赏