文档库 最新最全的文档下载
当前位置:文档库 › 软件测试基础知识点汇总

软件测试基础知识点汇总

软件测试基础知识点汇总
软件测试基础知识点汇总

一、测试基础

1.软件测试的定义

●1983年,IEEE提出的软件工程标准术语,软件测试定义如下:

“使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”。

图示:

缺点:只强调动态测试,忽略了静态测试。

●G..J.Myers认为:1)程序测试是为了发现错误而执行程序的过程;

2)好的测试方案是极可能发现迄今为止尚未发现的错误的

测试方案;

3)成功的测试是发现了至今为止尚未发现的错误的测试。

缺点:只强调了了发现错误,而忽视了缺陷。

以上两种定义都忽略了性能和效率测试。

2.软件测试的含义(重在理解):

●软件测试是一个过程,包含若干活动,运行软件进行测试只是活动之一,它

也包含一些不运行软件的活动

●进行软件测试可以运用人工方式也可以借助于工具

●进行软件测试可以运行软件也可以不运行软件

●软件测试的目的是发现软件错误和不足(缺陷),观察角度要全面

3.软件测试的目的:

证明(表明软件能够工作)检测(发现错误)预防(管理质量)

测试目的之证明:

●获取系统在可接受风险范围内可用的信心;

●尝试在非正常情况和条件下的功能和特性;

●保证一个工作产品是完整的并且可用或者可被集成。

测试目的之检测:

●发现缺陷、错误和系统不足;

●定义系统的能力和局限性;

●提供组件、工作产品和系统的质量信息。

测试目的之预防:

●澄清系统的规格和性能;

●提供预防或减少可能制造错误的信息;

●在过程中尽早检测错误;

●确认问题和风险,并且确认解决这些问题和风险的途径。

4.软件测试的主要工作:

●检视代码、评审开发文档

●进行测试设计、写作测试文档(测试计划、测试方案、测试用例等)

●搭建测试环境、执行测试,发现软件缺陷,提交缺陷报告,并确认缺陷最终

得到了修正

●通过测试度量软件的质量

5.软件危机的表现:

随着软件复杂度增加,对软件质量的要求越来越高,软件成本增加,投入比较大,系统可用度很低,进度大量滞后。

●由于缺乏大型软件开发经验和软件开发数据积累,开发工作计划很难制定;

●开发早期需求分析不够明确,造成开发后期矛盾集中暴露;

●不遵循开发规范,开发文档不完整,软件难以维护;

●缺乏严密有效的软件质量检测手段,交付给用户的软件质量差。

6.软件危机的后果:

●软件质量不高,很难稳定;质量方面

●软件项目延期,进度无法控制;进度方面

●成本增加,无法控制预算。成本方面

7.软件危机的根源:

●根据摩尔定律,硬件发展很快,相应对软件系统的期望越来越高;

●软件系统复杂程度增大,开发难度增大,个人已经很难完成开发工作,团队

协作对软件需求的理解和沟通出现问题;

●软件开发是人的智力活动,无法用已有的产业工程方法来组织管理。

软件生命周期(基于瀑布模型)各个阶段:

8.为什么要划分生命周期:

●把一个混沌的研发过程清晰化;

●便于监控和管理;

●每个阶段都会有成果物输出,把智力活动成果固化下来,易于维护;

●人员利用更加合理。

9.软件生命周期各个阶段具体工作内容:

计划:

●确定软件开发总目标;(需要研发什么?)

●给出软件的功能、性能、可靠性以及接口等方面的设想;(需要产品做什么?)●研究完成该项目的可行性(包括技术可行性和成本可行性),探讨问题解决

方案;(是否可行?)

●对可供开发使用的资源、成本、可取得的效益和开发进度作出估计;(多长

时间能够完成?耗费人力、物力?取得效益?)

●制定完成开发任务的实施计划。(如何完成?步骤如何?)

需求分析:

对开发的软件进行详细的定义,由需求分析人员和用户共同讨论决定,哪些需求是可以满足的,并且给予确切的描述,写出软件需求说明书SRS(Software Requirement Specification)。(把用户的需求细化成可以用来设计的需求规格说明书SRS)

软件研发的类型不同,需求的来源也不同,需求分析中的“用户”针对的具体对象也不同。

●针对产品的软件研发

需求来源:市场调研

用户:市场调研人员

特点:自己想研发什么,自己就来研发

●针对项目的软件研发

需求来源:客户要求

用户:实际的用户

特点:别人想研发什么,我们帮着研发

设计:

设计是软件工程的技术核心,这个阶段需要完成相应的设计说明书,设计原则是:高内聚,低耦合(每个模块功能单一,模块间的联系简单)。

●概要设计阶段需要完成概要设计说明书HLD(High Level Design),把每项需

求转换成相应的体系结构,每一部分是功能明确的模块;(每个功能设计一个模块)

●详细设计阶段需要完成详细设计说明书LLD(Low Level Design),对每个模块

要完成的工作进行具体的描述。(实现每个模块,写函数实现)

编码:

把软件设计转换成计算机可以接受的程序,即写成以某个程序设计语言表示的源程序清单,使用RDBMS工具建立数据库。(写代码,建立相应数据库)

测试:

测试是检验软件是否符合客户需求,达到质量要求,一般由独立的小组执行,测试工作分为:

●单元测试(参照LLD)

●集成测试(参照HLD)

●系统测试(参照SRS)

运行和维护:

这个阶段将软件交付用户投入正式使用,以后便进入维护阶段,可能有多种原因需要对它进行修改,如软件错误、系统软件升级、增强软件功能、提高性能等。

10.软件研发相关要素:

人员、过程、工具。(研发既包括开发也包括测试)

●只有合适的人员借助合适的工具经过合适的过程才能研发出高质量的软件。

●工具为人员和过程服务,起辅助作用,起关键作用的是人员和过程。11.软件项目组人员组成:

项目组一般由项目经理领导并负责制定项目计划,分配任务。项目组一般由下列人员参与:

●分析人员;

●设计人员;

●开发人员;

●测试人员;从技术方面保证软件质量

●配置管理人员;

●SQA(Software Quality Assurance)质量保证人员。SQA独立与其他部门,起监

督作用,从流程方面保证软件质量。

常见项目组架构:

软件开发组:包括开发经理、分析人员、设计人员、开发人员。

软件测试组:包括测试经理、测试人员。

配置管理组:包括配置经理、配置管理员CMO(Configuration Management Officer) 12.基本软件研发流程:

●瀑布模型

优点:1)划分阶段,阶段清晰;

2)各阶段都有成果物输出;

3)人员分配合理。

缺点:1)测试介入过晚,发现缺陷过晚;

2)修复缺陷的成本大。

