小小千想和您聊一聊

当前位置: 首页> 技术分享> 软件测试基础

软件测试基础

  1.1 软件测试目的

  Glenford Myers就软件测试目的提出了以下观点:

  1. 测试是程序的执行过程,目的在于发现错误;

  2. 一个好的测试用例在于能发现至今未发现的错误

  3. 一个成功的测试是发现了至今未发现的错误的测试

  • Bill Hetzel提出测试目的不仅仅是为了发现软件缺陷

  与错误,而且也是对软件质量进行度量和评估,以

  提高软件质量。

  •以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,

  通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜

  在的软件缺陷和错误造成的隐患所带来的商业风险

  •测试是以评价一个程序或者系统属性为目标的一种活动,测试是

  对软件质量的度量与评估,以验证软件的质量满足用户的需求,

  为用户选择与接受软件提供有力的依据

  •通过分析错误产生的原因还可以帮助发现当前开发工作所采用的

  软件过程的缺陷,以便进行软件过程改进。同时通过对测试结果

  的分析整理,还可以修正软件开发规则,并为软件可靠性分析提

  供依据

  •发现程序错误--直接目标

  •检查系统是否满足需求--期望目标

  •改进开发过程--附带目标

  1.2软件测试对象

  •软件测试不等于程序测试

  •需求规格说明、概要设计规格说明、详细设计

  •规格说明以及源程序,都是软件测试的对象

  •软件测试贯穿于软件定义和开发的整个期间

  1.3软件测试分类

  •按照开发阶段划分:单元测试、集成测试、确认测试、系统测试、验收测试

  •按照测试实施组织划分:开发方测试、用户测试、第三方测试

  •按照测试技术划分:白盒测试、黑盒测试、灰盒测试

  1.4 软件生命周期测试策略

  •以V模型为例,介绍软件生命周期中程序开发部分需要

  经历的若干个测试级别及其对应的测试策略。

  •软件测试的过程

  软件开发过程是一个自顶向下,逐步细化的过程,而

  测试过程则是按照相反的顺序安排自底向上,逐步集

  成的过程。低一级测试为上一级测试准备条件。

  分析设计阶段

  分析设计阶段的测试工作是评审与测试相结合的过程。主要包

  括:

  •需求说明书评测

  •概要设计说明书评测

  •详细设计说明书评测

  •软件编码规范评测

  开发阶段

  A、单元测试

  针对软件设计的最小单位程序模块,进行正确性检验

  的测试工作。单元测试需要从程序的内部结构出发设

  计测试用例。单元测试的内容:

  --模块接口测试

  --局部数据接口测试

  --路径测试

  --错误处理测试

  --边界测试

  B、集成测试

  也叫作组装测试或联合测试。在单元测试的基础上,需要将所

  有模块按照概要设计说明书和详细设计说明书的要求进行组装

  模块组装成为系统的方式:

  1) 一次性组装方式:首先对每个模块分别进行模块测试,再把所 有模块组装在一起进行测试,最终得到要求的软件系统。

  2) 增殖式组装方式:首先对一个个模块进行模块测试,然后将这

  些模块逐步组装程较大的系统,在组装的过程中边连接边测

  试,以发现连接过程中产生的问题。最后通过增殖逐步组装成

  为要求的软件系统

  C、确认测试

  确认测试的任务是验证软件的功能和性能及其他特性是否与用

  户的要求一致。确认测试一般包括有效性测试和软件配置复

  查。

  1)进行有效性测试:模拟环境下,运用黑盒测试方法,验证所测

  软件是否满足需求规格说明书列出的要求。同时,对其他软件

  需求,如可移植性、可靠性、易用性、兼容性、可维护性等,

  也都要进行测试。

  2)软件配置复查:保证软件配置的所有成分都齐全,各方面的质

  量都符合要求。

  确认测试一般由独立的第三方测试机构

  D、系统测试

  将通过集成测试的软件,作为整个基于计算机系统的

  一个元素,与计算机硬件、外设、某些支持软件、数

  据和人员等其他系统元素结合在一起,在实际或者模

  拟环境下,对计算机系统进行一系列测试。

  E、验收测试

  以用户为主的测试。软件开发人员也应参加。由用户

  参加设计测试用例,一般使用生产中的实际数据进行

  测试。

  目前在国内,验收测试往往在系统测试完成后,项目

  最终交付前进行。验收测试的测试计划、方案、用例

  一般由开发方制定,由用户方和监理方联合进行评

  审。验收测试往往针对用户的核心业务流程进行的测

  试。测试的执人员是由用户方的使用人员完成。

  1.5软件失效分类与管理

  软件失效分类

  软件测试使用各种术语描述软件出现的问题,通用的术语如下:

  软件错误、软件缺陷、软件故障、软件失效

  1) 软件错误:在软件生存期内的不希望或不可接收的人为错误

  2) 软件缺陷:存在于软件(文档、数据、程序)之中的那些不希望或不 可接受的偏差,如少一个逗号,多一条语句等

  3) 软件故障:软件运行过程中出现的一种不希望或不可接受的内部状态

  4) 软件失效:软件运行时产生的一种不希望或不可接受的外部行为结果

  好的测试人员是如何指出问题的?

  1)在今天的测试过程中,系统出现了10次宕机现象

  2)软件失效现象:发生宕机

  3)软件故障情况:在使用非法数据输入的情况下发生宕机

  4)软件缺陷:软件中缺少合法性校验

  5)软件错误:详细设计环节缺少合法性校验内容,且文档评审工作不到位

  6)修改建议:增加合法性校验,加强文档评审工作

  在报告软件缺陷时,一般要讲明如何处置它们。测试员要对软件缺陷分类,以

  简明扼要的方式指出其影响,以及修改的优先次序。

  严重级:

  1) 严重:系统崩溃、数据丢失、数据毁坏

  2) 较严重:操作性错误、错误结果、遗漏功能

  3) 一般:小问题、错别字、罕见故障、UI布局

  4) 建议:不影响使用的瑕疵或更好的实现

  优先级:

  1) 最高优先级:立即修复,停止进一步测试

  2) 次高优先级:在产品发布前必须修复

  3) 中等优先级:如果时间允许应该修复

  4) 最低等优先级:可能会修复,但是也能发布

  软件错误跟踪管理

  如何处理测试中发现的错误,将直接影响到测试效

  果。只有正确、迅速、准确的处理这些错误,才能

  消除软件错误,保证要发布的软件符合需求设计的

  目标。

  •目前已有的错误跟踪管理软件包括compuware公司的

  trackrecord软件,mozilla公司的buzilla软件。当然也

  可根据自己开发缺陷跟踪软件。

  •错误流程管理原则

  1)验证发现的错误是否是真的错误,书写的测试步

  骤是否准确,可以重复

  2)每次对错误的处理都要保留处理信息,包括处理

  姓名、时间、处理方法、处理意见、bug状态

  3)拒绝或延期处理错误不能由程序员单方面决定,

  应该由项目经理、测试经理和设计经理共同决定

  4)错误修复后必须由报告错误的测试人员验证,确

  认已经修复

  1.6 测试方法

  •任何工程产品都可以使用以下的两种方法进行测试:

  1)已知产品的功能设计规格,可以进行测试证明每个实现了的

  功能是否符合要求。(黑盒测试)

  2)已知产品的内部工作过程,可以通过测试证明每种内部操作

  是否符合设计规格的要求,所有内部成分是否已经过检查。

  (白盒测试)

  •黑盒测试法把程序看成一个黑盒子,完全不考虑程序内部结构和处理过程。

  •黑盒测试是在程序接口进行测试,它只是检查程序功能是否按照规格说明

  书的规定正常使用。

  •黑盒测试又称功能测试,数据驱动测试或基于规格说明的测试,也可称为用户测试。

  •典型黑盒测试方法

  1)等价类划分

  2)因果图

  3)边界值分析

  •黑盒主要是为了发现以下几类错误:

  1)是否有不正确或遗漏了的功能?

  2)在接口上,输入能否正确的接受?能否输出正确的结果?

  3)是否有数据结构错误或外部信息(例如数据文件)访问错误?

  4)性能上是否能够满足要求?

  5)是否有初始化或终止性错误?

  •白盒测试的前提是可以把程序看成装在一个透明的白

  盒子里面,也就是完全了解程序机构和处理过程,这

  种方法按照程序内部逻辑测试程序,检验程序中每条

  通路是否按预定要求正确工作。

  •白盒测试又称为结构测试、逻辑驱动测试或基于程序

  本身的测试,也可成为程序员测试

  •典型白盒测试方法

  1)静态分析

  2)动态测

  •使用白盒测试方法,主要想对程序模块进行如下的检查:

  1)对程序模块的所有独立的执行路径至少测试一次

  2)对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一次

  3)在循环的边界和运行界线内执行循环体

  4)测试内部数据结构的有效性

上一篇:HTML5工具初识之网页编辑器

下一篇:微服务管理--分布式与单点故障

QQ技术交流群

千锋软件测试官方①群
858327674

加入群聊