第一阶段【软件测试基础】

一、软件测试前置知识

01 软件测试的定义

软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

02 软件测试的意义

测试是为了尽可能发现更多的缺陷、预防风险,保证被测软件的质量。

03 为什么会有软件测试岗位

  1. 目前软件系统越来越复杂,一个软件系统可能由几个甚至几十个人一起开发,单个开发可能只熟悉他所有编写的模块,对于其他有影响的模块不熟悉,容易产生错误。
  2. 市场竞争激烈,对软件质量要求越来越高。

04软件测试对象

软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。

二、软件测试理论

01软件测试的分类

  1. 按阶段划分:单元测试,集成测试,系统测试,验收测试。
  2. 按是否运行划分:静态测试,动态测试。
  3. 按是否查看代码划分:黑盒测试,白盒测试,灰盒测试。
  4. 按是否手工执行划分:自动化测试,手动测试。

02软件测试的基本原则

原则一:测试证明软件存在缺陷
原则二:穷尽测试是不可能的
原则三:尽早介入测试
原则四:缺陷具有集群性(二八原则,即:80%的错误是由20%的模块引起的。)

原则五:杀虫剂悖论(杀虫剂悖论是指测试人员一直使用相同的方法或手段去重复测试,这些测试只适用于一些有限的模块,而不是整个系统。这种测试可能很难发现bug,甚至无法发现bug。)

原则六:测试是上下文相关的(各种产品或项目包含不同的元素、特征和要求。因此,测试人员不能对不同的项目应用相同的测试方法。)

原则七:无错误谬论(软件测试不仅仅是为了找出Bug而存在的活动,而是还需要确认软件是否满足用户的期望和需求,如果产品不能满足用户的需求,即使没有出现任何缺陷,这个产品也是失败的。)

03软件开发模型

瀑布模型

快速开发模型

缺点:
1、容易退化为边做边改模型,从而使软件过程的控制失去整体性。
2、如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析。

敏捷开发模型
敏捷模型是一种轻量、高效、低风险、更强调团队协作和沟通的开发方式,客户需求模糊或者多变。
特点:
1、强调人与人之间的沟通。
2、轻文档。
3、客户需要全程参与。
4、需求可以变化。

04软件测试模型

V模型

05软件质量模型

第一阶段【软件测试基础】
功能性
适应性:为指定的任务或用户提供一组合适的功能的能力
准确性:提供所需精确度或相符的结果或效果的能力
互操作性:与一个或多个规定系统交互的能力
保密安全性:保护信息或数据的能力
功能性的依从性:遵守与功能性相关的标准、阅读、法规以及类似规定的能力

可靠性
成熟性:为避免由软件中错误导致失效的能力
容错性:出现故障时维持规定的性能级别的能力
易恢复性:失效发生时重建规定的性能级别并恢复受直接影响的数据的能力
可靠性的依从性:遵守与可靠性相关的标准、约定、法规的能力

易用性
易理解性:使用户理解软件是否合适以及如何将软件用于特定的任务和使用环境的能力
易学性:使用户能学习软件怎么用的能力
易操作性:是用户能操作和控制软件的能力
吸引性:吸引用户的能力
易用性的依从性:遵守与易用性相关的标准、约定、法规的能力

效率
时间特性:规定条件下,执行功能时提供适当的响应、处理时间、吞吐率的能力
资源利用性:规定条件下、执行功能时使用合适的资源数量和类别的能力
效率依从性:遵守与效率相关的标准、约定的能力

维护性
易分析性:诊断软件中的缺陷、失效原因、待修改部分的能力
易改变性:指定的修改可以被实现的能力
稳定性:避免由于软件修改造成意外结果的能力
易测试性:修改部分能被确认的能力
维护性的依从性:遵守与维护性相关的标准、约定的能力

可移植性
适应性:适用不同的指定环境的能力
易安装性:在指定环境中被安装的能力
共存性:公共环境中和其他独立软件共存的能力
易替换性:同样环境下,替换另一个相同用途的指定软件的能力
可移植性的依从性:遵守可移植性相关的标准、约定的能力

三、项目管理

01项目流程

软件项目的整个流程:

项目的开始需要进行立项。项目经理要跟项目客户谈整个项目的内容及需求。在这个阶段,项目需要进行市场调研,可行性分析等一系列的活动,保证项目的价值是可取的、可行的

在项目立项之后,就得召开项目启动会了。项目启动会,主要是确定项目的项目招标方和项目投标方。项目招标方确定项目的客户方的负责人和用户;项目投标方确定项目经理、产品经理、技术经理、项目开发人员等项目组成员。项目启动会也是项目的一个里程碑,说明项目要开始了,确定了双方的负责人和责任人。

项目启动会开过之后,项目经理就要开始和项目客户方进行沟通,对项目的需求进行调研了。一般而言,项目在立项之前需求已经基本确定,项目经理,开发和测试会对需求进行评审。

在掌握了一定的项目领域知识,且项目经理已经将项目需求总体的确定下来之后,项目就进入了设计阶段。这时候,项目组需要对项目进行架构选型、设计,开发工具,开发语言,开发平台以及项目的运行平台进行选择确定。

在项目的设计阶段部分或总体结束之后,就进入到了项目的代码开发阶段。在该阶段,技术经理负责对项目的整体代码进行把控,软件工程师对项目设计转化为代码进行开发。

在项目系统开发出部分或总体功能之后,项目的测试人员就需要介入对项目系统进行测试了。单元测试和集成测试等等。以保证系统对需求的和设计上的开发的正确性。

在项目系统进行了总体测试通过之后,项目经理要联系项目客户方进行系统的试运行了。保证系统的功能的正确性。同时也是需求变更比较大的阶段,在这个阶段,项目经理要把控好和计划好时间,尽量避免需求大的变更出现。

项目在进行试运行结束后,就到了项目验收阶段了。项目验收阶段就是项目收尾阶段,包括项目收尾和合同收尾。在该阶段,项目经理该联系项目客户方对项目系统进行评估、审查,保证项目的正确性。

02软件测试流程

(一)需求分析
软件需求分析所要做的工作是深入描述软件的功能和性能,确定需求设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。需求分析可分为需求提出,需求描述及需求评审三个阶段,主要内容包括任务概述,需求规定,运行环境规定等。通过需求分析,逐步细化对软件的需求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计,结构设计和过程设计的数据和功能表示。在软件完成后,制定软件规格说明,为评价软件质量提供依据。
(二)测试计划
由测试经理组织项目维理和开发经理确定测试接交时间,得到相关资料,组织测试团队进行需求分析并制定 《测试计划》。《测试计划》主要是根据项目开发计划和测试需求分析结果来制定。一般包括项目介绍,测试目地,测试依据,测试内容,测试策略,测试人员安排,测试软硬件环境,测试日程安排等。
(三)测试设计
测试设计主要是指测试用例的设计。
(四)测试环境搭建
测试环境是指进行测试工作需要的软硬件、 络和数据环境。
(五)测试执行
执行编写和评审后的测试用例,对被测对象进行一个系统的测试。
(六)缺陷管理
对测试过程中发现的BUG提交到缺陷管理系统。并对修改的问题进行跟踪回归测试,直到问题关闭。
(七)输出测试 告
主要内容包括测试目的,项目背景,参考资料,一些术语解释,测试软件硬件环境说明,测试概要,测试缺陷统计,测试结果分析,测试相关的文档,建议等。

下编:用例设计方法

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月27日
下一篇 2022年4月27日

相关推荐