瀑布模型适用于稳定的项目(稳定的版本)和增量的开发。

●螺旋模型

优点:迭代、引入了风险分析;

缺点:复杂度大,成本高,研发周期长,依赖于风险分析,风险分析必须准确、充分。

螺旋模型适用于预研、人事安全的产品,如金融、军事、航天等。而且必须配备一个风险分析专家。

●RUP流程(Rational Unified Process)统一软件开发过程(商用)

该流程针对于面向对象的设计。

优点:1)子系统相对比较独立;

2)对需求进行了严格的管理跟踪;

3)把复杂的系统分解成比较简单的系统(逐步实现)缺点:1)对需求分析人员能力要求较高;

2)周期长、成本高;

3)对系统架构人员能力要求非常高。

该流程适用于大型项目,如ERP、CRM等。

●IPD流程(Integrated Product Development)集成产品研发流程(IBM研发)

该流程针对以产品为目标的软件公司及涉及到软硬件结合的产品。

优点:1)把各个部门间的流程集成在一起,消除了部门间的壁垒;

2)端到端的研发活动;

3)把每个项目都作为一项投资来看。

13.软件研发的几个重要过程:

需求管理、配置管理、缺陷管理、同行评审。

14.测试与调试的差别:

1)测试有目的性,有预期的输出;调试是没有目的性的,从未知的条件开始,操作很随机,结束的过程不可预计。

2)测试由测试人员进行;调试由开发人员进行。

3)先通过测试发现错误或者缺陷,然后开发人员再通过调试去定位引发错误或者缺陷的根源。

4)测试是一个过程,可重复进行;调试只是一次性的行为,没有可重复性。

15.软件缺陷和Bug的概念:

●软件缺陷:既指静态存在于软件工作产品(文档、代码)中的错误,也指软

件运行时由于这些错误被激发引起的和软件产品预期属性的偏离现象。

●Bug:代码中的缺陷。有时也被泛指因软件产品内部的缺陷引起的软件产品

最终运行时和预期属性的偏离。

●软件错误、软件缺陷、Bug在实际工作中可以认为一样。

16.引入缺陷的原因:(原因有很多,主要靠理解)

1)需求分析出现偏差;

2)设计过程中缺乏有效的沟通或者没有沟通,以致与对需求的理解出现偏差或者设计人员设计能力低;

3)软件复杂度越来越高;

4)编码环节产生错误(程序错误或者开发人员对设计的理解不一致);

5)需求不断变更;

6)项目进度的压力;

7)不重视开发文档;

8)软件开发工具本身隐藏的问题;

9)白盒测试可能修改代码引入缺陷。

17.缺陷分类:

●遗漏:规定的或预期的需求未体现在产品中(可能未将规格说明书全面实现,

也可能需求分析阶段就遗漏了需求);

●错误:未将规格说明书正确实现(可能设计错误,也可能是编码错误);

●额外的实现:规格说明书并未规定的需求被纳入产品,得到实现。18.缺陷放大类型:

随着级数的增加,2/3的缺陷后期会被放大。

在前期尽早去发现缺陷,使得缺陷不会在后期被放大。

解决办法:

1)尽早参与评审,与用户、分析人员、设计人员、编码人员沟通交流;

2)测试准备工作尽早开展;

3)尽早预防,做缺陷分析。

如何选择模型:从质量、成本、进度的方面考虑。

二、软件质量

1.质量的定义

质量概念的引入:实体

●产品:手机、MP3、汽车、ERP软件、桌子……

●服务:酒店、出租车、快递、培训、美容……

ISO关于质量的定义表示如下:

一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求。而质量就是实体基于这些特性满足需求的程度。(实体特性满足用户需求的程度。)

2.软件质量的三个层次

●内部质量:从产品立项到产品交付用户之间产生的所有工作产品的质量。目

标是开发者定义的,并且可以验证,即看产品是不是在做让它做的事情。(符合需求规格)

衡量标准:需求规格说明书SRS(显式需求和隐式需求)。

●验收质量:是用户来评价,衡量标准是显式需求。目标是客户定义的,即判

断我们是不是在做我们需要作的事情。(符合用户显式需求)

●使用质量:用户依据真实的需求(包含显式需求和隐式需求)在真实的使用

过程中进行评价。(符合用户实际需求)

3.影响软件质量的因素:

●流程

●技术

●组织

以上三方面是影响软件质量的铁三角,软件质量的提高应该是一个综合的因素,需要从每个方面进行改进,同时还需要兼顾成本和进度。

3.1流程对质量的影响

什么是流程?

它说明了一系列活动及活动间的执行关系。

什么是过程?

过程是方法论、更为详细的流程,它包含很多因素:

●角色:涉及到活动中的人;

●职责:角色在活动中应该担当的责任或任务;、

●入口准则[入口条件,入口标准]:开始某项活动所必须满足的条件或环境;

●输入:开始某项活动时多必须参考的资料或需要加工的原材料;

●活动:构成过程的一系列动作(活动);

●输出:完成某项活动所能够交付的工作成果;

●出口准则[出口条件,出口标准]:退出某项活动所必须满足的条件或环境;

●培训:完成某项动所需要的技术支持;

●方法/工具:完成某项活动所需要的方法/工具;

●模板:输出成果必须满足、符合的标准;

●查检表(Checklist):QA的工作基础;

●度量(Measurement):采集一些数据进行度量。

流程对质量的影响:

1)使得不可见的生产过程变的可见;

2)分解质量目标到各个活动中去,使得质量目标易于实现并控制;

3)使得整个生产效率提高,减少内耗,节约成本;

4)资源分配合理

5)流程可以推动人做事情。

3.2技术对质量的影响

什么是技术?技术就是科学的方法论。

流程与技术的关系:

1)只有流程、没有技术,不可能进行现代化软件开发;

2)只有技术、没有流程,不可能研发出高质量的软件产品。

3.3组织对软件质量的影响

什么是组织?组织约等于高层领导。

组织对产品质量不产生直接影响,是对流程和技术产生直接影响,从而间接影响到产品质量。

组织对流程的影响:(规范、标准,静态,只有通过执行才能起作用)

1)当流程的执行遇到阻碍或者困难时,组织应予以支持和解决,以保证流程被顺利执行。

2)组织应确保流程的规范化、制度化,从而保证其执行的效力。

组织对技术的影响:

1)组织应确保有能力的人去做相应的事情(调动工作积极性)。

2)组织是否注重建立企业财富库(知识库、案例库),做技术知识的积累。4.软件质量管理体系

ISO9000:2000版:通用的质量管理体系(QMS),各行业都适用,关注质量。(企业内)

CMMI/CMM:严格将焦点对准软件。

六西格玛:通用的,除了质量外,还关注成本、进度(企业外)

ISO9000:2000核心标准:

●ISO9000阐明了ISO9000:2000版标准据以制定的管理理念和原则,确定了新

版标准的知道思想和理论基础,规范和确定了新版ISO9004族标准所使用的概念和术语。

●ISO9001标准对组织质量管理体系必须履行的要求做了明确的规定,是对产

品要求的进一步补充。

●ISO9004是组织进行持续改进的指南标准。

八项质量管理原则:

软件测试技术知识点整理

一、软件测试的定义 软件测试是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。 1.软件测试与调试的区别 (1)测试是为了发现软件中存在的错误;调试是为证明软件开发的正确性。 (2)测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。(3)测试是有计划的,需要进行测试设计;调试是不受时间约束的。 (4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理过程。 (5)测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。 (6)测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。 (7)大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。 2.对软件测试的理解 软件测试就是说要去根据客户的要求完善它.即要把这个软件还没有符合的或者是和客户要求不一样的,或者是客户要求还没有完全达到要求的部分找出来。 (1)首先要锻炼自己软件测试能力,包括需求的分析能力,提取能力,逻辑化思想能力,即就是给你一个系统的时候,能够把整个业务流程很清晰的理出。 (2)学习测试理论知识并与你锻炼的能力相结合。 (3)想和做。想就是说你看到任何的系统都要有习惯性的思考;做就是把实际去做练习,然后提取经验。 总结测试用例,测试计划固然重要,但能力和思想一旦到位了,才能成为一名合格的软件测试工程师。 二、软件测试的分类 1.按照测试技术划分 (1)白盒测试:通过对程序内部结构的分析、检测来寻找问题。检查是否所有的结构及逻辑都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。--结构测试 (2)黑盒测试:通过软件的外部表现来发现错误,是在程序界面处进行测试,只是检查是否按照需求规格说明书的规定正常实现。--性能测试 (3)灰盒测试:介于白盒测试与黑盒测试之间的测试。

最新软件测评师考试基础知识名师精编资料汇编

软件评测基础知识 软件测试基本概念 软件质量与软件测试:软件测试是软件质量保证工作的一个重要环节。软件测试和软件质量保证是软件质量工程的两个不同层面的工作。软件测试只是软件质量保证工作中的一个重要环节。质量保证(QA)的工作是通过预防、检查与改进来保证软件的质量,它所关注的是软件质量的检查和测量。软件测试所关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。 软件测试定义:软件测试就是在软件投入运行前对软件需求分析、软件设计规格说明和软件编码进行的查错(包括代码执行活动与人工活动)。软件测试是为了发现错误而执行程序的过程。软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序的错误。是在软件投入运行前,对软件需求分析、软件设计规格说明和软件编码的最终复审,是软件质量保证的关键步骤。 软件测试目的:(1)测试是一个为了寻找错误而运行程序的过程;(2)一个好的测试用例是指很可能找到迄今为止未发现的错误的用例;(3)一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。 软件测试的目标是能够以耗费最少时间与最小工作量找出软件系统中潜在的各种错误与缺陷。 测试只能证明程序中错误的存在,但不能证明程序中没有错误。 软件测试原则:(1)尽早地并不断地进行软件测试;(2)程序员或程序设计机构应避免测试自己设计的程序;(3)测试前应当设定合理的测试用例;(4)测试用例的设计不仅要有合法的输入数据,还要有非法的输入数据;(5)在对程序修改之后要进行回归测试;(6)充分注意测试中的群集现象;(7)妥善保留测试计划、全部测试用例、出错统计和最终分析报告,并把它们作为软件的组成部分之一,为软件的维护提供方便;(8)应当对每一个测试结果做全面检查;(9)严格执行测试计划,排除测试的随意性。 软件测试对象:软件的测试不仅仅是程序的测试,软件的测试应贯穿于整个软件生命同期中。在软件定义阶段产生的可行性报告、项目实施计划、软件需求说明书或系统功能说明书,在软件开发阶段产生的概要测试说明书、详细设计说明书,以及源程序等都是软件测试的对象。 软件测试过程模型:V模型、W模型、H模型。 软件测试模型的使用:在实际软件测试的实施过程中,应灵活地运用各种模型的优点,通常可以在W 模型的框架下,运用H模型的思想进行独立的测试。当有变更发生时,按X模型和前置模型的思想进行处理。同时,将测试和开发紧密结合,寻找恰当的就绪点开始测试,并反复进行迭代测试,以达到按期完成预定的目标。 软件问题分类:软件错误、软件缺陷、软件故障、软件失效。 软件测试类型: 按开发阶段分:单元测试、集成测试、确认测试(有效性测试)、系统测试 确认测试、验收测试 按测试实施组织分:开发方测试(验证测试或alpha测试)、用户测试(beta)、第三方测试(独立测试) 按测试方式分:动态测试、静态测试 按测试技术分:白盒测试、黑盒测试、灰盒测试 软件测试过程:用黑盒法设计基本的测试方案,再利用白盒法补充一些必要的测试方案。可以用以下策略结合各种方法: (1)在任何情况下都应该使用边界值分析的方法; (2)必要时用等价划分法补充测试方案; (3)必要时用错误推测法补充测试方案; (4)如果在程序的功能说明中含有输入条件的组合,最好在一开始就用因果图法,然后再按以上(1)、(2)、(3)步进行。 (5)对照程序逻辑,检查已设计出的设计方案。可以根据对程序可靠性的要求采用不同的逻辑覆盖标

软件测试基本知识

软件测试基本知识 1、测试的定义 软件测试是软件工程过程的一个重要阶段,是在软件发布前对软件开发各阶段产品的最终检查,是为了保证软件开发产品的正确性、完全性和一致性而检测软件错误、修正软件错误的过程。 软件测试是: ①程序测试是为了发现错误而执行程序的过程; ②测试是为了证明程序有错,而不是证明程序无错误; ③一个好的测试用例是在于它能发现至今未发现的错误; ④一个成功的测试是发现了至今未发现的错误的测试。 软件开发的目的是开发出实现用户需求的高质量、高性能的软件产品,而软件测试是以检查软件功能和其他非功能特性为核心,是软件质量保证的关键,也是成功实现软件开发目标的重要保障。 2、测试的种类 从测试方法角度,测试分为: 1.黑盒测试:是功能测试、数据驱动测试或基于规格说明的测试。在不考虑程序内部结构和内部特性的情况下,测试者依据该程序功能上的输入输出关系,或是程序的外部特性来设计和选择测试用例,推断程序编码的正确性。 2.白盒测试:是结构测试、逻辑驱动测试或基于程序的测试。测试者熟悉程序的内部结构,依据程序模块的内部结构来设计测试用例,检测程序代码的正确性 从测试发生的时间顺序,测试分为: 1.单元测试:是对软件基本单元的测试 2.集成测试:对由个模块组装而成的系统进行测试,检查各模块间的接口和通信 3.验收测试:验证软件的功能和性能及其它特性是否与用户的要求一致。 4.系统测试:是将通过验收测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列确认测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。 在MSF中,测试分为2大类:

系统集成知识点归纳总结

系统集成知识点归纳总结 软件工程:需求分析、设计、编码和测试 软件需求的分析方法(功能需求,非功能需求,设计约束) 1)结构化分析(Structured Analysis):是面向数据流的分析方法,(分层的)数据流图,数据字典,描述加工逻辑的结构化语言判定表判 定树是SA的工具 数据流图描述了对数据的处理流程,用来建立系统的逻辑模型 数据字典在需求分析阶段建立,通常作为数据流图的补充说明 数据字典最重要的作用是作为分析阶段的工具。在结构化分析,数据字典的作用是给数据流图上每个成分加以定义和说明 E-R 通常在需求分析后建立的实体关系模型,可用于描述数据流图数据存储及其之间的关系 需求分析阶段会用到层次方图,用例图,IPO图,不会用到N-S图IPO图:模块的输入输出,处理内容,模块的内部书库和调用关系N-S盒图,程序流程图,PAD图用于表示软件模块的执行过程,而E-R 图不适用 软件需求说明书是需求分析阶段最后的成果之一,包含数据描述功能描述,性能描述,不包含系统结构描述 SRS(Software Requirements Specification), 软件需求说明书 的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共

同的理解,使之成为整个开发工作的基础。包含硬件、功能、性能、输 入输出、接口需求、警示信息、保密安全、数据与数据库、文档和法 规的要求 一个软件系统的生命周期包含可行性分析和项目开发计划,需求分析,设计(概要设计和详细设计),编码,测试维护 程序流程设计在详细设计和实现阶段,软件的总体结构设计在概要设计,并在概要设计说明说进行说明 详细设计:程序流程设计,代码设计,数据库设计,人机界面设计 软件设计包软件的结构设计,数据设计,接口设计和过程设计 结构设计:定义软件系统各主要部件之间的关系 软件测试的对象包括源程序,目标程序,数据及相关文档 软件的完全测试是不可能的原因:输入输出量太大,输出结果太多以及路径组合太多,测试依据没有同统一的标准 软件测试可以分为单元测试,集成测试,(确认测试),系统测试,验收测试 白盒测试:根据程序内部结构进测试,对程序的所有逻辑分之进行测试,逻辑覆盖属于典型的白盒测试,,在进行动态测试时,需要测试软件内部的结构和处理过程,不需要测试产品功能;在进行静态测试时有静态结构分析法,静态质量度量法,代码检查法

软件测试知识点总结

软件测试知识点总结 第一次课10.7软件测试概述 一软件测试定义:使用人工或者自动的手段来运行或测定它是否满足规定的需求,或弄预期结果与实际结果之间的差别。 二软件测试的分类 1.按照开发阶段划分 a)单元测试:模块测试,检查每个程序单元嫩否正确实现详细设计 说明中的模块功能等。 b)集成测试:组装测试,将所有的程序模块进行有序、递增的测试, 检验程序单元或部件的接口关系 c)系统测试:检查完整的程序系统能否和系统(包括硬件、外设和 网络、系统软件、支持平台等)正确配置、连接,并满足用户需 求。 d)确认测试:证实软件是否满足特定于其用途的需求,是否满足软 件需求说明书的规定。 e)验收测试:按项目任务或合同,供需双方签订的验收依据文档进 行的对整个系统的测试与评审,决定是否接受或拒收系统。 2.按照测试技术划分 白盒测试:通过对程序内部结构的分析、检测来寻找问题。检查是否所有的结构及逻辑都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。--结构测试 黑盒测试:通过软件的外部表现来发现错误,是在程序界面处进行

测试,只是检查是否按照需求规格说明书的规定正常实现。 灰盒测试:介于白盒测试与黑盒测试之间的测试。 3 按照测试实施组织划分:开发方测用户测试第三方测试 4 是否使备测软件运行:静态测试动态测试。 课后作业:1.软件测试与调试的区别? (1)测试是为了发现软件中存在的错误;调试是为证明软件开发的正确性。 (2)测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。 (3)测试是有计划的,需要进行测试设计;调试是不受时间约束的。(4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理过程。 (5)测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。 (6)测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。 (7)大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。 2.对软件测试的理解? 软件测试就是说要去根据客户的要求完善它.即要把这个软件还

软件测试基础知识汇总

黑盒测试主要是为了发现以下错误: 1、是否有不正确或遗漏的功能? 2、在接口上,输入能否正确地接受?能否输出正确的结果? 3、是否有数据结构错误或外部信息(例如数据文件)访问错误? 4、性能上是否满足要求? 5、是否有初始化或终止性错误? 黑盒测试用例方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交实验设计法、功能图法。 等价类划分法:把程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据作为测试用例,每一类的代表性数据在测试的作用等价于这一类中的其他值。 边界值分析法:对输入或输出的边界值进行测试,通常边界值分析法是作为等价类划分的补充,其测试用例来自等价类的边界。 错误分析法:基于经验和直觉推测程序中可能存在的错误,从而对有针对性的设计测试用例的方法。 因果图法:利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 判定表驱动法:判定表是分析和表达多逻辑条件下执行不同操作的。 正交实验法:从大量的数据中挑选适量的,有代表性的点,从而合理地安排实验的一种科学测试方法。 功能图法:由状态迁移图和布尔函数组成,状态迁移图用状态和迁移来描述,一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变,同时要依靠判定表或因果图表示的逻辑功能。 折叠LR函数: lr_start_transaction 为性能分析标记事务的开始 lr_end_transaction 为性能分析标记事务的结束 lr_rendezvous 在Vuser 脚本中设置集合点 lr_think_time 暂停Vuser 脚本中命令之间的执行 lr_end_sub_transaction 标记子事务的结束以便进行性能分析

软件测试基础知识总结

一、什么是软件测试? 1979年,myer:软件测试就是为了发现错误而执行程序或系统的过程。 1983年,IEEE:软件测试即使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 二、现代软件测试活动的内容? 制定测试计划、设计测试用例、实施测试、提交缺陷报告、测试总结 三、软件测试的目的? GrenfordJ.Myers在《The Art of Software Testing》一书中的观点: 1、测试是程序的执行过程,目的在于发现错误 2、一个成功的测试用例在于发现至今未发现的错误 3、一个成功的测试是发现了至今未发现的错误的测试 简单的说,测试的根本目的就是确保最终交给用户的产品符合用户的需求,在产品交给用户之前尽可能多的发现并改正问题。 四、测试一般要达到的目标? 确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明; 确保产品满足性能和效率的要求; 确保产品是健壮的和适应用户环境的。 五、软件测试分类? 1、按测试策略分类: a静态测试与动态测试 静态测试 定义:不运行被测程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。 Ps:通过分析或检查源程序的文法、结构、过程、接口等来检验程序的正确性,找出缺陷和可疑之处,例如不匹配的参数、不适当的分支嵌套和循环嵌套、未使用过的变量、空指针的引用等;可采用人工和软件工具进行;静态测试工具的代表:telelogic公司的logiscope 软件、PR公司的PRQA软件等。 静态测试特点: 不必动态地运行程序,也不必进行测试用例设计和结果判断等工作; 可由人工进行,充分发挥人得逻辑思维优势; 不需要特别的条件,容易展开。 静态测试要点: 代码审查(code inspection或code review)、代码走查(walkthrough)、桌面检查、技术评审(软件需求分析和设计评审)、静态分析(使用软件工具,包括控制流分析、数据流分析、接口分析和表达式分析) 动态测试 定义:实际运行被测程序,输入相应的测试实例,检查运行结果和预期结果的差异,判断执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。 组成:构造测试实例、根据测试实例运行程序、分析程序的输出结果。 主要方法:黑盒测试和白盒测试。 动态测试特点: 实际运行被测试程序,取得程序运行的真实情况、动态情况,并进行分析; 必须生成测试数据来运行程序,测试质量依赖于测试数据;

软件测试基础知识整理

软件测试基础教程 测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的稳定化阶段。 一、测试的分类: 从测试方法的角度分为: (1)手工测试:不使用任何测试工具,根据事先设计好的测试用例来运行系统,测试各功能模块。 (2)自动化测试:利用测试工具,通过编写测试脚本和输入测试数据,自动运行测试程序。目前最常用的自动化测试工具是基于GUI的自动化测试工具,基本原理都是录制、回放技术。 > 从整体的角度分为: (1)单元测试:是针对软件设计的最小单位—程序模块,进行正确性检验的测试工作。一般包括逻辑检查、结构检查、接口检查、出错处理、代码注释、输入校验、边界值检查。单元测试的依据是系统的详细设计;一般由项目组开发人员自己 完成。 (2)集成测试:在单元测试的基础上,将所有模块按照设计要求组装进行测试。一般包括逻辑关系检查、数据关系检查、业务关系检查、模块间接口检查、外部接口检查。 (3)系统测试:系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。 (4)确认测试:模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。 从测试原理上分为: . (1)白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。 (2)黑盒测试:是通过使用整个软件或某种软件功能来严格地测试,而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时, 把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它 只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。 黑盒测试方法主要有等价类划分、边界值分析、因—果图、错误推测法。 A、等价类划分:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子 集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试 用例设计方法。 B、边界值分析:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是 发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错 误。 C、错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的 方法。错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特 殊情况,根据他们选择测试用例。例如,在单元测试时曾列出的许多在模块中常见的 错误。以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据 和输出数据为0的情况。输入表格为空格或输入表格只有一行。这些都是容易发生错 误的情况。可选择这些情况下的例子作为测试用例。

软件测试复习知识点

软件测试复习知识点 熟练掌握: 1.面向对象的单元测试中基于服务的测试策略 2.向对象中的基于状态测试的策略 3.软件测试与软件开发的关系 狭义定义测试:比如“程序设计”与“测试”之间的关系,传统上总以为程序设计在先,测试在后。这种专指测试程序代码,定义在编码之后的“测试”是一种狭义定义的测试。 广义定义测试:这种测试活动可以在软件开发生命周期的任何阶段进行。但是,随着开发不断地进行,越到后续阶段,找出错误并改正它的代价会越大 全新的软件开发模式:以测试驱动软件开发。软件测试贯穿了整个软件开发过程,软件开发生命周期的各个阶段中都少不了相应的测试,这种思想与软件质量保证的出发点是一致的。 4.系统测试的概念及其分类; 系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案。 1.用户层:①用户支持测试;②用户界面测试;③可维护测试;④ 安全性测试; 2.应用层:①性能测试;②系统可靠性、稳定性测试;③系统兼容 性测试;④系统组网测试;⑤系统安装升级测试; 3.功能层: 4.子系统层; 5.协议/指标层; 5.常见的黑盒测试用例的设计方法 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。 ?在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完

软件测试人员6年工作经验总结

1、分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。”其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这个道理有些体会吧。但我相信这一点也很重要:“重要的道理明白太晚将抱憾终生!”所以放在每一条,让刚刚毕业的朋友们早点看到哈! 2、一定要确定自己的发展方向,并为此目的制定可行的计划。不要说什么,“我刚毕业,还不知道将来可能做什么?”,“跟着感觉走,先做做看”。因为,这样的观点会通过你的潜意识去暗示你的行为无所事事、碌碌无为。一直做技术,将来成为专家级人物?向管理方向走,成为职业经理人?先熟悉行业和领域,将来自立门户?还是先在行业里面混混,过几年转行做点别的?这很重要,它将决定你近几年、十年内“做什么事情才是在做正确的事情!”。 3、软件开发团队中,技术不是万能的,但没有技术是万万不能的!在技术型团队中,技术与人品同等重要,当然长相也比较重要哈,尤其在MM比较多的团队中。在软件项目团队中,技术水平是受人重视和尊重的重要砝码。无论你是做管理、系统分析、设计、编码,还是产品管理、测试、文档、实施、维护,多少你都要有技术基础。算我孤陋寡闻,我还真没有亲眼看到过一个外行带领一个软件开发团队成功地完成过软件开发项目,哪怕就一个,也没有看到。倒是曾经看到过一个“高学历的牛人”(非技术型)带一堆人做完过一个项目,项目交付的第二天,项目组成员扔下一句“再也受不了啦!”四分五裂、各奔东西。那个项目的“成功度”大家可想而知了。 4、详细制定自己软件开发专业知识学习计划,并注意及时修正和调整(软件开发技术变化实在太快)。请牢记:“如果一个软件开发人员在1、2年内都没有更新过自己的知识,那么,其实他已经不再属于这个行业了。”不要告诉自己没有时间。来自时间管理领域的著名的“三八原则”告诫我们:另外的那8小时如何使用将决定你的人生成败!本人自毕业以来,平均每天实际学习时间超过2小时。 5、书籍是人类进步的阶梯,对软件开发人员尤其如此。书籍是学习知识的最有效途径,不要过多地指望在工作中能遇到“世外高人”,并不厌其烦地教你。对于花钱买书,我个人经验是:千万别买国内那帮人出的书!我买的那些家伙出的书,100%全部后悔了,无一本例外。更气愤的是,这些书在二手市场的地摊上都很难卖掉。“拥有书籍并不表示拥有知识;拥有知识并不表示拥有技能;拥有技能并不表示拥有文化;拥有文化并不表示拥有智慧。”只有将书本变成的自己智慧,才算是真正拥有了它。 6、不要仅局限于对某项技术的表面使用上,哪怕你只是偶尔用一、二次。“对任何事物不究就里”是任何行业的工程师所不应该具备的素质。开发Windows应用程序,看看Windows程序的设计、加载、执行原理,分析一下PE文件格式,试试用SDK开发从头开发一个Windows应用程序;用VC++、Delphi、Java、.Net开发应用程序,花时间去研究一下MFC、VCL、J2EE、.Net它们框架设计或者源码;除了会用J2EE、JBoss、Spring、Hibernate等等优秀的开源产品或者框架,抽空看看大师们是如何抽象、分析、设计和实现那些类似问题的通用解决方案的。试着这样做做,你以后的工作将会少遇到一些让你不明就里、一头雾水的问题,因为,很多东西你“知其然且知其所以然”! 7、在一种语言上编程,但别为其束缚了思想。“代码大全”中说:“深入一门语言编程,不要浮于表面”。深入一门语言开发还远远不足,任何编程语言的存在都有其自身的理由,所以也没有哪门语言是“包治百病”的“灵丹妙药”。编程语言对开发人员解决具体问题的思路和方式的影响与束缚的例子俯拾皆是。我的经验是:用面对对象工具开发某些关键模块时,为什么不可以借鉴C、C51、汇编的模块化封装方式?用传统的桌面开发工具(目前主要有VC++、Delphi)进行系统体统结构设计时,为什么不可以参考来自

软件测试基础知识

软件测试基础知识(摘自《软件评测师教程》) 什么是软件测试? RE:“软件测试”的经典定义是在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。 什么是软件质量? RE:在1991年软件产品质量评价国际标准ISO 9126中定义的“软件质量”是:软件满足规定或潜在用户需求特性的综合。 到1999年,软件“产品评价”国际标准ISO 14598经典的“软件质量”定义是:软件特性的总和,软件满足规定或潜在用户需求的能力。 软件测试的目的是什么? RE:测试的目的,是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。 同时,测试是以评价一个程序或者系统属性为目标的活动,测试是对软件质量的度量与评估,以验证软件的质量满足用户的需求的程度,为用户选择与接受软件提供有力的依据。 软件测试的原则是什么? RE:A 所有的软件测试都应追溯到用户需求。 B 应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。 C 完全测试是不可能的,测试需要终止。 D 测试无法显示软件潜在的缺陷。 E 充分注意测试中的群集现象。 F 程序员应避免检查自己的程序。 G 尽量避免测试的随意性。 什么是黑盒测试? RE:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。 黑盒测试法注重于测试软件的功能需求,主要试图发现下列积累错误::. A 功能不正确或遗漏; B 界面错误; C 数据库访问错误; D 性能错误; E 初始化和终止错误。 什么是测试用例? RE:测试用例就是设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的执行结果。测试用例是将测试行为具体量化的方法之一。 使用测试用例的好处是什么? RE:A 在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。 B 测试用例的使用令软件测试的实施重点突出、目的明确。 C 在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度,缩短项目周 期。 D 功能模块的通用化和复用化使软件易于开发,而测试用例的通用化和复用化则会使软件测试易 于开展,并随着测试用例的不断精化其效率也不断攀升。

软件测试官方(最终版)

知识点:二八原则 1、为了提高测试的效率,应该( D) A 随机地选取测试数据 B 取一切可能的输入数据作为测试数据 C 在完成编码以后制定软件的测试计划 D 选择发现错误的可能性大的数据作为测试数据 2、经验表明,在程序设计中,某模块与其他模块相比,若该模块已发现并改正的错误数目较多,则该模块中残留的错误与其他模块相比,通常应该( B ) A 较少 B较多 C相似 D不确定 3、发现错误多的模块,残留在模块中的错误也多。(√) 知识点:软件测试目的、测试对象和软件测试人员职责 1、软件测试的目的是( B )。 A 评价软件的质量 B 发现软件的错误 C 找出软件中的所有错误 D 证明软件是正确的 2、下列关于软件测试的叙述中错误的是(D )。 A、软件测试可以作为度量软件与用户需求间差距的手段 B、软件测试的主要工作内容包括发现软件中存在的错误并解决存在的问题 C、软件测试的根本目的是尽可能多地发现软件中存在地问题,最终把以个高质 量地软件系统交给用户使用 D、没有发现错误地测试也是有价值的 3、测试是为了验证该软件已正确地实现了用户的要求。(×) 4、软件测试的目的是证明软件没有错误。(×) 5、下列关于软件测试策略的叙述中不正确的是( B)。 A.增量测试的主要问题在于需要额外编写很多特殊的测试程序 B.静态测试与动态测试都要执行程序 C.Myers认为自底向上测试方法要优于自顶向下测试的方法 D.软件性能测试的目标之一是为了提高性能 6、软件测试的对象包括( B ) A目标程序和相关文档 B源程序、目标程序、数据及相关文档 C目标程序、操作系统和平台软件 D源程序和目标程序 7、测试设计员的职责有:( B ) A 制定测试计划 B 设计测试用例 C 设计测试过程、脚本 D 评估测试活动知识点:α和β测试 1、除了开发人员之外首先见到软件产品的人是( A )。 A.α测试人员 B.β测试人员 C.验收测试人员 D.回归测试人员2、用户在真实的工作环境中使用软 件,用于测试系统的用户友好性等,这种测试是(D )。 A集成测试 B系统测试 C Alpha测试 D Beta测试 知识点:黑盒测试 1、下面说法正确的是( A)。 A.我们无法测试一个程序确认它没有错误 B.黑盒测试是逻辑驱动的测试 C.穷举测试一定可以暴露数据敏感错误 D.白盒测试是一种输入输出驱动的测试 2、边界值分析的假设是“多缺陷”假设。(×) 3、黑盒测试是(A )的测试 A基于功能 B基于代码 C基于设计 D基于需求文档 3、黑盒测试方法中最有效的是因果图法。(√) 4、黑盒测试是一种重要的测试策略,又称为数据驱动的测试,其测试数据来源于 ( A )。 A.软件规格说明 B.软件设计说明 C.概要设计说明 D.详细设计说明 5、下列不属于黑盒测试方法(B ) A 等价法 B 数据流测试 C 基于判定表 D 因果图 6、.黑盒测试是一种重要的测试策略,又称为数据驱动的测试,其测试数据来源于 (A )。 A.软件规格说明 B.软件设计说明 C.概要设计说明 D.详细设计说明 7、对于一个n变量函数,边界值分析会产生4n+1个测试用例。 8、.一个变量个数为n的函数的最坏情况测试会产生5n个测试用例。 9、判定表中贯穿条件项和动作项的一列,叫做规则 10.黑盒测试设计测试用例方法有边界值分析、等价类、因果图、基于决策表、错误 推测。 11、在黑盒测试中,等价类的划分具有完备性、无冗余性、等价性等特点。知识点: 测试阶段 1、对于软件测试分类,下列各项都是按照不同阶段来进行的划分,除了( C )。 A、单元测试 B、集成测试 C、黑盒测试 D、系统测试 2、集成测试验证了两个或多个单元之间的集成是否正确,主要是针对( C )阶段中 所定义的各单元之间的接口进行测试: A. 需求分析 B. 概要设计 C. 详细设计 D. 编码 3、集成测试计划在需求分析阶段末提交(×) 1

软件测试必备基础知识

软件测试必备基础知识 一、基本概念 软件测试 在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成 过程的文档、数据以及程序进行测试 软件测试的目的 发现程序中存在的错误发现程序中存在的错误,而不是证明程序无错误。一个好的测试用例在于它能发现至今尚未发现的错误。一个成功的测试则是发现了至今未发现的错误。开始我们认为做测试无非是为了证明我们编的程序是无错误的,那是大错特错了。因为bug会因时间不同,条件不同而出现。永远无法证明我们的程序是绝对正确的。 为反馈信息做准备为开发者或软件项目经理提供反馈信息,以及为风险评估所准备的信息 软件测试的原则 所有的测试都应追溯到用户需求。因为软件的目的是使用户完成预定的任务,满足其 需求,而软件测试揭示软件的缺陷和错误,一旦修正这些错误就能更好地满足用户需求。 应尽早地和不断地进行软件测试。由于软件的复杂性和抽象性,在软件生命周期各阶 段都可能产生错误,所以不应把软件测试仅仅看作是软件开发的一个独立阶段,而应当把 它贯穿到软件开发的各个阶段去。在需求分析和设计阶段就应开始进行测试工作,编写相 应的测试计划及测试设计文档,同时坚持在开发各阶段进行技术评审和验证,这样才能尽 早发现和预防错误,杜绝某些缺陷和错误,提高软件质量,测试工作进行得越早,越有利 于提高软件的质量,这是预防性测试的基本原则。 在有限的时间和资源下进行完全测试,找出软件所有的错误和缺陷是不可能的,软件 测试不能无限进行下去,应适时终止。因为,测试输入量大、输出结果多、路径组合太多,用有限的资源来达到完全测试是不现实的。

测试只能证明软件存在错误而不能证明软件没有错误。测试是无法显示潜在的错误和缺陷,继续进一步错误可能还会找到其它错误和缺陷。 充分关注测试中的集群现象。在测试的程序段中,若发现的错误数目多,则残存在其中的错误也越多,因此应当花较多的时间和代价测试那些具有更多错误数目的程序模块。 程序员应避免检查自己的程序。考虑到人们的心理因素,自己揭露自己程序中的错误是件不愉快的事,自己不愿意否认自己的工作;另一方面,由于思维定势,自己难以发现自己的错误。因此,测试一般由独立的测试部门或第三方机构进行。 尽量避免测试的随意性。软件测试是有组织、有计划、有步骤的活动,要严格按照测试计划进行,要避免测试的随意性。 软件测试对象 程序开发过程中的各个文档、源程序、目标程序及数据 软件测试的模型 V模型 从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。 左边依次下降的是开发过程各阶段,与此相对应的是右边依次上升的部分,即各测试过程的各个阶段。 V模型问题: "测试是开发之后的一个阶段,"测试的对象就是程序本身。 "实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。 "整个软件产品的过程质量保证完全依赖于开发人员的能力和对工作的责任心,而且上一步的结果必须是充分和正确的,如果任何一个环节出了问题,则必将严重的影响整个工程的质量和预期进度 W模型相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。 W模型也有局限性。W模型和V

软件评测师教程考点梳理(一)

软件评测师教程考点梳理(一) 软件评测师考试属于全国计算机技术与软件专业技术资格考试中的一个中级考试。希赛小编为大家整理了软件评测师教程中几个重要的知识点精讲,希望对大家2017年备考能有所帮助。 面向对象软件的集成测试 (1)传统的自顶向下或自底向上的集成测试策略在面向对象软件的集成测试中无意义,OO软件的集成测试需要在整个程序编译完成后进行,面向对象程序具有动态特性,程序的控制流无法确定,只能对编译完成的程序做基于黑盒子的集成测试。 (2)面向对象软件的集成测试两种策略 基于线程的测试(Thread based testing):集成对响应系统的一个输入或事件所需的一组类,每个线程分别进行集成和测试,应用回归测试以保证没有产生副作用。 基于使用的测试(Use based testing):通过测试那些几乎不使用服务器类的的类(独立类)而开始构造系统,在独立类测试完成后,下一层中使用独立类的类(依赖类)被测试,这个依赖类层次的测试序列一直持续到构造完整个系统。 (3)测试目的:能够检测出相对独立的,单元测试无法检测出的,那些类相互作用时才会产生的错误,只关注于系统的结构和内部的相互作用。 (4)面向对象软件的集成测试过程 第一步:静态测试针对程序的结构进行,检测程序结构是否符合设计要求。通过使用测试软件的‘可逆性工程’功能,得出源程序的类系统图和函数功能调

用关系图,与OOD结果相比较,检测程序结构和实现上是否有缺陷,检测OOP 是否达到了设计要求。 第二步:动态测试根据静态测试得出的函数功能调用关系图或类关系图作为参考,按照如下步骤设计测试用例,达到如下测试覆盖标准。 设计测试用例步骤:选定检测的类,参考OOD分析结果,确定出类的状态和相应的行为;确定覆盖标准;利用结构关系图确定待测类的所有关联;根据程序中类的对象构造测试用例,确认使用什么输入激发类的状态,使用类的服务和期望产生什么行为等,还要设计一些类禁止的例子,确认类是否有不合法的行为产生。 覆盖标准:达到类所有的服务要求或服务提供的一定覆盖率;依据类间传递的消息,达到对所有执行线程的一定覆盖率;达到类的所有状态的一定覆盖率等。 面向对象测试的分类 依据面向对象开发模型(面向对象分析、面向对象设计、面向对向编程),分为: (1)面向对象分析的测试(OOA Test)、面向对象设计的测试(OOD Test):是对分析结果和设计结果的测试,主要对分析设计产生的文本进行的,是软件开发前期的关键性测试。 (2)面向对象编程的测试(OOP Test):对编程风格和程序代码实现进行测试,主要的测试内容在OO Unit Test和OO Integrate Test中体现。 (3)面向对象单元测试(OO Unit Test):对程序内部具体单一的功能模块的测试,主要对类成员函数的测试,是OO Integrate Test的基础。

软件测试必备基础知识总结

软件测试必备基础知识总结 作者:Kevin老师 什么是软件测试 软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。本质:软件测试是为发现软件错误而执行程序的过程。 例如场景:淘宝网用户登陆 大家都有在淘宝购物的经历吧,如果想要在淘宝进行购物,就必须登陆后才能进行。 那么能够登陆的前提是什么呢?必须是淘宝网的注册用户。 登陆的步骤是什么呢?在下图1中输入已经注册的用户名>输入已设定的密码>点击“登陆”按钮,步骤非常简单。 大家也一定会遇到过用户名和密码输入错误而无法登陆的情况,此时就需要重新的输入用户名和密码进行再次登陆。 上述场景对淘宝中匹配的用户名和密码能够成功登陆而非匹配的用户名和密码不能登陆的简单验证就是“软件测试”。

图1 什么是测试用例 测试用例是将软件测试的行为活动做一个科学化的组织归纳,目的是能够将软件测试的行为转化成可管理的模式。基础内容包括:测试目标描述、输入数据、测试步骤、预期结果。可能会根据各个公司模板的不同,增加用例编号、模块、用例编写人、创建日期、前提条件等内容。 我们以“淘宝网用户登陆”这个场景为例进行用例设计,把场景中的描述语言转化为用例的设计方法如下: 用例模板实例 编号模 块 用例描述前提条 件 输入 数据 测试步骤预期 结果 实际 结果 1登 陆验证未登陆 用户不能够 购物 用户未 登陆 1.访问淘 宝网 2.购买任 一商品 弹出 用户 登陆 对话 框 2登验证输入正用户已用户 1.访问淘 1.登

陆确的用户名 和密码能够 登陆经注册名: Kevin 密码: 1234 56 宝网 2.购买任 一商品 3.在弹出 的用户登 陆对话框 中输入测 试数据中 的用户名 和密码 4.点击“登 陆”按钮 陆成 功 2.进 入付 款页 面 3登 陆验证输入错 误的用户名 和密码不能 够登陆 用户已 经注册 用户 名: Kevin 密码: 6543 21 1.访问淘 宝网 2.购买任 一商品 3.在弹出 的用户登 陆对话框 中输入测 试数据中 的用户名 和密码 4.点击“登 陆”按钮 1.登 陆失 败 2.未 进入 付款 页面 测试用例设计简单吧!接下来想一下登陆模块的扩展吧!例如:

软件测试总结

1.软件测试定义:由人工或自动方法来执行或评价系统或系统部分的过程,以验证它是否满足规定的需求,或识别出期望的结果和实际结果之间的差异。 2.软件测试的分类: 测试对象或范围分类:需求评审、设计评审、单元测试、程序测试、系统测试、文档测试、Web应用测试、客户端测试、数据库测试等; 测试目的分类:集成测试、功能测试、压力测试、性能测试等等; 静态测试、动态测试; 白盒测试、黑盒测试。 3.软件测试的基本流程与原则 基本流程: 测试用例设计-输入数据、预期结果; 测试执行-输入数据执行被测对象; 检查实际输出与预期结果。 基本原则: 开始测试时认定软件有错,测试要证明有错; 测试应该由独立的测试团队来完成; 测试设计必须设计对应的预期输出; 要对合理、不合理(有效、无效)输入数据都进行测试; 检查软件的完备性、多余; 完整保留测试文档; 一个被测对象中有错误的概率与已发现错误的个数成正比。 4.Beizer测试成熟度级别: 0级:没有区分测试与调试; 1级:测试的目的是证明软件能用; 2级:测试的目的是证明软件不能用; 3级:测试的目的不是为了证明什么,而是为了降低软件使用风险; 4级:测试是一种智能训练,能够帮助专业人员开发出更高质量的软件。5.软件测试与软件工程,软件过程的关系: 软件工程:在给定的条件下(成本、时间)开发出高质量的软件产品。 软件生产过程的特性决定了软件产品中不可避免包含有错误。 软件测试则是尽可能多地发现错误,从而保障软件产品的质量。 6.McCall的质量因素: 产品修改: 可维护性,灵活性,可测试性 产品转移: 可移植性,可复用性,互操作性 产品运行: 正确性,易用性,可靠性,效率,完整性 7.软件质量困境 软件质量必须足够好:存在价值 软件产品无法完美:需要消耗过多的资源、时间、成本 软件开发需要在两个极端之间进行平衡:软件足够好的同时又不完美。8.质量控制、质量保证和质量管理

软件测试年度总结报告

软件测试年度总结报告 篇一:软件测试工程师年终述职总结 内蒙古金财信息技术有限公司 研发二部-孟磊年终总结 XX年12月 XX年终总结 回顾XX年5月入职到现在大半年的工作,我在公司领导及各位同事的支持和帮助下,按照公司要求,比较好地完成了本职工作现将这一年的工作情况总结如下: 一、项目时间点及各阶段工作 二、测试总结 中间业务平台管理系统集成测试阶段: 缺陷数据分配表 告警性建议性严重性 郭洪敏 14 8 17 39 李扬 43 7 33 83 孟凡波 72 23 52 147 缺陷摘要饼形图 聂飞龙 7 1 13 21 136 39 115 290 严重性缺陷占到整个缺陷数量的百分之四十,从实际测试工作来看,代表性大致可分为以下几类:点击“新增”

报错、查询报错、保存报错等直观的缺陷。在这里建议研发人员在单元测试发现此类缺陷,在今后项目中,减少缺陷数量,提高软件质量。 中间业务平台管理系统上线阶段: 在管理系统上线阶段共发现6个问题其中有代表性问题分类如下: 1、需求问题: 系统维护->账户维护新增时,账户类型字段是从数据库配置,联社方想通过页面控制此字段。此问题在集成测试时,熬民就提出要从系统页面上新增,当时认为需求没提出此功能忽略了隐性需求导致后期东北农电项目上线需要从数据库大量配置通讯配置表。 教训:今后测试不止测试功能是否实现,需要考虑和结合系统与系统之间的关联关系,眼光放得在长远些。 2、技术实现问题: 集成测试时,管理系统新增账户时其合法性需要与核心校验,此问题集成测试通过,但在上线验证阶段发现此功能没实现。后经过与研发人员沟通此功能实现方式是单位关联维护时,核心直连标志选择不直连,则此业务新增账户时则不与核心校验账户。功能实现逻辑就是错误,而测试基于错误的逻辑去做集成测试。教训: 测试角度:只测试了功能实现与否,没测试功能实现的

相关文档