人人范文网 其他工作总结

软件测试总结范文(精选多篇)

发布时间:2022-07-24 09:05:23 来源:其他工作总结 收藏本文 下载本文 手机版

推荐第1篇:软件测试总结

面向对象程序的软件测试方法

在软件生命周期过程中,软件测试是保证软件质量的关键环节之一。面向对象方法学在软件工程中的引入极大地方便了软件的设计、开发和维护,为创建高可靠性的软件系统提供了重要保证。但面向对象程序的封装、继承、多态和异常处理机制等新特性却给测试带来新的挑战。一方面需要调整、改进传统的测试策略和方法;另一方面探索出适应面向对象程序特征的测试理论与技术也尤为必要。

面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

面向对象的定义或说明对象的定义的非常少。其初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。可是,这个定义显然不能再适合现在情况。面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地对自己有所裨益。这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。

1、面向对象的基本概念

(1)对象。

对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

(2)对象的状态和行为。

对象具有状态,一个对象用数据值来描述它的状态。

对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。

对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中

(3)类。 具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。

类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。

类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。

(4)类的结构。

在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。

①一般——具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。

②整体——部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。

(5)消息和方法。

对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。

类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。消

2、面向对象的特征

(1)对象唯一性。

每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。

(2)分类性。

分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。

(3)继承性。

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。 继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。

在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。

在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。

在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。

采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。

(4)多态性(多形性) 多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象以适合自身的方式去响应共同的消息。

多态性增强了软件的灵活性和重用性。

面向对象方法的基本思想是一:面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。

二: 面向对象方法是以认识论为基础,用对象来理解和分析问题空间,并设计和开发出由对象构成的软件系统(解空间)的方法。 由于问题空间和解空间都是由对象组成的,这样可以消除由于问题空间和求解空间结构上的不一致带来的问题。简言之,面向对象就是面向事情本身,面向对象的分析过程就是认识客观世界的过程。

面向对象方法从对象出发,发展出对象,类,消息,继承等概念。

面向对象方法的主要优点是:符合人们通常的思维方式;从分析到设计再到编码采用一致的模型表示具有高度连续性;软件重用性好。

面向对象软件测试的特点是: 1.掌握代码检查、走查与评审的基本方法和技术; 2.掌握白盒测试和黑盒测试的测试用例的设计原则和方法; 3.掌握单元测试和集成测试的基本策略和方法;

4.了解系统测试、性能测试和可靠性测试的基本概念和方法;5.了解面向对象软件和WEB应用软件测试的基本概念和方法; 6.掌握软件测试过程管理的基本知识和管理方法; 7.熟悉软件测试的标准和文档;

8.掌握QESuite软件测试过程管理平台和QESat/C++软件分析和工具的使用方法。

推荐第2篇:软件测试总结

1.软件测试定义:由人工或自动方法来执行或评价系统或系统部分的过程,以验证它是否满足规定的需求,或识别出期望的结果和实际结果之间的差异。2.软件测试的分类:

测试对象或范围分类:需求评审、设计评审、单元测试、程序测试、系统

测试、文档测试、Web应用测试、客户端测试、数据库测试等;

测试目的分类:集成测试、功能测试、压力测试、性能测试等等; 静态测试、动态测试; 白盒测试、黑盒测试。 3.软件测试的基本流程与原则

基本流程:

测试用例设计-输入数据、预期结果; 测试执行-输入数据执行被测对象; 检查实际输出与预期结果。 基本原则:

开始测试时认定软件有错,测试要证明有错; 测试应该由独立的测试团队来完成; 测试设计必须设计对应的预期输出;

要对合理、不合理(有效、无效)输入数据都进行测试; 检查软件的完备性、多余; 完整保留测试文档;

一个被测对象中有错误的概率与已发现错误的个数成正比。 4.Beizer测试成熟度级别:

0级:没有区分测试与调试;

1级:测试的目的是证明软件能用; 2级:测试的目的是证明软件不能用;

3级:测试的目的不是为了证明什么,而是为了降低软件使用风险; 4级:测试是一种智能训练,能够帮助专业人员开发出更高质量的软件。 5.软件测试与软件工程,软件过程的关系:

软件工程:在给定的条件下(成本、时间)开发出高质量的软件产品。 软件生产过程的特性决定了软件产品中不可避免包含有错误。 软件测试则是尽可能多地发现错误,从而保障软件产品的质量。 6.McCall的质量因素:

产品修改:

可维护性,灵活性,可测试性 产品转移:

可移植性,可复用性,互操作性 产品运行:

正确性,易用性,可靠性,效率,完整性 7.软件质量困境

软件质量必须足够好:存在价值

软件产品无法完美:需要消耗过多的资源、时间、成本

软件开发需要在两个极端之间进行平衡:软件足够好的同时又不完美。 8.质量控制、质量保证和质量管理

软件质量控制其实是基本方法,通过一系列的技术来科学地测量过程的状态。如缺陷率、测试覆盖率等。

软件质量保证则是过程的参考、指南的集合,如ISO9000、CMM/CMMI等,着重内部的检查,确保已获取认可的标准和步骤都已经遵循。

软件质量管理则是实际操作的思想,质量管理控制和协调组织的质量活动,包括质量控制、质量保证和质量改进。 9.WebApp应用的属性:

网络密集型应用;并发性;大负载量;性能;高可靠性、高可用性;安全性-内容敏感;

10.软件评审的目的,评审度量及其应用

评审的目标在于:尽早发现软件过程中的错误,防止错误传递、蔓延至后续活动,防止错误转化为缺陷。

准备工作量Ep-实际评审会之前所需工作量; 评估工作量Ea-实际评审所花费的工作量 返工工作量Er-修改评审所发现错误的工作量 工作产品规模WPS-评审对象的规模

发现的主要错误数Errmajor-多于预期的改错工作量的错误数目 发现的次要错误数Errminor-少于预期的改错工作量的错误数目 总评审工作量Ereview = Ep+Ea+Er 错误总数Errtot = Errmajor+Errminor 错误密度:评审的每单位工作产品发现的错误数Ed = Errtot / WPS 错误密度数值的含义:较小(产品质量非常好或评审不够彻底);较大(产品质量存在缺陷)

11.软件测试计划:描述对计算机软件配置项、子系统、系统进行测试的计划安排,内容包括测试的环境、测试工作的标识及测试工作的时间安排。

软件测试报告:是对计算机软件配置项、软件系统或子系统,或与软件相关项目执行合格性测试的记录 12.软件测试活动

制订测试计划(测试分析员)

测试设计(测试设计人员)-方案设计 测试及测试用例设计 测试过程

桩模块、驱动模块设计

测试实施(测试设计员)-实现测试设计 单元测试(测试员) 集成测试(测试员) 系统测试(测试员)

评估测试(测试设计人员)

13.无向图的相关定义:

连接性:节点ni、nj是连接的,当且仅当ni、nj在同一条路径上。 组件:图的组件是相连节点的最大集合

图G的圈复杂度V(G)=e-n+2p,其中e为G的边数,n为节点数,p为组件数。 14. 图覆盖:给定一个关于图G的准则C的测试需求集合TR,测试集合T在图G上满足准则C当且仅当对TR中每个测试需求tr,path(T)中至少存在一条测试路径p满足tr。

简单路径:如果从ni到nj的一条路径中,除了始节点和终节点可以相同外,没有任何节点出现次数多于一次,则该路径为简单路径。

主路径:如果从ni到nj是一条简单路径,并且它不作为任何其他简单路径的子路径出现,则称之为主路径。

主路径覆盖(PPC)准则:TR包含图中每一条主路径。

指定路径覆盖(SPC):TR包含一个测试路径集S,S为指定参数。 15.白盒测试方法

白盒测试:根据被测对象的内部结构和运行机制来设计测试用例的方法,又称为结构测试、逻辑驱动测试、覆盖测试

被测对象的独立路径至少覆盖一次; 所有逻辑取值测试[真、假]; 循环边界测试;

检查内部数据结构、边界条件。 16.黑盒测试方法

黑盒测试方法又称功能测试方法、数据驱动测试方法,测试设计时不考虑被测对象的内部结构,以检查系统功能(功能的正确、完整、逻辑流程、人机界面、文档内容、系统安装/初始化)

以被测对象的外部特征为测试依据。 17.模糊测试方法

模糊测试方法:构造大量的随机数据作为系统的输入,从而检验系统在各种数据情况下是否出现问题。

18.增量测试:单元测试、调用依赖的模块集成测试,逐步扩展直到形成整个软件系统。

19.突击测试:所有模块一次性集成为一个完整的系统,然后进行完全测试。20.等价类划分:

等价类划分基于对输入或输出数据情况的评估,划分成两个或多个子集(等价类),然后从每个子集中选取一定的代表进行测试的测试用例设计方法。 21.极限测试

极限编程:利用轻量、敏捷的开发过程,使开发人员能够更快地完成应用程序的开发。强调频繁测试、测试驱动的方式保证软件质量。

极限测试:为满足极限编程思想和过程而设计的一套测试策略和流程,原来的测试技术、方法均可以使用 22.配置项测试的内容

功能: 适合性

准确性:功能的准确与精度要求 互操作性:与外部设备、系统的接口 安全保密性:数据访问的可控制性 可靠性: 成熟性:容错处理、平均无故障时间

容错性:边界条件、功能、性能的降级情况、误操作模式、故障模式 易恢复性:自动修复能力/时间、平均宕机时间、平均恢复时间、恢复能力等 易用性

易理解性:功能描述清晰、准确;界面含义精确

易学性:在线帮助、帮助定位、各类手册的易学、易用 易操作性:数据的有效检查、解释信息明确、界面切换 吸引性:人机界面定制 效率

时间特性:响应时间、平均响应时间、响应极限时间、吞吐量、平均吞吐量、极限吞吐量,多任务并行测试

资源利用:大量并发任务下I/O设备利用、极限负载下I/O设备的负载、大量并发任务下用户等待时间、内存使用情况、数据传输能力等

维护性

易分析性:运行状态数据易分析 易变更性:软件的可配置、修改能力 易测试性:变更之后的易测试情况 可移植性

适应性:不同软件、硬件环境的适应能力 易安装性:安装、配置的复杂程度、难以程度 共存性:与其他软件协同的能力 易替换性:版本的替换难以程度 依从性

以上所有特性遵循标准、规范的情况测试

23系统测试:系统非功能性测试,以检验系统在超常数据规模或负载下,线程、CPU、内存资源的利用和响应时间、数据传输等性能指标是否满足要求

24.测试计划

确定测试充分性要求:覆盖范围、覆盖程度 确定测试终止要求; 确定测试所需资源; 确定测试的软件特性; 确定测试技术、方法; 确定测试准出条件; 确定测试进度计划; 测试风险分析。

25. 测试设计:测试设计人员、测试程序员

测试用例设计:依据测试特性; 获取测试数据;

确定测试顺序:资源、被测特性; 获取测试资源:软硬件、工具; 编写测试程序; 建立测试环境; 撰写测试设计说明。

26.测试总结:

测试分析员-测试报告

总结测试计划、测试说明的变化情况; 异常终止时测试未覆盖范围; 未能解决的测试问题; 总结测试结果(发现问题); 编写测试报告;

根据问题报告、测试记录,编写测试问题报告。

27.软件可靠性:在给定的运行时间内和给定的系统配置环境下,运行给定的软件功能时所 表现出来的质量能力 28.系统性能指标

系统资源利用率:分析性能指标,改善性能系统行为指标 请求响应时间:一次请求完成时间

事务响应时间:一个事务所有请求完成的总时间

数据吞吐量:单位时间内服务器接收、发送的数据量。

29.验收测试:用户执行的、使用真实数据进行的测试,依据需求规格中的确认标准进行测试。回归测试:验证已测试过的内容不受变更影响,确认变更没有引入新的错误。

30.α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操 作环境下进行的测试。

Beta测试由软件的最终用户在一个或多个客户场所进行,开发者通常不在Beta测试的现场。

31.WebApp测试关注的主要内容 Web内容测试 界面 构件

导航测试 安全性 性能

32.测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

33.软件生存期定义:从软件产品设计到软件被淘汰的时间段。又称软件生命周期、生存周期。进一步划分为两个阶段:开发阶段和维护阶段(40%+60%)。

34.软件安全定义:一种软件质量保证活动,他主要用来识别和评估可能对软件产生负面影响并促使整个系统失效的潜在灾难。

35.软件评审的目标在于:尽早发现软件过程中的错误,防止错误传递、蔓延至后续活动,防止错误转化为缺陷。36.V模型

优点:既有底层测试又有高层测试。底层:单元测试。高层:系统测试。

将开发阶段清楚的表现出来,便于控制开发的过程。当所有阶段都结束时,软件开发就结束了。

缺点:容易让人误解为测试是在开发完成之后的一个阶段。

由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找到其根源。

实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试,返工量大。 37.W模型:

优点:

将测试贯穿到整个软件生命周期中,且除了代码要测试,需求、设计等都要测试。 更早介入软件开发中,能尽早发现缺陷并修复。

测试与开发独立起来,并与开发并行。 缺点:

对有些项目,开发过程中根本没有文档产生,故W模型无法使用。

对于需求和设计的测试技术要求很高,实践起来很困难。

从N0中某节点开始到Nf中某节点结束的一条路径称为一条测试路径。

1.软件缺陷:(符合下列规则的叫软件缺陷):

1).软件未达到产品说明书的功能

2).软件出现了产品说明书指明不会出现的错误

3).软件功能超出产品说明书指明范围

4).软件未达到产品说明书虽未指出但应达到的目标

5).软件测试员认为难以理解、不易使用、运行速度缓慢、或者最终用户认为不好

2.单元测试:单元测试是对软件设计的最小单元——模块进行正确性检验的测试工作,主要测试模块在语法、格式和逻辑上的错误。3.回归测试

指软件系统被修改或扩充(如系统功能增强或升级)后重新进行的测试,是为了保证对软件所做的修改没有引入新的错误而重复进行的测试。

4.等价类:指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。

推荐第3篇:软件测试见习总结

惠普软件测试见习总结

2014年04月14日,我怀着提高并实现自我价值的心态,跨进惠普软件软件测试基地的大门,开始了为期两周的见习。我非常荣幸的参加此次见习,通过这次经验让我系统的梳理了软件测试理论技术,对软件测试有了一个更深入更全面的认识。

转眼间,两周的实习时间就过去了。回想起这段时间的见习过程,思想觉悟有了很大的提高,作为一个大二的学生来说,什么都不懂,没有任何实践经验,不过在老师的指导下,我很快的融入到了这个新环境,还学到了很多在学校学不到的东西,也认识到了自己很多的不足,感觉受益匪浅。以下是我在这几个月实习期间对工作的总结以及一些自己的心得体会。

软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。

软件测试存在于整个项目周期,在项目开始之初需求调研的时候就开始了,在形成需求规格说明书的时候就需要针对文档进行测试。这个环节在后续整个项目中占了很大的比重,能主导整个软件项目的走向,成败与否全在于开始阶段的决策。

在严格的测试也不能完全的发现软件当中所有的错误,但是测试还是能发现大部分错误的,能确保软件基本可用和软件的适用性,所以在后使用的过程中还需要加强快速响应的环节。结合软件测试理论,故障暴露在最终客户端之前及时主动的去发现并解决。这点需要加强研发队伍的建设。

要想成为好的测试人员,首先得了解自己要测试的软件的相关知识。要了解软件产品的架构是什么样的。要了解软件的市场需求,在接触软件之初要可以多看看用户的反馈信息,这些才是用户最关心的,也是在测试中需要注意的问题,满足客户是最大的需要。但是了解软件需求之后要学会要多读些软件系统的技术文档,软件设计文档,这些文档可以帮助了解产品如何工作。还有多看看公司 Bug 库中的问题,这些存在的问题可以帮助自己了解软件产品那些地方存在缺陷,软件系统那些地方会出现错误。软件是运行在一个大环境中,如果对系统不熟悉,那么有些问题你不能从一个更广阔的层面考虑,学习操作系统的知识,有助于你发现缺陷,定位问题更加准确。比如软件运行在 Windows 或者 Linux ,如果不懂操作系统,你就无法建立测试环境,有些时候时候软件的组件发生问题,就是自己系统配置造成的,对系统不熟悉,会把外在原因归结为软件本身。所以要学习关于和软件系统相关的知识,比如编程,网络,数据库等。不一定要学习到多好的程度,只是通过这些扩展的知识面,可以在发现问题,解决问题上不会局限在狭小的圈子里。

在这短短见习的时间里,我对软件测试有了较深的了解,发现自己的不足,放下了心中的 石头,同时对测试工程师的工作也有了一定的认识。知道测试工程师不是一个简单的工作,需要全面的知识和丰富的经验,还要有细心和耐心。

推荐第4篇:软件测试计算公式总结

软件测试计算公式总结

通用公式:

计算平均的并发用户数: C = nL/T

C是平均的并发用户数;n是login seion的数量;L是login seion的平均长度;T指考察的时间段长度。

并发用户数峰值: C’ ≈ C+3根号C

C’指并发用户数的峰值,C就是公式(1)中得到的平均的并发用户数。该公式的得出是假设用户的login seion产生符合泊松分布而估算得到的。

实例:

假设有一个OA系统,该系统有3000个用户,平均每天大约有400个用户要访问该系统,对一个典型用户来说,一天之内用户从登录到退出该系统的平均时间为4小时,在一天的时间内,用户只在8小时内使用该系统。

则C = 400*4/8 = 200

C’≈200+3*根号200 = 2

42F=VU * R / T

其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间

R = T / TS

TS为用户思考时间

计算思考时间的一般步骤:

A、首先计算出系统的并发用户数

C=nL / T F=R×C

B、统计出系统平均的吞吐量

F=VU * R / T R×C = VU * R / T

C、统计出平均每个用户发出的请求数量

R=u*C*T/VU

D、根据公式计算出思考时间

TS=T/R

缺陷检测有效性百分比DDE=TDFT/(TDFC+TDFT)×100%

其中:TDFT=测试过程中发现的全部缺陷(即由测试组发现的),TDFC=客户发现的全部缺陷(在版本交付后一个标准点开始测量,如,半年以后)

缺陷排除有效性百分比DRE=(TDCT/TDFT)×100%

其中:TDCT=测试中改正的全部缺陷,TDFT=测试过程中发现的全部缺陷

测试用例设计效率百分比TDE=(TDFT/NTC)×100%

其中:TDFT=测试过程中发现的全部缺陷,NTC=运行的测试用例数

以下公式较适用于白盒测试

功能覆盖率= 至少被执行一次的测试功能点数/ 测试功能点总数 (功能点)

需求覆盖率= 被验证到的需求数量 /总的需求数量 (需求)

覆盖率= 至少被执行一次的测试用例数/ 应执行的测试用例总数 (测试用例) 语句覆盖率= 至少被执行一次的语句数量/ 有效的程序代码行数

判定覆盖率= 判定结果被评价的次数 / 判定结果总数

条件覆盖率= 条件操作数值至少被评价一次的数量 / 条件操作数值的总数

判定条件覆盖率= 条件操作数值或判定结果至少被评价一次的数量/(条件操作数值总数+判定结果总数)

上下文判定覆盖率= 上下文内已执行的判定分支数和/(上下文数*上下文内的判定分支总数)

基于状态的上下文入口覆盖率= 累加每个状态内执行到的方法数/(状态数*类内方法总数) 分支条件组合覆盖率= 被评测到的分支条件组合数/分支条件组合数

路径覆盖率= 至少被执行一次的路径数/程序总路径数

推荐第5篇:软件测试学习总结

软件测试学习总结

姓名:某某 学号:20090001 在大庆浦东软件平台有限公司经过一周的软件测试实训,从对软件测试没有什么经验的我初步掌握了软件测试的方法和技能,收获颇多。

我在大学期间的专业是信息与计算科学,原本打算从事网络方面的工作,对活动目录、数据库、操作系统等的知识比较感兴趣。经过这次理论学习,了解到要做好软件测试,要求掌握的知识并不仅仅是测试方面的,网络、数据库、操作系统等的知识对做好测试也是很有帮助的。这让我明确了以后学习的目标,在不断学习软件测试的同时,也应该继续其他相关知识的深入学习。 通过此次学习,对整个软件测试行业的了解大大的加深。以前认为软件测试只是枯燥的反复的使用被测试软件来发现异常的问题,以为软件测试并不重要,低开发一等。现在认识到了软件测试的重要性,软件测试是软件产业向软件工业化生产时代迈进不可缺少的重要组成部分,是保证软件质量达到客户需求不可缺少的环节。软件测试在国内是一个新的职业,发展得比较晚,但它的重要性正在为行业所重视。

在学习过程中,我了解了作为一个合格的测试人员所应具备的素质与技能。其中个人素质在测试工作中起到了非常重要的作用,它包括你的信心、耐心、细心和与人交流沟通的能力,它将贯穿你工作生涯的整个过程。在测试理论上,我们系统学习了软件测试的流程,各种测试阶段和测试方法,以及测试工具的使用。通过这些课程的学习,让我们对软件工程也有了更深刻的理解,为以后的测试工作作了很好的理论储备和技能的提升。

软件测试作为软件开发过程中一个非常重要的环节,越来越成为软件开发商和用户关注的焦点。完善的测试是软件质量的保证,因此软件测试就成了一项重要而艰巨的工作,要做好这项工作当然也绝非易事,我在做软件测试工作中总结出了一些经验和技巧。 1.功能点的细化

在进行测试前,先将所要测试的功能细分,填写《测试用例表》,有针对性的运行功能测试案例,逐个对每个功能细分点进行测试。在每次运行测试案例之前,明确此次运行的目的和预期的输出结果,并要做好记录。 2.注意测试中的错误集中发生的现象

有一些错误是和程序开发人员的编程水平和习惯有很大关系的。例如程序中的拼写错误,习惯用法等。注意收集并记录这些现象,有助于更快、更多地发现类似的错误。

3.尽可能多的使用非常规的测试 充分考虑到各种合法的输入和不合法的输入以及各种边界条件。边界值往往是最容易出现异常的情况,特殊的情况下甚至要制造极端的状态和意外状态,比如网络突然中断,和电源突然断电等情况。

4.对测试错误结果一定要有一个确认的过程

一般有A测试出来的错误,一定要有一个B来确认。 5.制定严格的测试计划

测试时间安排的尽量宽松,不要希望在极短的时间内完成一个高水平的测试。 6.回归测试的关联性一定要引起充分的注意

在开发人员刚修复Bug之后的地方,再找一找,往往开发人员只修复报告出来的缺陷而不去考虑别的功能在修改时可能会重新造成错误。修改一个错误而引起更多的错误出现的现象并不少见。

7.测试文档要尽可能详细

《测试用例表》中的功能点可尽量的详细,如实、详细地记录每次运行测试案例的输入数据,输出数据,出错提示,进行测试的时间,完成测试的时间等,便于以后对测试工作的回溯。 8.重视交流和沟通

包括和程序开发人员的交流,同是测试人员之间的交流,网上技术论坛和网友的交流,和客户的交流等。多思考,多交流,多提问,通过多种沟通交流的途径,可以少走很多弯路,同时可以学到很多东西。 9.善于总结

在测试过程中发现的所有问题,异常情况,发现程序开发人员易犯,常犯的错误,各种有价值的经验教训,使用系统和操作数据库时发现或者学到的技巧,使用测试工具时的心得等等,都可以随手记录在笔记本或者电脑上。这些都将是今后工作中可以参照的珍贵资料,同时也会成为自己的宝贵经验。 10.妥善保存一切测试过程文档。

这次软件测试实训为我们以后从事软件测试工作打下了良好的专业基础,为我们的进一步学习提高打下了扎实的理论基础。对测试过程有了初步的认识,测试计划、测试设计、测试开发、测试执行、测试评估、测试报告贯穿整个软件开发过程。单元测试、集成测试、系统测试、验证测试每个阶段都应以用户需求为依据。这些基本的概念虽然比较抽象,但对以后的实践是大有益处的。 总的来说,这次培训效果不错,对自己有一定的提升,这完全不同与学校的学习,因为它更加贴近工作,针对以后工作的内容作了很多实例的练习与工具的使用,为我们更快的加入工作提供的很好的前提。接下来一段时间,我将利用假期进入相关测试部门进行实际项目的训练,我相信在我有了很好的理论基础后,会在工作中很好的加以应用,让测试工作做得更好。同时,我会更加努力的学习与工作,遇到问题会及时多渠道寻找解决方法,积极上进,希望早日成为一名优秀的测试人员。

推荐第6篇:软件测试期末总结

1.下列关于软件测试的叙述错误的是( D )。

A.软件测试可以作为度量软件与用户需求间差距的手段 B.没有发现错误的测试也是有价值的

C.软件测试的根本目的是尽可能多地发现软件中存在的问题,最终把一个高质量的软件系统交给用户使用

D.软件测试的主要工作内容包括发现软件中存在的错误并解决存在的问题

2.软件测试技术可以分为静态测试和动态测试,下列说法中错误的是( D ) A.静态测试是指不运行实际程序,通过检查和阅读等手段来发现程序中的错误。 B.动态测试是指实际运行程序,通过运行的结果来发现程序中的错误。 C.动态测试包括黑盒测试和白盒测试。

D.白盒测试是静态测试,黑盒测试是动态测试。

3.月收入

4.等价类划分法的关键是(

C

)。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类

D.确定系统中相同和不同的部分

5.某教学设备销售部门制定一项销售优惠政策,一次购买100台或100台以上者按八五折优惠,购买者是教师、学生按九折优惠。设C1表示购买的台数,C2为

1、

2、0分别表示教师、学生和其他人员,则符合九折优惠判定条件为( A )。 A.(C10) C.NOT(C1>100)AND(C2=0) D.NOT(C10)

6.( D )能够有效地检测输入条件的各种组合可能会引起的错误。 A.等价类划分 B.边界值分析 C.错误推测 D.因果图

7.软件测试用例主要由输入数据和( C )两部分组成。 A.测试计划 B.测试规则 C.预期输出结果

D.以往测试记录分析

8.在用白盒测试中的逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等,其中(

A )是最弱的覆盖准则。 A.语句覆盖 B.条件覆盖

C.判定-条件覆盖 D.条件组合覆盖 9.以下不属于白盒测试技术的是(

D ) A.逻辑覆盖 B.基本路径测试 C.循环覆盖测试 D.等价类划分

10.集成测试的策略一般分为:一次性集成和渐增式集成。下面哪一条真实地反映了前者与后者的不同?(

A )。

A.后者比前者更适合大规模应用系统的集成测试

B.在集成测试中发现问题时,前者比后者更容易进行问题定位

C.前者需要开发驱动模块和桩模块,而后者不需要开发驱动模块和桩模块 D.前者不需要所有模块就绪,而后者需要所有模块就绪 11.集成测试又称为组装测试,其主要内容包括( C )。 A.对整体的性能进行测试

B.用白盒法设计测试用例进行测试 C.确定组装策略和次序 D.对运行过程进行测试

12.全局数据结构的错误通常在( C )中检查。 A.单元测试 B.有效性测试 C.集成测试 D.确认测试

13.软件开发公司组织内部人员,模拟各类用户行为对即将面市的软件产品进行的测试我们称之为(

B )。 A.系统测试

B.α测试 C.β测试 D.综合测试

14.对一个网站的连接速度测试属于( C )?

A.功能测试

B.客户端兼容性测试

C.性能测试 D.安全测试

15.软件测试管理是软件工程的保护性活动,其基本内容不包括(

C

)。 A.测试组织管理 B.测试过程管理 C.效益管理

D.资源和配置管理

32.下面对软件测试流程的描述,哪个是正确的?( A )

A.制定测试计划->设计测试方案及测试用例->部署实施测试->执行测试->缺陷跟踪管理->测试总结报告

B.制定测试计划->部署实施测试->设计测试方案及测试用例->执行测试->缺陷跟踪管理->测试总结报告

C.部署实施测试->制定测试计划->设计测试方案及测试用例->执行测试->缺陷跟踪管理->测试总结报告 D.制定测试计划->设计测试方案及测试用例->执行测试->部署实施测试->缺陷跟踪管理->测试总结报告

15.与设计测试数据无关的是( D ) A.该软件的设计人员 B.程序的复杂程度 C.源程序

D.项目开发计划

18.McCabe复杂性度量又称( B )。 A.代码行度量 B.环路度量 C.程序量度量 D.功能性度量

1.(

A )说明了软件测试与开发的并行关系,体现了测试贯穿于整个开发过程的思想。 A.W模型 B.V模型 C.H模型 D.X模型

2.在下面几句中,判断哪一个是正确的。

D

)。 A.测试工作应在编码阶段结束后开始。

B.测试设计工作与软件开发活动是相互独立、相互无关的。

C.测试脚本是指一个测试包,它由一组逻辑相关的测试用例组成。 D.过度测试会影响进度和增加成本。

3.以下哪种测试方法属于黑盒测试技术(

C

)。 A.基本路径测试 B.循环覆盖测试 C.边界值分析测试 D.语句覆盖测试

4.程序功能说明中指出:由三个输入数据表示一个三角形的三条边长。根据黑盒法中的边界值分析法设计测试用例,应选( D )。 A.a=3,b=4,c=5 B.a=1,b=2,c=4 C.上述A、B项目都应选上 D.a=1,b=2,c=3 5.某程序功能说明中列出“规定每个运动员参赛项目为1——3项”,应用黑盒法中的等价类划分法确定等价类是( D )。 A.13 D.以上都是

6.如果某个程序的输入数据的可能值划分为n个合理等价类,m个不合理等价类,这些等价类均为数轴上的一个有限区间范围,则采用边界值测试方法至少需要( D )个测试用例。 A.m+n B.2m+n C.2n+m D.2(m+n) 7.在用白盒测试中的逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等,在下列覆盖中,(

D )是最强的覆盖准则。 A.语句覆盖 B.条件覆盖

C.判定-条件覆盖 D.条件组合覆盖 8.{ void SelectSort ( datalist & list ) \\{ //对表list.V[0]到list.V[n-1]进行排序, n是表当前长度。

for ( int i = 0; i

//在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象 for ( int j = i+1; j

//当前具最小关键码的对象

if ( k != i ) Swap ( list.V[i], list.V[k] );//交换

\\} \\} 上面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( ):请问该程序段的McCabe环路复杂性为多少?( D ) } A.2 B.3 C.4 D.5 9.对于传统软件来说,按集成粒度不同可以把集成测试分为(

C

)。①模块间集成测试 ②类内集成测试 ③类间集成测试 ④子系统内集成测试 ⑤ 子系统间集成测试 A.①②③ B.②③④ C.①④⑤ D.②③⑤

10.在有关集成测试的叙述中,( A )是正确的。 A.测试底层模块时不需要桩模块 B.驱动模块的作用是模拟被调模块 C.自顶向下测试方法易于设计测试结果

D.自底向上测试方法有有利于提前预计测试结果 11.系统测试中主要用到的测试技术是(

B) A.回归测试 B.黑盒测试 C.白盒测试 D.功能测试

12.不断执行同样的操作,如不停地启动或关闭程序、反复读写数据或者选择同一个操作。这种测试我们称之为( B )测试。 A.强度 B.重复 C.压迫 D.重负

13.以下关于测试管理原则的描述中不正确的是(

C

)。 A.实施全过程测试,有助于及时应对项目变化,降低测试风险。

B.软件应全面测试,不仅对所有产品进行测试,还要求开发人员和测试人员全面参与。 C.不能将测试过程从开发过程中抽象出来,作为一个独立的过程进行管理。

D.尽早开展测试准备工作,能使测试人员较早了解测试难度、预测风险、提高效率。 14.下面叙述中,哪一项不是测试项目管理者的职责?(

B

)。 A.合理分配任务 B.负责建立测试环境 C.制订测试策略

D.将已有经验灵活应用到新项目中

15.下列所述的测试原则中,错误的是( D )。 A.应设计非法输入的测试用例 B.测试用例要给出测试的预期结果 C.因维护修改程序后需回归测试 D.开发小组与测试小组合并

1.对于软件测试分类,下列各项都是按照不同阶段来进行的划分,除了(

C

)。 A.单元测试 B.集成测试 C.黑盒测试 D.系统测试

2.在软件测试中,确认测试主要用于发现( B )阶段的错误。 A.软件计划 B.需求分析 C.软件设计 D.编码

3.(

C

)方法根据输出对输入的依赖关系设计测试用例。 A.路径测试 B.等价类 C.因果图

D.边界值分析

4.在功能测试中,假设求实数x的平方根,我们第1次输入“最小的负实数”进行测试,第2次输入“稍小于0”进行测试,第3次输入0进行测试,第4次输入“稍大于0”进行测试,第5次输入“最大的正实数”进行测试,那么这种测试属于(

A

)。 A.边界值分析法 B.绝对值分析法 C.相对值分析法 D.等价类划分法

5.为了提高测试的效率,应该( D )。 A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据 C.在完成编码以后制定软件的测试计划

D.选择发现错误可能性大的数据作为测试数据

6.现有一个计算类型的程序,它的输入只有一个Y,其范围是—50≤Y≤50。现从输入的角度考虑设计了一组测试用例:—100,100,0。设计这组测试用例的方法是( B )。 A.条件覆盖法 B.等价类划分法 C.边界值分析法 D.错误推测法

7.实际的逻辑覆盖测试中,一般以(

C

)为主设计测试用例。 A.条件覆盖 B.判定覆盖 C.条件组合覆盖 D.路径覆盖 8.{ PROCEDURE averagy i = 1; total.input = total.valid = 0; sum = 0; DO WHILE value[i] -999 AND total.input = minimum AND value[i] 0 THEN averagy = sum / total.valid; ELSE averagy = -999; ENDIF END averagy 上面是一个求平均值的程序,请问该程序段的McCabe环路复杂性为多少?( C ) } A.4 B.5 C.6 D.7 9.测试人员在提交软件缺陷报告后,很可能发现开发人员对报告的缺陷存在异议。因此需要一个双方认同的准则,用于判定软件产品是否存在软件缺陷。在实际的软件项目工作中,我们通常采纳的判定准则是(

B

)。 A.测试人员提供的这个软件缺陷的证据

B.软件产品的运行结果与需求规格说明书不一致 C.可以客观地描述这个软件缺陷 D.软件产品的运行结果与测试人员预期的不一致

10.从供选择的答案中选出同下列关于软件测试的各条叙述关系最密切的字句。

在测试具有层次结构的大型软件时,有一种方法是从上层模块开始,由上到下进行测试。此时,有必要用一些模块替代尚未测试过的下层模块。(

A

) A.桩 B.仿真器 C.模拟器 D.原型

11.集成测试时,能较早发现高层模块接口错误的测试方法为( A )。 A.自顶向下渐增式测试 B.自底向上渐增式测试 C.非渐增式测试 D.系统测试

12.系统测试一般从客户角度考察和评价软件产品的质量,不考虑开发方关注的质量特性。那么,下面那一个质量特性一般不是系统测试的重点?(

D

) A.是否符合有关的国家和行业标准 B.产品版本升级是否容易

C.软件产品是否易于理解和使用 D.可复用的软件部件所占的比例

13.同时启动上百个模拟连接去请求服务器的服务,这种测试我们称之为( D )测试。 A.安全 B.重复 C.容量 D.压力

14.在软件质量概念中,不属于测试要达到的目标为(

D

) A.确保建立了测试计划,并按照测试计划进行测试 B.确保测试计划覆盖了所有的系统规格定义和系统需求 C.确保经过测试和调试,软件仍旧符合系统规格和需求定义 D.确保设计变更被正确的跟踪、控制、文档化

15.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?(

B

) A.功能测试 B.单元测试 C.结构测试 D.确认测试

1.提高测试的有效性十分重要,“高产”的测(

C

)。 A.用适量的测试用例运行程序,证明被测程序正确无误

B.用适量的测试用例运行程序,证明被测程序符合相应的要求 C.用少量的测试用例运行程序,发现被测程序尽可能多的错误 D.用少量的测试用例运行程序,纠正被测程序尽可能多的错误 2.在一个软件项目中,开发人员主要承担哪项工(

D

) A.验收测试 B.系统测试 C.回归测试 D.单元测试

3.某信息管理系统中,允许用户输入8位数字的市话号码。如果使用等价类划分法来设计测试用例,从保证测试效果的角度看,你认为哪一组是最佳的选择( C )。 A.6357000

7、8060380

5、100080、39103825 B.6257000

7、80603805 C.6257000

7、3910382

55、8252

323、空值、h? D.391038

25、8252

323、@、13910382500 4.如果一个排序程序所设定的测试用例为:(1)表空

(2)表中只有一个元素

(3)表中均有相同的关键字值

(4)元素已排序,则此测试方法称为( D )。 A.等价类划分法 B.边界值分析法 C.因果图法 D.错误推测法

5.软件测试方法中,黑盒、白盒测试法是常用的方法,其中黑盒测试主要用于测试(

B )。 A.结构合理性 B.软件的功能 C.程序正确性 D.程序内部逻辑

6.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( C

) A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法 7.{

int GetMax(int n, int datalist[ ])

\\{

intk=0;

for( int j=1; j

if( datalist[j] >datalist[k] ) k=j;

returnk;

\\} 上面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。 请问该程序段的McCabe环路复杂性为多少?(

B ) } A.2 B.3 C.4 D.5 8.使用程序设计的控制结构导出测试用例的测试方法是(

B ) A.黑盒测试 B.白盒测试 C.边界测试 D.系统测试 9.集成测试也叫做(

A

)。①单元测试 ②部件测试 ③组装测试 ④系统测试 ⑤确认测试 ⑥联合测试 A.③⑥ B.①② C.⑤⑥ D.③④

10.渐增式集成测试是将模块一个一个地连入系统,每连入一个模块( C )。 A.只需要对新连入的模块进行测试 B.都不需要再进行测试 C.要对新子系统进行测试 D.都要进行回归测试

11.软件开发公司组织各方面的典型用户在日常工作中对软件进行实际使用,并要求用户报告异常情况,这种测试我们称之为( C )。 A.系统测试

B.α测试 C.β测试 D.综合测试

12.单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现( C )的错误。 A.接口错误 B.编码错误

C.性能、质量不合要求 D.功能错误

13.在实际的软件项目工作中,测试人员运行测试用例,观察运行结果,当发现软件缺陷时提交软件缺陷报告。那么,测试人员判定一个运行结果中存在缺陷的准则是(

C

)。 A.这个运行结果与测试人员预期的不一致 B.测试人员可以从中找到缺陷的证据

C.这个运行结果与测试用例中的预期结果不一致 D.开发人员承认这个运行结果中存在缺陷

14.软件测试计划开始于需求分析阶段,完成于( B )阶段。 A.需求分析 B.软件设计 C.软件实现 D.软件测试

15.与设计测试用例无关的文档是( A )。 A.项目开发计划 B.需求规格说明书 C.设计说明书 D.源程序

1.下面说法正确的是

C

)。

A.经过测试没有发现错误说明程序正确 B.测试的目标是为了证明程序没有错误

C.成功的测试是发现了迄今尚未发现的错误的测试 D.成功的测试是没有发现错误的测试 2.不属于白盒测试的技术是 (

C ) 。 A.语句覆盖

B.判定覆盖

C.边界值分析 D.基本路径测试

3.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是

A )。 A.系统功能 B.局部数据结构

C.重要的执行路径 D.错误处理

4.软件测试过程中的集成测试主要是为了发现(

B )阶段的错误。 A.需求分析 B.概要分析 C.详细设计 D.编码 5.软件测试不需要了解软件设计的 (

D

)。

A.功能

B.内部结构 C.处理过程

D.条件

6.(

C )方法根据输出对输入的依赖关系设计测试用例。 A.路径测试 B.等价类 C.因果图 D.边界值分析

7.通常,在( D

)的基础上,将所有模块按照设计要求组装成系统 A.组装测试 B.系统测试 C.验收测试 D.单元测试

9.使用白盒测试方法时,确定测试数据应根据(

A

)和指定的覆盖标准。

A.程序内部逻辑

B.程序的复杂度 C.使用说明书

D.程序的功能

10.与设计测试用例无关的文档是

A )。 A.项目开发计划

B.需求规格说明书

C.设计说明书

D.源程序

1.负载测试是验证要检验的系统的能力最高能达到什么程度。

2.健壮性测试的测试重点为当出现故障时,是否能够自动恢复或忽略故障继续运行。对 3.可用性测试是对于用户友好性的测试,是指在设计过程中被用来改善易用性的一系列方法。对

4.软件测试管理原则之一是全面测试,它的含义:一是对软件的所有产品进行全面的测试;二是测试人员应对测试的全过程进行全程的跟踪。错 5.程序代码编写完成之后,软件测试工作开始。错 6.软件测试是测试人员的事,与开发人员无关。错 7.软件的Bug就是指程序运行时出现的故障。错

8.在n个变量的程序中,用边界值分析法设计测试用例,测试用例的个数为4n+1。对 9.缺陷状态为“已解决”表示该缺陷已经被测试人员回归测试完毕,准备归档移除。错 10.处于“已解决”状态的缺陷,下一步状态只能是“重新提交”或者“已关闭”。对 1.在进行负载测试的同时进行安全性测试是不合情理的。错

2.在性能测试中,如果发现SQLServer资源监控中的一个指标缓存点击率偏高,这说明系统运行效率较高。

3.在程序有修改的情况下保证原有功能正常的一种测试方法是回归测试。对 4.所有测试的标准都是建立在用户需求之上。对 5.黑盒测试用例在软件编码完成后才可以设计。错 6.软件测试技术要求不高,至少比编程容易多了。错

7.设计-实现-测试,软件测试是开发后期的一个阶段。

8.在n个变量的程序中,采用健壮性边界值分析法设计测试用例,测试用例的个数为6n+1。

9.缺陷状态为“打开”表示该缺陷已被开发人员看到。对 10.缺陷状态为“已拒绝”表示该缺陷开发人员拒绝修改。对

1.系统测试的目标是要找出软件在与系统其他部分协调工作时出现的所有故障。错 2.压力测试是通过逐步增加系统负载来测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,以此来获得系统性能提供的最大服务级别的测试。对 3.安全性测试最终证明应用程序是安全的。错

4.软件开发是一个渐进的过程,测试计划需要根据需求变更及时调整。对 5.项目立项前测试人员不需要提交任何工件。对 6.软件测试随便找一个能力差的人就能做。错

7.永远也不可能完成软件测试,这个重担将从开发方转移到客户/用户的身上,用户的每一次使用就是一次测试。

8.当被测软件仍存在严重影响系统功能实现的缺陷,但存在合理的更正办法时,该软件可以发布。

9.缺陷状态为“打开”表示该缺陷刚提交,开发人员还未看到该缺陷。

10.处于“已拒绝”状态的缺陷,下一步状态只能是“重新提交”或者“已关闭”。对 1.性能测试的重点在于前期数据的设计与后期数据的分析。对 2.通常使用平均无故障时间MTBF来衡量系统的可靠性。对

3.先对每个模块分别测试,然后统一组装成软件系统的方法称为渐增式测试。错 4.测试计划是做好测试工作的前提。对

5.如果发布出去的软件有质量问题,那是软件测试人员的错。错 6.有时间就多测试一些,来不及就少测试一些。错

7.当用于软件测试的时间或资金不够用时,就完成了软件测试。

8.当被测软件仍存在严重影响系统功能实现的缺陷,但不存在合理的更正办法时,该软件可以发布。

9.缺陷状态为“已解决”表示该缺陷已经被开发人员修改好,但是测试人员还未进行回归测试。

10.处于“打开”状态的缺陷,下一步状态只能是“已解决”或者“已拒绝”。

推荐第7篇:软件测试技术问题总结

软件测试技术基础常见问题总结

1 软件测试基础

1) 什么是软件测试?

软件测试是通过手工或自动化的手段运行或测定被测对象是否满足所对应的需求;被测对象包括需求分析、设计规格说明书,系统编码等;在测试过程中,要根据相应的规格说明书设计一组测试用例,通过对测试用例的执行来发现系统中相应的错误保证软件质量的一项活动。

2) 软件生命周期是什么? ①.项目规划 ②.需求定义分析 ③.软件设计 ④.程序编码 ⑤.软件测试 ⑥.运行维护

3) 软件测试目的是什么? ①.发现系统的错误 ②.验证系统是否满足需求 ③.保障产品质量 ④.改进开发进程

4) 软件缺陷(bug)与软件错误(error)的区别和联系?

区别:软件缺陷是存在于软件之中的不希望或者不可接受的偏差,而软件错误是由于人为的原因产生的错误。缺陷是在软件中抽象存在的,而错误是人的行为问题。

联系:由于人的错误行为,在设计或者编码过程中的失误,导致了软件内部的缺陷。人为错误是引发软件缺陷的直接原因。一个软件错误必定引发一个或多个软件缺陷。 5) 软件测试如何改进软件开发过程?

软件测试和软件开发是不同的两个过程,但是通过软件测试发现软件的缺陷,然后通过缺陷的分析确定错误产生的原因从而发现软件开发过程中存在的缺陷。同时通过对测试结果的分析整理,还可以修正软件开发规则。因此,软件测试在一定程度上可以改进软件开发流程。

6) 分析“软件测试没有什么技术含量,不就是点击按钮,对系统进行操作吗?”。

分析:在上述问题中只所以出现这样的言论,是对软件测试理解的片面性和对软件测试理解的偏激造成的。对于一个规范的软件测试过程包括了软件测试的计划、系统分析、测试设计、开发等技术。软件测试是一个发现软件缺陷的过程,要想发现软件缺陷必须对被测对象有足够的了解,而不是简单的对被测对象的执行,更不是只是点击“按钮”。这里边包括了如何设计测试场景、测试数据、测试执行等过程。同样的通过软件测试发现系统的问题,通过问题的改进可以提高软件产品的质量,赢得用户的口碑,从而提高产品的市场竞争力,提高公司的利益。因此软件测试是一项非常有意义的关系公司存亡的活动。 7) 软件测试对象包括什么? ①.需求规格说明 ②.概要设计规格说明 ③.详细设计规格说明 ④.源程序 ⑤.系统 ⑥.用户手册 ⑦.帮助文档

8) 主要的软件测试手段分别是什么,如何理解?

软件的测试手段包括验证和确认;验证是对前一个阶段的验证;确认是对原始开发需求的确认,任何一个阶段的确认都应追溯到需求。 9) 软件测试的原则包括那些方面? ①.尽早的不断的测试 ②.测试过程中要设计测试用例 ③.程序员避免检查自己的程序 ④.彻底测试是不可能的 ⑤.测试应追溯到需求 ⑥.从“小规模”到“大规模” ⑦.注意群集现象 ⑧.严格执行测试计划 ⑨.测试结果进行全面检查 ⑩.测试维护 10) 软件测试的局限性包含哪些?

不能全面测试程序不可能测试到程序对任何可能输入的响应不可能测试到程序每一条可能执行的路径无法找出说有的设计错误 11) 为什么说软件测试不能保证软件质量

高质量的软件不是测试出来的,而是开发出来的;软件测试是保证软件质量的手段之一,不能够保证软件的质量

不是唯一手段。要想提高软件质量必须提高开发质量。 12) 常见的软件测试模型有哪些,分别具有什么样的特点?

测试中常见的模型有V、W、H、X等模型; 其特点如下:

①.V模型适用于产品,描述的是开发和测试的对应过程 ②.W模型是V模型,强调的是针对需求,设计的测试 ③.V、W模型不支持迭代 ④.x模型增加了探索性测试

13) 什么是V(或者W模型),它的特点是什么?

V模型是软件测试的一个基础应用模型,包括了软件开发和软件测试的两个阶段,并且两个阶段是串行的,V模型的左边是:需求分析、概要设计、详细设计、编码;右边包括:“单元测试”、“集成测试”、“系统测试”、“确认测试”和“验收测试”。

V模型的特点: ①.测试对象是程序本身

②.实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现 ③.测试深度高 ④.评审深度低

14) 什么是敏捷开发和敏捷测试?他们的特点是什么? 敏捷开发:敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

2 软件测试过程概述

1) 软件开发的生命周期是什么?

软件的开发生命周期包括:需求分析系统设计软件编码运营维护 2) 软件测试的生命周期(过程、流程)是什么?

软件测试生命周期包括:测试计划、测试设计、测试开发、测试评估、测试报告、缺陷跟踪。

3) 软件测试流程中的里程碑分别是什么?

①.测试计划通过评审 ②.测试设计完成 ③.测试脚本开发完成 ④.测试用例执行完成 ⑤.测试报告通过评审 4) 测试计划的主要内容包括那些?

①.测试的目的与范围 ②.测试的策略和方法

③.人力物力资源的安排(角色及职责)

④.测试进度的安排(什么样的事情应该在那个时间点完成,由谁来做,产物等) ⑤.测试风险分析 ⑥.停测标准 ⑦.完成标准

5) 测试计划应该完成那些目标?

①.合理的管理和组织测试资源 ②.指导测试工作的正常进行 ③.配合研发部门调整相关资源 6) 测试设计阶段设计的是什么?

测试设计阶段的设计包括测试方案的设计和测试用例的设计,主要是做测试用例的设计。 7) 什么是测试开发,测试开发过程中开发的是什么?

测试开发指的是在测试用例设计完成后,对测试用例中需要进行自动化测试的测试用例进行的脚本开发过程。

测试开发过程中开发的主要是测试脚本。

8) 什么是测试执行?测试执行过程中应该具备那些基础技能?

测试执行指依据测试用例运行测试脚本(自动化测试)或者运行被测对象,发现被测系统中的缺陷的过程。

在测试执行过程中一个合格的测试人员需要具有以下这些技能: ①.被测对象的操作能力,保证可以正确的运行和操作你的被测对象; ②.敏锐的观察能力,可以快速有效的识别BUG; ③.BUG确认能力

④.系统背景知识和相关业务知识

9) 软件测试的两种方法是什么?

软件测试的两种方法是:黑盒测试和白盒测试。 10) BUG确认的一般方法?

①.确认不是因为操作问题; ②.确认不是因为系统环境问题 ③.确认不是配置问题 11) 测试评估的主要内容是什么?

①.对软件需求评估

②.需求覆盖评估

③.基于代码的测试覆盖评估 ④.软件性能评估

12) 软件测试阶段分为那些?

①.需求审查 ②.设计审查 ③.程序审查 ④.单元测试 ⑤.集成测试 ⑥.确认测试 ⑦.系统测试 ⑧.验收测试 13) 如何确定单元测试中的“单元”?

①.采用面向过程开发的语言的系统单元可以是一个函数或者过程来组成; ②.采用面向对象技术开发的软件,单元可以是一个类或者一个类的示例等。 ③.对于网页和用户窗口界面,单元可以是一个文字输入窗口或一个按钮 14) 什么是回归测试?回归测试的策略是什么?

回归测试就是验证发现的缺陷是否真正的被开发人员修复,同时测试是否由于代码的修改而引入新的缺陷。 回归测试的策略包括: ①.完全回归测试

②.基于风险评估的回归测试 ③.基于缺陷修改的回归测试

3 单元测试与集成测试

1) 什么是白盒测试?

白盒测试是对软件的过程性细节多细致性的检查,是把测试对象看做是一个打开的盒子它允许测试人员利用程序内部的逻辑结构和相关信息设计或选择测试用例,对程序的所有逻辑进行测试,通过在不同点检查程序状态,确定程序的实际状态是否与预期状态相一致 注:白盒测试又称为结构测试和逻辑驱动测试

2) 白盒测试用例设计的方法有哪些?

①.语句覆盖 ②.判定覆盖

③.条件覆盖 ④.判定/条件覆盖 ⑤.条件组合覆盖

⑥.路径覆盖

3) 白盒测试的主要技术有哪些?

①.静态分析 ②.动态分析 ③.逻辑覆盖 ④.基本路径测试

4) 什么是静态测试,静态测试的主要方法?

静态测试是指在不运行被测对象情况下的测试;静态测试的方法主要有,以及编码规范和标准,对代码进行走查、审查和评审。 5) 什么是动态测试,动态测试的主要方法?

动态测试指在运行被测对象情况下的一种测试方式。动态测试的方法包括:黑盒测试和白盒测试。

6) 常见的白盒测试工具有哪些?

比如商业白盒测试工具IBM的PureCoverage、Purify、Quantify,开源工具:JUnit、CppUnit、HttpUnit、NUnit等。

7) 什么是集成测试,集成测试的关注点是什么?

集成测试是将通过单元测试的单元按照设计要求组合起来进行测试 集成测试关注的是模块与模块之间的接口问题

4 系统测试测试过程

1) 什么是系统测试,系统测试中常见的测试类型有哪些?

系统测试是将已经通过集成测试后的软件作为计算机系统的一部分与计算机硬件、某些支持的软件、数据、人员等元素结合起来在实际运行环境中对计算机系统进行严格有效,来发现软件潜在的缺陷,保障系统运行

系统测试的类型有:功能测试、性能测试、裸机测试、BVT测试、安装卸载测试、安全性测试、兼容性测试、易用性测试、容错测试、配置测试 2) 什么是功能测试,功能测试的测试要点是什么?

功能测试是指验证系统的功能是否满足用户需求的测试,功能测试的主要关注点是功能点和功能逻辑。功能点是指某一个功能的具体实现的点包括页面上的设置输入设置等。功能逻辑指需要完成的功能在系统执行过程中如何去实现,实现的是否正确符合需求。 3) 功能测试和性能测试有哪些不同?

①.功能测试和性能测试关注的要点不一样,

功能测试主要关注系统在功能模块上的实现或者功能逻辑上的实现是否正确,是否存在问题。性能测试关注系统执行的效率、响应速度、能够承受的负载等。 ②.在测试方法上不一样

功能测试一般应用手工测试,也可以根据具体的情况应用自动化测试,功能自动化测试的主要技术要点是实现目标对象的识别,仿真用户的真实的鼠标和键盘的操作。

性能测试一般应用自动化测试手段,主要是通过协议的仿真来模拟多用户情况下,测试被测系统的响应情况。

4) 什么是兼容性测试?兼容性测试的测试要点是什么?

兼容性测试又叫做配置测试,是指测试软件在特别的硬件、软件、操作系统、网络等环境中是否能很好的运行。

测试的要点是 1)软件之间兼容性 2)数据之间兼容性 3)硬件兼容性等 5) 什么是UI?一个优秀的UI通常包含哪些要素?

UI(User Interface)用户界面

优秀的UI包括以下几个要素:

界面标准和规范、直观、一致、灵活、舒适、正确、实用等

6) 什么是验收测试?什么是α测试?什么是β测试?

验收测试是验证系统能否达到用户需求说明书中的要求;

a测试是软件开发公司组织内部人员,模拟各类用户,对即将上市的软件产品进行测试,试图发现错误并修复的过程。

β测试是由软件的多个用户在实际使用环境中进行的测试,这些用户返回有关错误信息给开发者。

5 测试用例设计

1) 什么是测试用例?

测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行的最小实体;体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,测试用例的目的是为测试某个程序路径或核实是否满足某个特定需求的一份指导测试有效执行的文档。

2) 什么是黑盒测试?黑盒测试用例设计方法一般有哪些?这些测试方法如何综合应用?

是把测试对象看做一个打开的黑盒子程序员完全不考虑程序内部的逻辑结构和内部特

征,只依据程序的需求规格说明书,检查程序的功能是否符合功能说明 (黑盒测试又叫做功能测试或者数据驱动测试,所谓数据驱动是指它需要一组数据来验证功能的完善)

用例设计方法有:等价类划分、边界值、因果图、功能图、场景分析、错误推测法

黑盒测试用例设计方法如何综合应用

1) 一般情况下需要根据需求划分等价类进行分析; 2) 然后根据等价类应用边界值方法设计测试用例; 3) 应用错误推断法补充测试用例 4) 如果输入和输出之间存在着很强的逻辑关系,一般应用因果图方法设计测试用例。 3) 什么是测试方案,测试方案在测试过程中起到的作用是什么?

测试方案是一个对测试计划进行细化的文档,测试方案用来指导测试用例的设计,测试方案的内容包括细化测试目的、细化测试方法、细化测试环境、细化测试工具、细化测试范围。

测试方案在测试过程中的作用是:实现对测试计划的细化,指导测试用例的设计。

4) 测试用例在软件测试过程中起到的作用?使用测试用例的好处?

①.指导测试的实施

②.规划测试数据的准备

③.编写测试脚本的“设计说明书” ④.评估测试结果的度量基准 ⑤.分析缺陷的标准 好处

①.在开始实施测试之前设计好用例可以避免盲目测试,提高测试的效率 ②.测试用例的使用令软件测试的实施重点突出,目的明确

③.在软件版本更新后只需要修改少量的测试用例即可开展测试工作,降低工作强度,

缩短项目周期

5) 测试用例设计的一般过程是什么?

①.测试需求分析 ②.业务流程分析 ③.测试用例设计 ④.测试用例评审 ⑤.测试用例完善 ⑥.测试用例维护

6) 测试用例的主要要素包含哪些?

软件名称、版本 模块名称、功能特性、预置条件、用例编号、参考信息、用例说明、输入数据、预期结果、测试结果 环境要求、特殊规程要求、缺陷编号。 7) 测试用例设计的原则是什么?

①.测试用例的代表性

②.测试结果的可判定性 ③.测试结果的可重现性 8) 没有测试用例是否可以执行测试,如果可以测试工作应该如何展开?

9) 在测试工作中如果没有需求及其相关文档测试工作是否可以进行,如果可以,应该如何进行?

6 缺陷管理

1) 什么是软件缺陷?

①.软件未达到产品说明书表明的功能

②.软件出现产品说明书指明不会出现的错误 ③.软件产品功能超出说明书指明的功能

④.软件未到达产品说明书未指明但应该达到的目标

⑤.软件测试人员认为软件难以理解、不易使用、运行速度缓慢、或者最终用户认为不好 2) 软件缺陷一般分为哪些类型?

①.用户界面错误

②.程序的错误

③.计算错误 ④.需求错误

⑤.外部错误 ⑥.测试错误

3) 缺陷可以划分为哪几种严重等级,分别是什么?

致命级:

造成崩溃、死机,并且不能通过其他方法实现功能; “杀手锏“功能失效; 导致客户利益巨大损失的失效 严重级:

基本、重要功能无法实现; 操作安全方面存在漏洞;

系统缺少必要的负载限制导致大容量系统失效 一般级:

查询数据时,数据显示错误; 告警信息不全面,不准确; 次要功能失效 提示级:

界面不友好,操作不方便;

缺少必要的缺省信息;

错误提示不直观

4) 缺陷的优先级有哪些?分别简单描述?

缺陷的优先级可以分为高、中、低三个层次,高优先级的缺陷必须及时修改,不修改系统测试就不能进行下去,中优先及可以放在正常的BUG修改队列中进行修改;低有限级的缺陷可以在有时间的时候修改,如果时间紧张可以带在产品中进行发布。 5) 一个缺陷中包含哪些要素?

分配给缺陷的ID号、对缺陷的详细描述、缺陷发生的条件、缺陷发生的次数、缺陷发生的现象、提示缺陷的测试ID号、执行测试的人、测试工作站ID号、发现缺陷的时间和日期、发生缺陷的计算机、硬件平台、发生缺陷的子系统、软件的版本号、缺陷发现的数据库、缺陷是否再现、缺陷的重要性、分配修改这个缺陷的优先级、其他 6) 如何提交一份好的缺陷报告?

书面的、已编号的、易于理解的、可重现、易读、不要带有情绪化 7) 一个缺陷的生命周期是什么?状态如何转换?

New 、Open、close、Fixed、rejected、Reopen等

1) 当测试人员发现Bug时提交到Bug管理库,此时状态为New;

2) 测试管理人员对New状态的缺陷进行评审,如果通过评审则为Open,如果不能通过评审则为:Close;

3) 研发人员对于Open状态的缺陷进行验证,如果认为确实是一个缺陷,则至为Fixed,如果认为不是一个缺陷则改变为:Rejected;

4) 测试人员对于置于Fixed的缺陷进行验证,如果缺陷真的被修改则置于:close状态,如果没有修改则置于Reopen状态。

【全文结束】

推荐第8篇:软件测试总结(全)

软件测试的目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。

测试的目的就是为了保证软件质量

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

软件缺陷

软件缺陷是对软件产品预期属性的偏离现象 1.对产品规格说明的偏离

2.对用户期望的偏离,即用户要求未体现在产品中(可能是规格说明有疏漏,也可能是实现中的问题)

注意:软件缺陷不可能完全避免

软件质量

软件需求是衡量软件质量的基础

规定了的标准是软件开发必须遵循的准则

如果已开发的软件已经满足了那些明文规定的需求,却没有满足隐含的需求,软件产品的质量仍然是有问题的

测试目的

测试是程序执行的过程,目的在于发现错误(缺陷)

好的测试用例能有效地发现别的测试用例未发现的错误(缺陷) 成功的测试是发现了未曾发现的错误

确保软件的功能符合用户的需求,把尽可能多的问题在发布或交付前发现并改正: 确保软件完成了它所承诺或公布的功能 确保软件满足性能的要求

确保软件是健壮的和适应用户环境的

一些原则:

一个好的测试用例具有较高的发现过去未被发现过的错误的概率; 自己不能测试自己编写的程序;

对期望结果的描述是每个测试用例的必要组成部分; 杜绝不能重现或匆忙的测试;

既要编写使用有效输入条件的测试用例,也要编写使用非法输入条件的测试用例; 深入细致地审查测试结果 充分注意测试中的集群现象:测试后程序中残存的错误数目与该程序中已发现的错误数目成正比;

让最优秀的人员去完成测试;

保证软件的可测试性是软件设计的一个重要目标; 不要为了测试方便而修改程序;

测试工作必须在任务建立之初就确定目标。 Good-enough: 一种权衡投入/产出比的原则; 保证测试的覆盖程度,但穷举测试是不可能的; 所有的测试都应该追朔到用户需求;

越早测试越好,测试过程与开发过程应该是相结合的; 测试的规模由小而大,从单元测试到系统测试;

为了尽可能多的发现错误,应该由独立的第三方来测试; 不能为了便于测试修改程序

既应该测试软件该做什么,也应该测试软件不该做什么

测试方法

(1)测试方法分类:

根据软件测试的策略分类:

黑盒测试与白盒测试(功能性测试和结构性测试),静态测试与动态测试,手工测试与自动测试

根据测试的阶段分类: 单元测试,集成测试,系统测试

(2)功能性测试和结构性测试 A、功能性测试 基本观点:任何程序都可以看作是将从输入定义域取值映射到输出值域的函数(工程中的黑盒)。

测试在软件的接口处进行,测试人员完全不考虑程序内部的逻辑结构和内部特征,只根据程序的需求规格说明书,检查程序的功能是否符合它的功能说明(也称“数据驱动测试”)。

黑盒测试一般为了发现以下几类错误: 是否有不正确或遗漏的功能?

在接口上,输入能否正确地接受?能否输出正确的结果? 是否有数据结构错误或外部信息(如数据文件)访问错误? 性能上是否能够满足要求? 是否有初始化或终止行错误? „„

常用方法:边界值分析,健壮性分析,最坏情况分析,特殊值测试,输入(输出)等价类,基于决策树的测试„„

功能性测试的优点:

功能性测试与软件如何实现无关,所以如果实现发生变化,测试用例仍然有效; 测试用例开发可以与实现并行,可以压缩总的项目开发时间。 缺点:

测试用例的冗余

B 结构性测试

对软件的过程性细节做细致的检查,对所有的逻辑路径进行测试(也称逻辑驱动测试)。 结构性测试一般对程序模块做如下的检查:

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

对所有的逻辑判定,取“真”与“假”的情况都能至少测试一次; 在循环的边界和运行界限内执行循环体; 测试内部数据的有效性 „„

(3)功能性测试与结构性测试的比较 测试用例的基础:

功能性测试:需求规格说明

结构性测试:程序源代码(实现) 两种方法单独使用都是不充分的

如果所有已描述行为都没有被实现,结构性测试永远也发现不了; 如果程序实现了没有被描述的行为,功能性测试用也发现不了;

测试级别与功能性和结构性测试存在现实的关系: 结构性测试最适合在单元级别上进行; 功能性测试最适合在系统级别上进行;

完全测试程序是不可能的: 原因: 输入量太大 输出结果太多 软件实现途径太多

软件说明书没有客观标准

边界值分析 程序与函数: 程序的输入——定义域 程序的输出——值域 程序中变量的值域: 强类型语言 非强类型语言

边界值测试的基本原理: 错误更可能出现在输入变量的极值附近.单缺陷假设:失效极少由两个(或多个)缺陷的同时发生引起的。 Min、min+、nom、max-和max。

次边界条件:

有些边界条件在软件内部,最终用户几乎看不到,但是软件测试仍有必要检查。这样的边界条件称为次边界条件或者内部边界条件。如2的乘方和ASCⅡ。

边界值分析的特点和局限性

对于一n个变量函数,边界值分析会产生4n+1个测试用例。 边界值的取值取决于变量本身的性质。 边界值分析对布尔变量没有什么意义。 边界值分析假设变量是完全独立的。

边界值分析的问题 测试用例存在大量冗余 存在不完备现象 等价类测试

希望进行完备性测试 同时又希望避免冗余 等价类测试考虑的因素 单/多缺陷假设 健壮性

等价类划分:

把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。 希望进行完备性测试 同时又希望避免冗余

等价类测试步骤

使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。 (1)划分等价类

等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。 等价类的划分有两种不同的情况:

① 有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。 ② 无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。

在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。

(2)等价类测试--等价类划分原则 ①如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。

②如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。

③如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。 ④如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。

⑤如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

(3)等价类测试—选取测试用例 在确立了等价类之后,建立等价类表,列出所有划分出的等价类。 再从划分出的等价类中按以下原则选择测试用例: ① 为每一个等价类规定一个唯一编号;

② 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;

③ 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。

基于决策表的测试

在所有功能测试方法中,基于决策表的测试方法是最严格的,因为决策表具有逻辑严格性。

决策表很适合描述不同条件集合下采取行动的若干组合的情况。

决策表的组成

条件桩:列出了问题的所有条件。

动作桩:列出了问题规定可能采取的操作。

条件项:列出针对它所列条件的取值,在所有可能情况下的真假值。 动作项:列出在条件项的各种取值情况下应该采取的动作。 规则:任何一个条件组合的特定取值及其相应要执行的操作。在决策表中贯穿条件项和动作项的一列就是一条规则。

功能性测试的选择规则

如果变量引用的是物理量,可采用定义域测试和等价类测试。 如果变量是独立的,可采用定义域测试和等价类测试。 如果变量不是独立的,可以采用决策表测试。

如果可保证是单缺陷假设,可以采用边界值分析和健壮性测试。

如果可保证是多缺陷假设,可采用最坏情况测试、健壮最坏测试和决策表测试。 如果程序包含大量例外处理,可采用健壮性测试和决策表测试。 如果变量引用的是逻辑量,可以采用等价类测试用例和决策表测试。

结构性测试 静态测试: 括代码检查、静态结构分析、代码质量度量等。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。

检查项: * 代码风格和规则审核 * 程序设计和结构的审核 * 业务逻辑的审核

静态白盒测试是在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程。 好处:

尽早发现软件缺陷。

DD路径测试

该测试方法的突出特点,是它们都基于被测程序的源代码,而不是基于定义。 由于这种绝对化的基础,结构性测试方法支持严格定义、数据分析和精确度量。

程序图 定义

给定一个采用命令式程序设计语言编写的程序,其程序图是一种有向图,其中:节点是程序语句,边表示控制流。从节点i到节点j有一条边,当且仅当对应节点j的语句可以立即在节点i对应的语句之后执行。

DD路径

决策到决策的路径(DD-路径)是指语句的一个序列,从决策语句的“出路”开始,到下一个决策语句的“入路”结束。 在这种序列中没有内部分支,因此对应的节点像排列起来的一行多米诺骨牌,当第一块牌推倒后,序列中的其他牌也会倒下。

链是一条起始节点和终止节点不同的路径,并且每个节点都满足内度=1、外度=1。 初始节点与链中的所有其他节点有2-连接,不会存在1-连接或3-连接。(P55, 4.2.6) 有一种长度为0的退化链情况,即链有一个节点和0条边组成。

DD路径测试定义 定义

DD-路径是程序图中的一条链,使得:

情况1:由一个节点组成,内度=0。

情况2:由一个节点组成,外度=0。

情况3:由一个节点组成,内度≥2或外度≥2。

情况4:由一个节点组成,内度=1并且外度=1。

情况5:长度≥1的最大链。

对于给定的程序,可以使用多种不同的程序图,所有这些程序图都可以简化为惟一的DD-路径。

DD-路径图定义

给定采用命令式语言编写的一段程序,其DD-路径图是有向图。其中,节点表示其程序图的DD-路径,边表示连续DD-路径之间的控制流。

实际上DD-路径图是一种压缩图,在这种压缩图中,2-连接组件被压缩为对应情况5 DD-路径的单节点。

如果每条DD-路径都被遍历(C1指标),则我们知道每个判断分支都被执行,这要求遍历DD-路径图中的每一条边。

较长的DD-路径一般代表复杂计算,可以合理地认为是单独的函数。对于这样的DD-路径,应用多个功能性测试可能比较合适,尤其是边界值和特殊值。

DD-路径的依赖对偶

DD-路径对偶之间的最常见得依赖关系是定义/引用关系,其中变量在一个DD-路径中定义(接受值),在另一个DD-路径中引用。这种依赖关系的重要性在于,它们与不可行路径问题有关。

定义/使用测试覆盖指标

T是拥有变量集合V的程序P的程序图G(P)中的一个路径集合。 定义

集合T满足程序P的全定义准则,当且仅当所有变量v∈V,T包含从v的每个定义节点到v的一个使用的定义清除路径。 定义

集合T满足程序P的全使用准则,当且仅当所有变量v∈V,T包含从v的每个定义节点到v的所有使用,以及到所有USE(v,n)后续节点的定义清除路径。 定义

集合T满足程序P全谓词使用/部分计算使用准则,当且仅当所有变量v∈V,T包含从v的每个定义节点到v的所有谓词使用的定义清除路径,并且如果v的一个定义没有谓词使用,则定义清除路径导致至少一个计算使用。 定义

集合T满足程序P全计算使用/部分谓词使用准则,当且仅当所有变量v∈V,T包含从v的每个定义节点到v的所有计算使用的定义清除路径,并且如果v的一个定义没有计算使用,则定义清除路径导致至少一个谓词使用。 定义

集合T满足程序P的全定义-使用路径准则,当且仅当所有变量v∈V,T包含从v的每个定义节点到v的所有使用,以及到所有USE(v,n)后续节点的定义清除路径,并且这些路径要么有一次的环经过,要么没有环路。

单元测试

单元测试时对软件基本组成单元进行的测试,这里的基本单元不一定是指一个具体的函数或一个类的方法。

单元具有一些基本属性,如:明确的功能、规格定义,与其他部分明确的接口定义等,可以清晰地与同一程序的其他部分单元划分开来。

单元测试的目的

验证代码是与设计相符合的; 跟踪需求和设计的实现;

发现设计和需求中存在的错误; 发现在编码过程中引入的错误。

对单元测试的错误认识

单元测试浪费了太多的时间;

单元测试仅仅是证明这些代码做了什么; 很棒的编程人员的工作不需要单元测试; 不管怎样,集成测试将会抓住所有的bug; 单元测试的成本效率不高。

单元测试应坚持的原则

对全新的代码或修改过的代码进行单元测试; 对被测试单元需达到的一定的代码覆盖率要求; 当程序进行了修改,要进行回归测试。

集成测试

也叫做组装测试、联合测试、子系统测试和部件测试。 是在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统,进行集成测试。

集成测试关注的重点

在把各个模块连接起来时,穿越模块接口的数据是否会丢失。 各个子功能组合起来,能否达到预期要求的父功能。

一个模块的功能是否会对另一个模块的功能产生不利的影响。 全局数据结构是否有问题,会不会被异常修改。

单个模块的误差积累起来,是否会放大,从而达到不可以接受的程度。

集成测试策略

功能分解法,调用图法,MM路径法

基于功能分解的集成测试:

自顶向下集成,自底向上集成,三明治集成,大爆炸集成

自顶向下集成

自顶向下集成从主程序(树根)开始。所有被主程序调用的下层单元都作为“桩”出现,桩就是模拟被调用单元的一次性代码。

自底向上集成

自底向上集成是自顶向下顺序的“镜像”,不同的是,桩由模拟功能分解树上一层单元的驱动器模块替代。需要编写驱动器。

三明治集成

三明治是自顶向下和自底向上集成的组合。

桩和驱动器的开发工作都比较小,不过代价是有大爆炸的后果。

大爆炸集成

这种方法最容易:这种集成将所有单元在一起编译并进行一次性测试。这种方法的缺点是,当发现缺陷时,没有多少线索能够用来帮助确定缺陷位置。

因果图是从用自然语言书写的程序规格说明的描述中找到因(输入条件)和果(输出或程序状态的改变),通过因果图转化为判别表。 因果图方法最终生成的就是判定表。 因果图的适用范围

如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。 因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。

用因果图生成测试用例的基本步骤: (1) 分析软件规格说明描述中,哪些是原因 (即输入条件或输入条件的等价类),哪些是结果 (即输出条件),并给每个原因和结果赋予一个标识符。

(2) 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。

(3) 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。 (4) 把因果图转换成判定表。

(5) 把判定表的每一列拿出来作为依据,设计测试用例。

推荐第9篇:软件测试年度总结

2016年软件测试年度总结

亲爱的领导:

您好!

来公司已经2年半,担任软件测试工程师,这个看似不起眼的工作岗位,但也是公司很重要的环节,我自认为在工作中算是尽职尽责绝不含糊,从来不以一位员工的态度测试,本着以公司立场和买家对待我们的手表、APP、手环;同事之前团结友爱,互相帮助,有新同事在测试过程中遇到不明白的地方,我会第一个站出来协助一起完成。测试过的每一个BUG都记在脑海里面,过目不忘。工作中发现对方不足委婉提出,别人对自己的意见也积极改正,每一天都在努力提高自己为公司自己创造存在的价值。

一、工作内容

 主要负责MTK626

1、MTK250

2、MTK6260、量产维护版本和首版软件系统测试和BUG跟踪;

 手环配对IOS和Android分动手环静态页面测试、BUG提交禅道、跟踪;  第三方APP测试西瓜皮IOS端和Android测试及问题提交给第三方公司修改、跟踪;

 第三方APP关爱护航IOS端和Android测试提交给第三方公司修改、跟踪;  第三方Fwatch IOS端和Android测试及问题提交给掌盟修改并协助问题验证;

 分动穿戴、分动手环、分动伴侣、乐活、乐跑、稚爱测试及BUG提交禅道、跟踪;

 编写分动伴侣的测试用例、参与审核;  专项验证;

 编写所有APP支持语言列表和新增语言维护到服务器;  626

1、6260、2502平台共性BUG总结;

 编写Meta2_3G - 写IMEI号说明维护到服务器;

 所有项目开关机logo、动画附件归类和新增附件每周维护;  编写大数据部所有APP自检内容和参与评审;

 编写NX9_苹果风格功能列表和新增维护到服务器;

 编写M6261A、6261D主菜单功能列表和新增菜单维护到服务器;  编写2502语言支持列表和新增菜单维护到服务器;  集合2502静态图维护到服务器;

 所有项目工程测试指令集合和新增内容维护到服务器;  编写6261/2502/6260平台版本测试注意事项;

 遇到每一个必现死机BUG先进行同平台其他项目验证是否也存在,通知软件工程同步修,并且改积极配合验证找出BUG原因,然后把处理结果分享给测试组其他成员测试过程中留意并且提出来;

二、测试心得分享

 每天的准备工作,首先前一天下班前要把第二天测试的机器找到,先充电;提前把下个测试项目的机器找到充电,下个项目没有机器的情况下,与项目经理确认是否有机器也好提前给项目经理准备机器的时间;因为项目经理有时候忙其他事情去了,不可能立马准备好;与项目经理确认没有机器后,回复邮件后告知量产维护版本组长安排下一个版本。

 首版测试首先要核对产品规格书,是否有项目经理写错的地方,和配置与实际的机器配置不一致的,要划重点写在邮件抬头。然后核对客户需求,核对附件内容,如有需求和附件内容不明确的地方请和项目经理确认,确认完之后必须以邮件的形式回复【方便其他同事测试查询和后续有疑问要确认】测试到有修改时钟,需先检查附件:数字时钟检查从0-24有无缺少的数字,AM/PM;模拟时钟要检查秒针、分针、时针长短顺序是从长到短,注意了长短一样的情况经常出现;秒针、分针、时针的数量要够,如有缺少,请把时间调到缺少的时间段,看是否显示错误。核对功能是否齐全,把该平台支持的功能,未内置齐全的建议一栏写上。测试功能后最后把蓝牙距离、计步器专项验证好粘贴在邮件里面,如蓝牙距离少于10M一定要特别标明,请项目经理安排客户硬件检测。计步器差异大的同样在邮件里面特别标明软件已经一起排查,邮件抄送给硬件工程师。【首次测试每一台都要测】

 量产维护版本机器不够,特殊情况下软件紧急无法核对基础版本,找一个同平台配置一样的下载基础版。软件下载好后先核对开关机动画、开机logo、蓝牙名称、语言、菜单功能UI显示、子功能是否与基础版本一致。核对客户需求,需求有修改错误、未修改完的情况下,回邮件重新修改。测试过程中遇不能连接蓝牙:换一台手机试试,再不行,换一台手表下载同一版软件试试,【包括其他蓝牙有关的问题也要这样确认】。遇摄像头打开提示错误:请确认基础版本是否正常,如正常!把软件下载在正确的机器上是否能正常,如正常是机器有问题。如果错误,软件有问题。测试遇到某一个界面某一个位置触摸不灵【比如相机界面的右下角返回按钮】,切换到其他界面相同的位置触摸正常,是软件问题触摸区域还可以优化。

三、存在的问题和打算

尽管经过一些努力,我的测试水平还需进一步提高。在以后的工作中,我将加强自主管理的意识,加强理论和业务学习,不断提高业务技术水平,使自己的工作达到一个更高的层次,能外出为相关项目公司做培训,有问题积极与领导进行交流,出现工作上和思想上的问题及时汇报,也希望领导能够及时对我工作的不足进行批评指正,使我的工作能够更加完善。

今后我会加强硬件和外语专业知识的学习。只有这样才能进一步提高公司的效率,增强公司的竞争力,在加强本专业业务能力的同时,要不断的学习,扩展知识面,为公司的发展和自身的发展打下良好的基础。

四、个人建议

这一年来我们部门有明显进步,部门之间近期工作流程越来越规范,正在改善责任制度、管理体系等,个人有以下几个小建议:  软件工程师出版本后无自检意识,导致量产维护版本只修改一条需求(例如:语言、开关机logo、开关机动画、蓝牙名称)也会有存在没有修改好就发申 

   

 

 

以上是个人年终总结

请测试邮件,导致测试人员从安排测试到搭建环境后发现问题,要向项目经理和软件工程师确认中间是否有新增需求等等,浪费一下不必要的时间,一般这种情况费时在半小时左右。所以建议量产维护版本;

邮件内测试部提交的BUG,软件工程师修改后未备注修改点和不做修改点; 邮件内测试部提出的BUG涉及到app与手表、手环需共同分析解决的问题,一般双方都没有经过自检的情况下互相推卸责任,凭借直觉感知是对方的问题不给予处理,希望双方领导倡导大家自觉一起找问题解决问题; 项目经理需求邮件命名不规范,无法确认测试样机; 项目经理发邮件一封邮件多半软件需求,导致软件版本管理混乱,容易出错; 测试结果邮件备注需项目经理确认之处,不给予邮件回复,与软件工程师私底下沟通,测试部不清楚情况;

手环组需求大多项目是客户与软件工程师私下以QQ沟通需求和当面决定,后期发软件版本无需求补充在邮件内,测试过程中与项目经理确认客户软件定义不知情,这是非常影响项目进度的问题;建议所有需求由项目经理了解到后以邮件的形式发给相关人员;

手环不同客户需求不同,从手环端基础把版本上无法辨别所有功能,所以建议项目经理每一封邮件发出当前项目所支持功能表格;

已发软件版本正在测试过程中,软件工程师悄无声息的替换服务器上软件包;软件工程师发现需要重新出版本应该立即发邮件通知相关人员(测试部、项目经理);

测试手环国外APP需要翻墙的时间特别长,有时可能半天不成功,建议公司申请增加VPN;

项目经理管理混乱,没有提供样机,催促版本紧急; 建议部门领导给我们做一下硬件方面的知识培训;

推荐第10篇:软件测试理论总结

1、为什么要测试?软件测试的目的?软件测试的重要性? A、发现缺陷BUG/Defect B、评估软件、项目、产品上线风险? C、满足客户要求、改善软件质量

D、帮助开发发现问题、定位问题、修改问题

E、软件验收、也包括第三方的验收(验收测试、UAT) F、通过缺陷分析,从而预防同类缺陷的发生。

G、错的:软件测试能缩短开发周期。也不能直接降低开发成本。 H、改善软件的用户体验(易用性、性能、稳定性)12306订票

角度:系统性思维(

1、

2、

3、

4、

5、

6、7+=100: 1+2+34+56+7=100)门萨测试 角色:用户:发现缺陷、改善用户体验

:开发:证明软件GoodEnough,定位缺陷,从而减少开发修改问题的时间

历史:证明程序是正确?--》发现功能缺陷、错误--》发现不足(易用性、性能、稳定性)--》缺陷预防

现实:验收、评估质量风险、第三方评测、为了盈利而测试(商业成功)(测试成本《《软件缺陷导致成本)

2、什么是软件测试?

IEEE(国际电器电子工程协会):目的:验证系统是否满足需求、验证实际结果跟期望结果的差异?

xll:在一定的软件、硬件、网络环境下(搭建测试环境LAMP),遵循相对规范的测试流程,使用合适的测试工具,合理的测试方法,测试或运行软件,其目的是为了验证系统是否满足需求、验证实际结果跟期望结果的差异。

3、软件测试的工作内容? BAT:Baidu、Alibaba、Tecent

4、测试与调试的区别: 对象:代码、文档;代码 人:测试工程师;开发

流程:有规范的流程(除了随机测试和探索性测试外);无流程 目的:发现问题;定位和解决问题

5、测试的七大原则:

A、测试只能证明软件存在缺陷,不能证明软件没有缺陷(证伪不证真) B、测试是无法穷举?(输入数据是无法穷举、处理逻辑路径是无法穷举),学习测试用例的设计方法。

C、测试应该尽早测试?(发现缺陷和修改的成本越早越低。需求-设计-代码-测试-运行) 测试应该在需求之后?设计之后?编码之后?测试应该尽早介入,测试应该贯穿整个软件生命周期。

D、缺陷的80/20原则(群集效应)。如果测试发现某个模块有问题?继续深入测试。刨根问底?破案?

E、杀虫剂悖论(软件对用例会免疫力)不断更新测试用例、更新的测试思维

F、测试依赖于商业背景(与行业知识相关)结合专业和工作经历和准备相关的项目。优点

SWOT 优势、劣势、机会、威慑(竞争对手)准备行业软件 G、不存在缺陷的软件并不代表是有用的系统。

一个合格、优秀、卓越、伟大的测试工程师的能力与素质的要求? 素质、性格、能力、管理、英语、行业六大维度回答 答

6、测试与开发的关系(独立性)

未来趋势:3大趋势:

1、测试与开发的结合越来越紧密;

2、测试与行业背景结合越来越紧密

3、专项测试(测试分工会越来越精细),大数据测试(数据库,用户工程)

IT,DT。

比较分析不同网站的购物流程:亚马逊、当当网、京东、淘宝(CDC)联众游戏、QQ游戏

1、测试人员也开发,开发也做测试(Google:吃狗粮的文化)

2、测试人员独立与项目(在项目中有专职的测试人员:客观)

3、测试人员独立部门(有专门的测试部门:权威)

4、测试人员独立技术(测试工具部、测试技术部)

5、测试人员独立于公司(测试服务机构或者公司)

缺点:沟通越困难,对产品或者项目的熟悉越少。感情色彩:这是个非常严重的bug!!!!!

测试人员发现了BUG,开发人员不愿意修改,该怎么办? 加班?敏感问题?三方思考:对方、客观中立、自己

地铁自动售货机

PM

1、计划阶段:可行性分析:A、经济可行性分析;B、技术可行性分析(外包)

计划项目里程碑:计划、需求SRS、概要设计HLD、详细设计LLD、编码、测试、运行与维护

输出软件项目计划

SPP(Software Project Plan)PM

输出软件确认与验证计划 SVVP(Software verfication Validation Plan)软件测试计划 TPM

2、需求阶段:产品(金蝶):调研与项目(用户)

SE 系统工程师

what to develop?黑盒

TSE 分析测试需求挖掘用户的隐性需求

需求规格SRS:功能需求:

1、接受货币

2、选择商品

3、计算功能

4、输出商品和找零、

5、商品管理

性能需求:30S之内输出商品和找零 可靠性需求:7X24小时

易用性需求:良好易用性,不需要培训。最好用的软件baidu 需求分析的技术:UML建模(需求工程)

3、设计阶段:概要设计HLD (High Level Design 高层设计):模块分解与接口的定义。

1、接受货币(识别真伪、识别面额、识别类别)分解原则?高内聚低耦合?(百度)

(无直接耦合、数据耦合、印记耦合、控制耦合、公共耦合、内容耦合)回归测试

2、接口:函数接口、消息接口、文件接口(QQ修改头像)、数据库接口

详细设计LLD(Low Level Design 底层设计):算法的描述(程序=数据结构+算法/思路(各种排序))流程图、伪码。白盒

4、编码阶段:熟悉一门编程语言的语法 C、Java、PHP和一个开发工具或者平台 VC、Eclipse等

熟悉一门脚本语言:python、ruby、perl、tcl、shell

BAT

5、测试阶段:测试工具、方法、流程

6、运行与维护:技术支持

测试应该贯穿整个软件生命周期。

1、测试应该在SRS之后?

HLD

LLD

CODE

瀑布模型:缺点:不适应需求变更频繁的项目。适合产品开发的项目。测试滞后于开发。

V模型:

用户需求URS----------验收测试UAT(User Acceptance Testing) 需求规格SRS--系统测试ST(System Testing) 概要设计HLD-------------------------集成测试IT(Integration Testing) 详细设计LLD-----------------单元测试UT(Unit Testing) 编码CODE------------代码评审CODE Review

H模型、X模型。

1、方法的背景?

2、方法的操作步骤、

3、优缺点、

4、适用范围、5与其他方法怎么样配合、6重点、要点、难点 等价类:

1、背景:why?输入无法穷举,我们不能测试所有情况,必选选择有代表数据来验证

2、操作步骤:

1、分析被测试对象输入条件以及子条件(关键点:考虑隐性子条件,条件正交完备)

2、根据等价类划分原则划分有效等价类和无效等价类

原则:

1、规定范围或者格式,譬如长度6~18位,可以划分1个有效、2个无效等价类

2、规定的集合或者满足某个条件,譬如一些下拉列表的选择,可以划分1有效、1个无效

3、规定了必须如何,譬如组成、开头,可以划分1个有效和若干个无效。

4、规定是布尔量,譬如是否已经注册,可以划分1个有效和1个无效

5、规定是多种选择(还有不同的处理方式),譬如163邮箱注册的后缀,可以划分成若干个有效,和1个无效。

3、根据等价类设计用例原则:(

1、用一个用例覆盖尽可能多的有效等价类;

2、为每一个无效等价类单独设计用例:为了更好定位问题)设计数据

原则:同样效果情况下用例数尽可能少,精确定位问题。

3、优缺点:适用范围广、能以有限用例达到比较好覆盖无法穷举的输入。

缺点:方法没有刻意考虑边界,只能针对单个输入条件,没有考虑输入之间组合以及输入与输出的关系。

4、适用范围:只要有业务规则的情况下,最好是有清晰的业务规则

5、与其他方法怎么样配合:一般情况下会跟边界值方法结合使用。

6、要点:等价类划分的原则:尤其是要注意隐性条件(完整性,不要遗漏)

思考:微信发送图片、上传QQ头像、导入文件这类如何使用等价类

边界值:

1、背景:why?:很多错误通常都发生在边界上。

2、操作步骤:

1、分析被测试对象输入条件以及子条件

2、分析上点、离点和内点

3、根据边界值设计用例的原则设计数据去覆盖可能上点、离点和内点

3、优缺点:优点:能够比较高效发现问题 缺点:不能考虑输入与输出之间的关系

4、适用范围:规定了大小、长度、值的范围、分辨率(广义)

5、与其他方法怎么样配合:与等价类配合

6、要点:找到边界(隐含的边界)

航空行李托运:重量不能超过30公斤,如果超过就要收费,正常人4元每公斤,外国人收6块,头等舱是其他舱的2倍 残疾人是正常人的1/2.

判定表/决策表:

1、背景:why?:输入条件很多情况(要么满足、要么不满足),不同条件组合下输出结果也很多,希望条件跟结果的一一对应的关系

它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确

2、操作步骤:

1、分析被测试对象的输入条件,同时分析各种可能的输出结果()

2、列出所有的条件和动作()

3、填写条件项和动作项

4、合并相似规则

3、优缺点:优点:能解决复杂条件之间逻辑组合,比较清晰列出所有的组合

缺点:一旦条件数过多,组合数会很庞大,合并存在漏测的风险(很难精确定位问题)。 对于条件,只能是有两种取值(为真、为假)

4、适用范围:条件只有两种取值的多条件组合的例子

5、与其他方法怎么样配合:与因果图

6、要点:找出业务条件规则,列出各种可能输出结果。(测试象棋马走日这个规则)当条件比较多>5 要考虑是否有中间结果(简化)

正交试验法

1、背景:弥补判定表方法可能导致用例规模非常庞大,多条件组合的数量非常巨大。

根据伽罗瓦理论,条件之间的两两组合如果不出问题,三三组合以上出问题的概率小,这样 一来,可以用非常少的用例来达到比较好的测试效果。

2、操作步骤:

1、分析输入条件以及条件的取值范围。(筛选出来的条件之间没有约束关系)

2、选择合适的正交表(计算需要最小正交表的试验数,然后分两种:

1、单一水平:去挑选比需要大但是是最接近的正交表,直接套用;合并去匹配正交表-->分解

2、混合水平:) 保证试验数最少

3、根据正交表(拆分之后)设计测试数据(每一列行是一个测试项),如果是空的地方,可以根据实际需要加权处理。

3、优缺点:优点:在保证一定均匀覆盖率的前提下可以大大降低试验次数(测试项),缺点:可能有一定的遗漏

4、适应范围:配置类需求的分析,多条件多取值的业务测试。

5、与其他方法配合:等价类和边界值(输入框)

6、要点:选择合适正交表以及如何去合并和分拆!

Use Case法/场景法/流程分析法

1、背景:在实际工作中,我们很业务功能是通过工作流来实现,需要站在流程角度(用户角度),譬如购物流程

安装测试、转账流程、游戏场景

2、操作步骤:

1、分析业务的基本事件流和备选事件流(正常备选事件流和异常事件流(退出))担心备选流有遗漏

2、画出事件流图(Use Case图用例图)

3、根据图设计场景

4、根据场景来设计测试数据

3、优缺点:优点:站在用户的角度来测试(),可以很好地与开发配合,直接通过用例图转化,效率比较高

4、适应范围:验收测试用例的设计,只要流程

5、与其他方法配合:等价类、边界值(选多少个备选流)

6、要点:事件流分析,尤其是备选流的分析是最关键的地方。思路比较清晰,比较广 网银转账:写出基本流和备选,并且画出事件流图。 影响软件质量的因素: 技术:1.现有的技术:人

2.技术沉淀:技术文档,专利技术,指导书,问题库,经验库 流程:流程可以提高软件透明度,控制项目的进度,帮助项目组预防风险。 组织:组织体现的是管理

1.让合适的人去做合适的事情

2.流程的推动需要组织强有力的保障

软件质量管理体系 1.ISO9000 八项质量管理原则:

以顾客为中心:以用户的角度去思考问题(UAT) 下游环节为上游环节的客户

领导的作用:有激情,有谋略,演讲才能,身先士卒 全员参与:团队合作信任

基于事实的决策方法:个人能力基线(PCB)(量化管理) 持续改进(持续改善):最初是日本的一个管理理念,从初级员工到高级管理者都需要参与 互利的供方关系:共赢,共同创造利润 过程方法:

过程:输入转化为输出的活动

过程方法:过程的识别,相互作用以及管理 管理的系统方法:全局化的管理策略 2.CMM -- 初始级:

手工作坊式,个人英雄主义,没有相关过程,不可预测并且缺乏控制。

-- 可重复级:特点 ->可以重复以往的项目经验 证券项目(招商证券) 国信证券:

SRS

HLD

LLD

Code

test case 模板

关键过程域(KPA)(key proce area): 需求管理 配置管理 软件质量保证 --已定义级

统一标准,一致的过程(软件工程小组SEPG) 关键过程域:同行评审 --已管理级:可预测的过程

量化管理,通过数据量化,来实现预测项目 Gompertz模型

--优化级:对过程的持续改进 新技术或新思想的引入

关键过程域:缺陷分析-》预防缺陷 -》质量标准

CMM与CMMI的区别 CMM:阶段式表示

CMMI:阶段式、连续式

3.六西格玛

六西格玛管理法原则: 注重客户 注重流程 全员参与 预防为主

事实依据的决定 持续和突破性改进 六西格玛的实施方式:

DMAIC (define, measure, analysis, improve, control)

软件质量模型: 功能性

适合性:软件产品为指定任务或用户目标提供一组合适的功能的能力 准确性:软件产品提供所需要的精确度或和结果相符的能力 互操作性:软件产品与一个或更多的其他系统进行交互的能力

保密安全性:保护信息和数据的能力,不同权限的人可以操作不同的数据

功能性的依从性:遵守与功能性相关的标准,约定或法规的能力(国际标准,国家标准,行业标准,企业内部标准) 可靠性

成熟性:软件产品为避免由于软件中的错误而导致失效的能力

容错性:由于用户操作错误,软件可以处理相应的错误,而不是死机或崩溃 易恢复性:在失效已经发生的情况下,软件产品如何快速恢复使用的能力 可靠性的依从性:软件产品遵循与可靠性相关的标准或约定或法律法规 易用性 易理解性:软件产品使用用户能理解软件是否合适以及如何能将软件用于特定任务和使用环境的能力。

易学性:软件产品使得用户能学习其功能的能力(操作手册,帮助文档) 易操作性:软件产品使用户能操作和控制它的能力

吸引性:软件产品吸引用户的能力。界面美观,易用性要好 易用性的依从性:软件产品的易用性遵循相关的标准或法律法规 效率

时间特性:在规定的条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐率的能力。也就是完成用户的某个功能需要的时间

资源利用率:在规定的条件下,软件产品执行其功能时,使用合适的资源数量(CPU,内存占用)

效率依从性:软件产品遵守与效率相关的法规 维护性

易分析性:软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能力。(日志记录) 易改变性:修改缺陷的能力,实现功能的能力。(代码要高内聚,低耦合)目的在于降低修改软件的成本

稳定性:软件产品避免由于软件修改而造成意外结果的能力 易测试性:软件产品的问题能被确认的能力。定位问题的能力 维护性的依从性:软件产品的维护性遵循相关的标准 可移植性:

适应性:软件产品适应不同的环境的能力 易安装性:被安装的能力(一键安装) 共存性:和其他软件共同安装或存在的能力 易替换性:升级时替换文件的能力

可移植性的依从性:软件产品的可移植性遵循相关的标准

软件质量活动:

软件质量保证(SQA):从流程方面保证软件质量 测试:从技术方面保证软件质量

度量:

作用:理解,预测,评估和改进

度量的分类:四个基本度量项:规模工作量进度缺陷

BUG属性:

发现人

reporter 发现时间

date 缺陷状态

status (new, open, resolved, reopened, closed) (fixed, duplicated, Invalid, won\'t fix, postpone) 缺陷版本

version 缺陷所属的产品/项目/模块

product, project, feature 缺陷编号 no 缺陷严重程度serverity 缺陷优先级 priority 标题 title 详细描述 description 系统环境 OS (服务器环境和客户端环境) 测试环境(用户名/密码)test environment 重现率 repository 预置条件pre condition 步骤

steps 实际结果

actual result 期望结果

expected result 其他信息

additional information 用例编号testcase no *附件

attachment ================== 缺陷引发的原因 root cause 缺陷解决方案 resolution (改代码,数据库,环境问题) 代码改动范围 影响范围

================== 验证人 验证环境 验证范围 结果

第11篇:软件测试读书总结

软件测试(第二版)书的一些总结

软件测试这本书分为了六个部分,介绍了软件测试的基础知识。以下分部分是我的一些理解。

1.第一部分是软件测试综述,主要介绍了与软件测试及其相关内容的一些定义。

(1) 什么是软件缺陷?

软件缺陷可以理解为导致软件失败的缺陷,失败的软件可以理解为不符合软件产品说明书或不符合用户要求的软件。

(2) 导致出现缺陷的原因以及软件修复的难度(优先级)?

软件缺陷的原因实际是在说明书编写、设计、编码时出现了偏差错误,并且随着开发往后,更不容易修复。

(3) 软件测试是要做什么?

软件测试目的是要发现缺陷,给出提示,并且给出一定的建议(也可以是提供缺陷优先级或严重性等度量)。值得注意的是,并不是非要给出修改软件的建议,也可以是给出针对用户培训以规避软件缺陷之类的建议。 并且软件测试所针对的范围是交付用户部分,所以测试要包含文档测试。

(4) 软件测试时的原则

第一是不要求完全测试程序,要把测试控制在合理的测试量内(可由剩余缺陷和测试费用关系得到);第二是找到软件缺陷越多那么软件缺陷越多。

2.第二部分是测试基础,介绍了一些基本的测试方法(白盒与黑盒法的区别是是否参考了代码,动态与静态区别是是否运行了代码):

(1) 静态黑盒法测试产品说明书。

(2) 动态黑盒法,一般用来进行功能性测试。使用等价类划分的方法,将测试用例合理划分,将测试量控制在合理范围,并通过对测试用例和运行结果对比,得到测试结果。

测试不止是对数据测试,还要对软件状态进行测试(可参考状态图进行,测试软件状态转换是是否出现问题)

(3) 静态白盒法,设计、编程阶段审查设计、代码。

(4) 动态白盒测试,对程序中的代码段或者某个模块进行测试,测试用例不仅需要对数据覆盖(例如代码端公式里除数为0的情况),还要对代码覆盖(语句覆盖、分支覆盖、条件覆盖,一级比一级覆盖广一些)

3.第三部分是运用测试技术,介绍了一些常见的测试,如:配置测试、兼容性测试、外国语言测试、易用性测试、文档测试、软件安全测试,并以网站测试作为实例进行了讲解。

4.第四部分对测试方法进行补充。首先是自动化工具,可以减少测试一些性能难度,可以简单的在短时间进行多次测试;其次是共享测试,就一个软件的测试区域让不同测试者进行测试,属于内部测试;最后是beta版本测试,通过用户使用后的数据进行分析。

(1) 自动化测试工具中负载压力工具与干扰注入器、噪声发生器的区别?

负载和压力工具测试软件,用来给软件加压,加载,比如在测试文本处理程序的时候,设置其处于的磁盘空间和内存很小。类似于负载和压力工具干扰注入器、噪声发生器并不是提供固定不变的压力、负载而是不断变化,更不稳定。

5.第五部分详细介绍了测试的步骤(和各个过程产生的结果文档):

测试计划测试用例计划(包括:测试设计即在什么地方用用例,测试用例即测试用例详细说明,测试方法即怎样用用例)报告问题

值得注意的是,报告问题时需要对软件缺陷进行跟踪,才能及时了解软件缺陷被提出了没,正在被解决没,解决掉没。跟踪其处在生命周期的哪个阶段。

6.第六部分是职业的介绍展望。

第12篇:终总结软件测试

2011年年终总结

光阴飞逝,时光如梭,一年的工作转瞬又将成为历史,回想起刚来西安冠林智能科技的青涩,感慨万千。回首缅怀的是对之前工作的总结和经验,翘首待行的是对未来工作的开拓和进展。2011年即将过去,2012年即将来临。新的一年意味着新的起点、新的机遇和新的挑战,我决心再接再厉,使工作更上一层楼,努力打开一个工作新局面,更好地完成工作,扬长避短。

自2011年8月8日进入西安冠林科技研发部工作以来,我秉承认真完成工作,努力学习,积极思考的宗旨,在繁忙的工作之余刻苦学习专业知识,使个人能力逐步提高。我始终坚持在实际工作中严格要求自己,做到谨小慎微。

日子在弹指一挥间流逝,在需要总结之际才猛然间意识到时光匆匆。八月份刚开始入职,熟悉油田综合集控调度平台系统,开始测试,慢慢的对整个系统有了综合的理解。接着就是申请这个油田综合集控平台的软件著作权、公司的软件测评证书的申请,把自己对该项目的理解转换成文字写出来。12月份我开始接触采购合同,虽然来接触不长,但在领导的支持和帮助下,我较快地适应了工作。在处理合同问题时,我遇到了很棘手的问题,对方银行的账号跟公司名称对不上,发现的太晚了,钱款已经汇出去,最终这个问题以重新拟定合同而解

决。正是因为在工作中遇到这样的问题,养成了我很好的喜欢,在做每件事时,我都会很细心的检查,以免遇到类似超出能力范围的问题。 目前我在学习美工的专业知识,2012年有待转成公司美工,展望我在新的岗位所面临的机遇和挑战。我在思想上、学习上、工作上都做好了充足的准备,清醒地认识到自己的不足之处,也规划好了自己的发展道路。

记得08月08日刚公司的时候,自己很天真的认为测试的工作就是简简单单的测试模块,通过这一年细致具体的实践学习和研发的讲解才知道我之前的理解多么肤浅,可以说学习的时间是短暂的,但学习的收获是巨大的。

在工作过程中,我本着“用心,勤问,勤学”的态度,虚心向领导请教,做到不懂就问。只有树立严谨求学的态度才能学到有用的知识,只有牢记自己的职责和使命才能为企业做出成绩,只有在以后的工作中做到学以致用,兢兢业业,踏踏实实,才能不辜负领导的期望,做出骄人成绩实现自我价值。

研发部:XX

二零一二年一月十四日

第13篇:软件测试要点总结

前言

首先,请原谅我用标题吸引了你。这份文档是我整理的软件测试这门课的要点总结,我觉得软件测试这门课的考试要点也就在这里了,我猜测老师的考点也会在这里的。

我的计划是,打算完成这份文档里的所有问题,然后我会上传到班群。可由于我个人的时间有限,我想请大家在复习的时候能不能抽点时间完成一部分,如果大家都出一份力的话这将会很轻松的完成的。

我将会从面向对象部分开始完成文档,有兴趣的请从前面开始好吗?命名规则为:文档名+更新时间。建议大家上传到班群前,先下载最新的,整合后再上传……

正文

第一部分

什么是软件危机?软件危机如何解决?

什么是软件测试?软件测试的意义是什么?

什么是白盒测试?什么黑盒测试?请简述两者之前的区别和联系

什么是静态测试?什么是动态测试?

软件测试和软件开发过程具有怎样的关系?

什么是静态白盒测试和动态白盒测试?

白盒测试的重点及相应的对策是什么?

白盒测试的覆盖准则是什么?

白盒测试的工具有哪些?

持续集成对白盒测试有怎样的影响?

什么是静态黑盒测试?什么是动态黑盒测试?

什么是软件自动化测试?软件自动化测试的原理和方法有哪些?

软件自动化测试脚本有哪几类?各有和特点?

软件自动化测试的优势和限制是什么?

什么是性能测试?性能测试主要包括什么内容?

客户端性能测试的主要内容是什么?

网络性能测试的主要内容是什么?

服务器端性能测试的主要内容是什么?

什么是兼容性测试?主要包括哪些基本内容?

什么是向前兼容?什么是向后兼容?

数据共享兼容性主要有几种?

如何确定兼容性测试的测试用例和测试数据?

数据共享兼容性测试主要有几种?

如何确定兼容性测试的测试用例和测试数据?

兼容性测试环境的安装管理技术有哪些?各有何特点?

什么是可使用性测试?用户界面设计室一门科学还是一门艺术?

既然用户界面没有明确的对于错,应该怎样测试呢?

列举熟悉的软件产品中用户界面不一致的例子。

可用性测试是确定目标受众需求的方法有哪些? 魏胤

如何为预期目标受众确定可使用测试?

什么是安全性测试?主要包括哪些内容?

软件安全性测试方法有哪些?

什么是软件安全性分析?软件安全性分析的主要任务是什么?

为什么某些时候需要外购安全性测试?

C/S系统的特点及其对测试的影响是什么?

Web应用软件的特点及其对测试的影响是什么?

Web应用软件的测试类型有哪些?

Web应用软件的测试模型一般有哪几种?

Web应用软件的性能测试的过程是什么?

GUI软件具有怎样的特点?GUI的测试类型有哪些?

什么是实时系统?实时系统的测试步骤是什么?

第二部分

测试面向对象软件和传统软件有何不同?

答:与传统的面向过程的程序设计相比,面向对象程序设计产生错误的可能性增大,或者使得传统软件测试中的重点不再那么突出,使得原来测试经验和实践证明的次要方面成为了主要的问题。面向对象编程的特性如封装继承和多态性对测试的某些方面产生了影响.另一方面面向对象的开发过程以及分析和设计方法也对测试产生了影响有利于尽早测试.

什么是测试视角?从测试视角如何看待面向对象的基本概念?

答:测试人员必须以一种对软件的方方面面都提出疑问的态度来思考软件,这种方法称之为测试视角。

从测试视角看面向对象的基本概念:

对象:对象的封装、对象隐藏了信息、对象的状态、对象的生命周期。

消息:消息有发送者,消息有接收者,消息可能包含实际参数。

接口:接口封装了操作的说明,如果接口包含的行为和类的行为不相符,那么对这一接口的说明就不是令人满意的;接口不是孤立的,它与其他接口和有类有一定的联系。 类:

继承:

多态:

面向对象软件的测试模型是什么?

答:针对面向对象软甲的开发模型,测试模型包括:OOA Test、OOD Test、OOP Test、OO Unit Test、OO Integrate Test、OO System Test。

面向对象软件测试的层次是怎样的?

答:操作/方法,面向对象的单元测试(类测试),面向对象的集成测试,面向对象的系统测试。 取决于单元的构成,面向对象软件的测试采用三层或四层方式。面向对象测试通常采用三层方式,其中,单元测试针对类中的成员函数以及成员函数间的交互进行测试;集成测试主要对系统内部的相互服务进行测试;系统测试是基于面向对象集成测试的最后阶段的测试,主要以用户需求为测试标准。

什么是指导性审查?评价的标准和基本角色有哪些?

答:指导性审查是一种增强了的专门为检验模型而创建的检验技巧,也可以用来验证模型是否能符合项目的需求。

评价标准:需要回答三个问题,即模型是否正确?——正确性(对模型的准确程度的测量),模型对信息的描述是否完整?——完整性(对模型的包含性的测量),模型内容是否一致以及是否与它的的基础模型一致——一致性(对模型内部以及当前模型和它的基础模型之间是否存在矛盾的测量)。

基本角色:领域专家(根据特定的输入第一期望的系统),测试者(执行必要的分析已选择和设计有效的测试用例),开发者。

如何使用指导性审查的方法测试分析模型?

答:P168

如何使用指导性审查的方法测试设计模型?

答:P169

类测试的方法有哪些?类测试分为几个层次?

答:基本方法两种:静态代码检查和动态执行测试用例。对类的测试可以分两个层次进行,分别是方法内测试(用来测试单个的方法)和方法间测试(用来测试某一方法与类中别的由该方法直接或间接调用的方法间的协作情况)。

类测试需要考虑哪些方面的问题?

答:(1)测试人员、(2)测试内容、(3)测试时间、(4)测试过程、(5)测试程度

根据操作的前置条件和后置条件构造测试用例……

答:参考书上的例子

试述构建类测试驱动程序的设计思想。构造类中某个方法所对应的测试驱动程序……

答:参考书上的例子

试述分层增量测试(HIT)。

答:从基类派生得到子类时,不必为那些未改变的操作添加基于规范的测试用例,可以不加修改地复用基类的测试用例。如果测试的操作在规范和实现方面都没有任何修改,就不必运行这些测试用例。但是,如果一个操作的方法被间接修改了,就需要重新运行该操作的每个测试用例。此外,还需要运行附加的基于实现的测试用例。这样分析的应用及结果称为分层增量测试。

试述类测试的平行体系结构(PACT)的基本内容

测试抽象类有哪些方法?各有何优缺点?

(1) 为测试单独定义一个被测抽象类的具体子类。

优缺:如果不使用多重继承,抽象方法的的实现就不能轻易传递给抽象子类,但大部分的面向对象编程语言都不支持。 (2) 将它作为测试第一个具体子类的一部分进行测试 优缺:增加了测试具体类的复杂性。 (3)以对用于测试目的的抽象类的具体版本做直接实现为基础,即尝试找到一种为类编写源代码的方法从而使得该类可以作为一个抽象或具体类而很容易编译。 优缺:产生的合成代码狠复杂而且难以阅读,狠容易出错。 (4)使用指导性检查,而不使用基于执行的测试。优缺:构造器和析构器仅仅用来使用检查来测试就会比较复杂。

什么是对象交互?对象交互的类型有哪些?

答:对象交互是一个对象对另一个对象的请求,发送者对象请求接收者对象的一个操作,而接收者进行的所有的处理工作就是完成这个请求。交互包含对象和其组成对象之间的消息,还包含了对象和与之相关联的其他对象之间的消息.

有原始类和非原始类,非原始类又依据与其他实例交互的程度分为汇集类和协作类

什么是对象交互测试?对象交互测试需要考虑什么问题?

答:当参与交互的类已经被单独测试过,且具有完整的实现时,为确保对象之间能够正确的进行消息传递的进行的测试.

1、要区分那些与被测各对象有组成关系的对象和那些仅仅与被测对象有关联的对象

2、交互测试期间所创建的聚合层数与缺陷的能见度紧密相关

3、对象越复杂,在一轮测试之前应该被集成的对象就应该越少

什么是汇集类?什么是协作类?怎样测试汇集类和协作类?

答:汇集类的说明中使用其他类的对象,但实际上并不和那些实例交互,不请求他们的任何服务,只是维护与这些类实例之间的关联。列表、堆栈都属于汇集类。

汇集类的测试:沿用12章的关于基本类的测试方法,另外基于状态的测试技术也可以应用到汇集类的测试中。

协作类是具有更广泛交互的类,不是汇集类的非原始类就是协作类。协作类在它们的一个或多个操作中使用其他的对象,并将其作为实现中的不可缺少的一部分。

协作类的测试:必须在参与交互的类的环境中进行测试,需要创建对象之间交互的环境。

会使用正交阵列测试(OATS)的方法来选择交互测试用例,并说明其中的测试用例。

答:了解下吧P219

系统测试用例的选择策略是什么?

答:

1、确定用户使用系统的使用概貌,即确定用户是怎样使用系统的然后根据这些步骤创建测试用例

2、分析产品可能包含的缺陷类型,然后编写测试用例来检测这些缺陷。为了测试需求的一致性,可以从说明需求的用例来构建测试用例

系统测试的主要内容有什么?

答:功能测试:最基本的测试

性能测试:主要测试软件的运行性能

强度测试:测试系统能力的最高实际限度

安全测试:验证安装在系统内的保护机构确实能够对系统进行保护

健壮性测试:测试系统在出现故障时能否自动恢复或者忽略故障继续进行

安装卸载测试:确保用在系统中的软件包能够提供足够的安装步骤使得产品在工作条件下可以交付使用

系统测试覆盖率主要从哪两个方面进行衡量?

答:输入和输出,即测试人员能够估计测试用例使用了多少可能的输入,也可以计算在测试过程中产生了多少系统能够产生的可能输出。

测试文档主要有哪些类型?测试文档和测试计划的目标是什么?

答:测试计划、测试说明、测试报告。

目标:

1、测试文档有助于测试技术任务的完成。

2、测试文档增进了测试任务和测试过程之间的交流。

3、测试文档提供了组织、安排以及管理测试项目的结构。

风险的类别和来源有哪些?降低风险的策略是什么?

类别:项目风险、商业风险、技术风险。

来源:短时间面市、新的设计过程、新技术的应用、复杂度、使用频率、不可测试的需求。

如何获得有效的测试数据?

数据词典、设计文档。

确定测试需求需要注意什么问题?

验证需求、明确需求和功能路径之间的关系。

第14篇:软件测试流程总结

1、需求讨论,测试角度关注的问题:

(1)系统架构、开发方法、人员安排、实现过程、开发周期

(2)产品应用范围、面向的用户及用户人数、产品要实现的功能、使用的数据类型

(3)开发环境:开发工具版本、数据库版本、操作系统版本

(4)运行环境:硬件平台、操作系统、支撑环境(数据库版本、IE版本)、相关组件、服务

(5)安全要求:产品权限、数据库权限、部署的服务器信息、防火墙信息、要放开的端口号

(6)性能需求:系统支持的并发数量、响应时间、数据库中数据容量、占用的系统CPU、磁盘空间、传输速度、网络带宽等。

2、需求分析

(1)画出整体系统的(网络)拓扑图

(2)根据不同角色身份进行分析,画出系统流程图:用户角度、安装人员角度、维护人员角度

(3)从数据库角度进行深入分析:数据层、业务层、表现层

(4)系统包含的功能模块/子系统列表,画出各模块的流程图,各模块间的关系及衔接接口

(5)安全级别是否达标、对性能需求进行分析

3、测试准备工作

(1)环境准备:开发环境、测试环境、用户机干净环境虚拟机、复杂环境虚拟机(IE不同版本、操作系统不同版本、防火墙不同、数据库版本不同)

(2)数据准备:正式数据、不自洽数据

(3)书写测试功能点

(4)根据需求分析结果和测试功能点,制定测试策略、测试方法、测试周期、人员安排。

4、测试开始

(1)测试用例书写:根据八大测试用例方法书写:等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验设计方法、功能图分析方法、场景设计方法

(2)编写测试使用的sql语句、编写自动化测试脚本

(3)功能测试:可借助测试工具,例如:Xenu、Cookie Editor、QTP

(4)白盒测试:代码走读、静态结构分析法、逻辑覆盖法、基本路径测试法,工具:NUnit。详读w.config等配置文件,辅助理解程序整体结构,检查之前的测试点是否完善。

(5)数据库测试:数据备份与恢复测试、故障转移和恢复测试、数据迁移数据操作测试(包括不同版本数据库间的迁移、跨数据库类型迁移,例如SQL迁移到Oracle)。

(6)数据库压力测试

● 通过数据库连接数的变化,测试是否有连接泄露的现象

● 是否有数据表锁死等现象

(7)性能测试:连接速度测试、负载测试、压力测试,工具loadrunner

(8)安全性测试:建立整体的威胁模型,测试溢出漏洞、信息泄漏、错误处理、SQL 注入、身份验证和授权错误、XSS攻击。可用工具:

● Paros proxy (http:///fiddler),用于截获HTTP 通信数据

● TamperIE (http:///dl/TamperIESetup.exe),用于修改GET 和POST

(9)兼容性测试:利用之前准备的不同环境,测试产品兼容性及支持环境

(10)安装测试:不同环境、安装过程不同选项、不同路径

(11)参数测试:书写可配置参数的意义及语法说明文档,并进行测试

5、测试结束:

(1)测试总结:bug情况、系统稳定性、使用方便度、遗留待解决改进的问题

(2)功能点测试报告

(3)性能测试报告

(4)环境要求文档:操作系统的版本(包括企业版、标准版等)、位数;数据库的版本(包括企业版、标准版等)、位数;.Framework版本;不支持的环境

(5)使用手册:系统常见故障分析及排除说明、错误信息编码说明

(6)部署文档:包含FAQ的内容以及截图

(7)维护文档:系统目录结构说明、系统启动进程说明、数据备份说明

(8)外出安装前的检查文档

6、外出安装注意事项:

(1)设计若安装出现问题的紧急预案

(2)安装前检查环境(待写一个环境检查的小工具)

(3)根据事先写的检查文档一项项打勾、安装后对每一模块进行测试验证

(4)安装结束后,将IIS、WEB.CONFING、注册表信息、日志信息、防火墙信息、安装路径、安装程序等拷贝回来,撰写文档。

第15篇:软件测试管理总结

软件测试管理总结

软件测试工程师管理系统是我接触的测试管理项目,通过近两个星期对软件测试管理的

学习和实践,遇到了很多问题,觉得还是有很多经验需要总结。

随着软件开发规模的增加、复杂程度的增加,以寻找软件中的故障为目的的测试工作就

显得更加重要。因此,为了尽可能多的找出程序中的故障,开发出高质量的软件产品,必须

对测试工作进行组织策划和有效管理,采取系统的办法建立起来软件测试管理系统。在进行

测试工作识别管理的过程中,我主要做了测试计划,测试实施,测试总结这几部分工作。

一、测试计划的编写要足够清晰合理。

测试计划阶段的整体目标是为了确定测试范围、测试策略和方法,以及对可能出现的问

题和风险,所需要的各种资源和投入等进行分析和估计,以指导测试的执行。在计划中要明

确测试的目的,完善对测试人员的资源分配,设置测试的标准,责任及时间都有明确的进度

安排,指出所用工具。测试计划编写时要对照产品需求说明书,系统全面的对测试工作作出

筹划。

二、准确的填写bug记录单需进行充分的步骤记录。

在测试过程中,bug记录单不清晰,产品错误便不会容易再现。作为测试管理人员对于

问题记录单中必须包括的要素要了解。我曾经有过造成填写的问题记录单过于简练,只有结

果,没有清晰的操作步骤,没有描述产生错误的数据信息等,这些都会在测试实施过程中造

成不必要的麻烦,给开发人带来模糊理解。认识问题才能解决问题,我在以后的工作中正尽

可能避免这些问题。

三、测试结果的分析要全面公正。

测试结束后,对测试结果进行分析,以确定软件产品的质量,为产品的改进或发布提供

数据和支持。在管理上,应做好测试结果的审查和分析,做好测试报告的撰写和审查工作。

对软件测试工程师管理系统的管理工作中,我觉得还可以努力地还有,明确测试流程,

注意测试流程中各阶段的注意事项,及正确填写问题记录单。及时发现测试实施工作中的各

种问题,加强与开发人员的沟通,以便及时解决问题,保证产品测试进度。

第16篇:软件测试方法总结

软件测试方法总结

(一)

发布时间: 2008-12-12 17:07作者: lxm_lxm来源: 51Testing论坛

软件测试方法的总结,是lxm_lxm根据个人所做过的项目整理的,提供给新来的的朋友们。软件测试方法总结

一、界面

● 界面测试

(1) 测试界面设计是否合理、简洁、美观,操作是否方便

(2) 功能键、数据项信息是否齐全

(3) 确认系统中同一功能抌名称是否统一

(4) 设计样式、风格(查询条件样式;输入风格(点选/手输入);)是否与系统其它模块统一

(5) 确认页面内所有字段名称显示风格是否统一(居中、左对齐、右对齐,一般采用居中显示风格)

1、新增页面及功能测试

● 字段

在开始测试时应该保证数据的正确性,然后再从系统中找出各种Bug

(1) 各字段输入正确的信息值保存,确认系统是否可以正确完成新增操作。

(2) 进入添加界面不输入任何信息值,单击“保存”功能按钮,系统应该给出某个不允许为空字段的提示信息(属于边界测试)

(3) 建议不允许为空的字段前面加上„*‟作为标记(统一性,方便性问题)

(4) 编码/编号字段不允许输入中文及特殊字符,否则系统应该给出相应的提示信息

(5) 测试编码/编号字段不允许重复,否则系统应该给出相应的提示信息

(6) 确认字段是否已做长度限制,如果输入值超出长度范围,那么在保存时系统应该给出提示信息

(7) 非法测试,如:校验数值型字段输入非数值,保存时系统是否给出相应的提示信息(根据实际需要确定数值型字段是否能够接受负数)

(8) 边界测试,如:确认数值型字段的边界值(如:有效值为„0-100‟整数,那么输入-1或101保存时系统应该给出相应的提示信息;输入值为0、100系统应该能正确保存信息值;输入0到100内的整数值系统应该正确保存信息值)

(9) 精确值测试,测试小数位数是否在定义的长度内

(10) 字段精确值是否正确(四舍五入否)。

(11) 根据实际情况测试名称字段是否具有唯一性,(一般情况下名称是不允许重复的,具体问题具体分析),否则系统应该给出相应的提示信息

(12) 确认各字段名称书写是否正确(注意:要求编辑界面、住息列表中、错误提示信息、查询条件中的字段名称完全相同)

(13) 确认特殊格式的字段是否已做标准格式的限制(如:电子邮件、邮编等)

(14) 测试上级信息字段(如:上级XXX名称、上级XXX编号)的信息值是否根据所选择的上级XXX名称系统自动生成(注意:编号生成值一定是维护界面的编号,而不应该是相应表的那个主键编码)

(15) 测试如果某字段信息值是从另一个模块中选择输入的,那么需要确认其它相关联字段的信息值是否也相应的正确的自动带入,并且这些字段应该都是只读的

(16) 创建人/编辑人、发布人、创建时间、创建人字段应该设为只读的,而且此类字段值应该默认当前操作人的姓名

(17) 如果某个字段可以点选输入多个信息值,那么测试该字段是否接受,并保存了点选输入的多个信息值

(18) 对于多选字段,测试是否具有记忆上次选择值并已验重

(19) 测试字符型字段是否可以接受空格(统一性问题,建议不要接受空格)

(20) 引用其它模块的字段信息值的字段长度是否与被引用模块相应字段长度一致

软件测试方法总结

(二)

发布时间: 2008-12-12 17:13作者: lxm_lxm来源: 51Testing论坛

关键字:软件测试方法

6、常用功能键的功能测试

(1) 保存---所有编辑页面如果未输入任何信息值而单击“保存”,系统应该给出“XXX字段不允许为空”的提示信息

(2) 保存---如果某字段输入值有错误或超出长度范围,那么单击“保存”按钮时,系统应该给出相应的提示信息

(3) 保存---输入相关信息单击“保存”后,建议系统给出“保存成功”提示信息

(4) 保存---测试新增/修改信息保存后,信息列表是否自动刷新

(5) 下一步---单击此按钮,如果有非空字段为空,系统应该给出相应提示信息;如果有字段输入非法值,单击此按钮系统应该给出相应提示信息;正常情况下单击此功能按钮,系统进入到下一个编辑/操作界面

(6) 上一步---单击此功能按钮,系统应该正确返回到上一个编辑/操作界面

(7) 浏览---测试该功能键功能是否已经正确实现,单击此按钮系统应该弹出文件选择页面,并且可以选择输入相关附件

(8) 上传附件---测试上传功能已经正确实现,确认上传的附件在界面相应位置是否显示

(9) 下载---测试下载功能已经正确实现(可以将上传到服务器的附件下载的本地相应位置)

(10) 重新上传---保存操作后上传功能按钮名称应该自动变为“重新上传”,并且可以重新上传附件

(11) 发布---测试该功能键功能已经正确实现,单击些功能按钮系统完成发布操作,相应的信息状态变为“已发布”,发布人、发布时间系统自动生成或已经正确保存(注意:已经发布的信息是不允许再进行修改操作的)(根据系统需求及设计测试,有些系统只有信息修改页面才有此功能)

(12) 取消发布---测试该功能键功能是否已经正确实现,单击此功能按钮系统完成取消发布功能,相应信息状态变为“未发布”(根据系统需求及设计测试,有些系统只有信息修改页面才有此功能)

(13)关闭---单击此功能按钮系统将关闭当前页面,建议当单击此功能按钮时系统弹出“确认离开此页面提示信息”

(14) 查询---单击查询功能按钮,系统按钮输入查询条件进行模糊查询;查询条件输入非法值进行查询操作,系统应该查询0记录

(15) 删除----未勾选待删除记录单击此按钮系统弹出相应提示信息;正常情况下系统删除所选记录

(16) 选择---勾选待选记录,单击此按钮系统完成选择操作;单击选择超链接功能按钮系统完成选择操作

(17) 取消选择---单击此功能按钮,系统完成取消选择操作(清除所有选择信息)

软件测试方法总结

(三)

发布时间: 2008-12-12 17:14作者: lxm_lxm来源: 51Testing论坛

关键字:软件测试方法

11、对用户名、密码的有效性测试

(1) 密码信息有效性测试:特殊字符、正常字符、空字符(不输入)、空格

(2) 登陆名是否区分大小写

(3) 登陆名是否允许重名

(4) 用户名字和密码都为最大长度 (边界值分析,取上点)

(5) 用户名字和密码都为最小长度 (边界值分析,取上点)

(6) 用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)

(7) 用户名长度大于要求1位(边界值分析,取离点)

(8) 用户名长度小于要求1位(边界值分析,取离点)

(9)密码长度大于要求1位(边界值分析,取离点)

(10) 密码长度小于要求1位(边界值分析,取离点)

(11) 是否记住上次登陆名

(12) 密码信息有效性测试:字母数字混排、数字、符号数字、字母符号、数字符号、空字符(不输入)、空格、ASCII字符、字符串在有空格、串在有半角空格

(13) 口令锁定:即输入口令次数的限制

(14) 密码显示是否以星号或者别的符号显示

(15) 看是否支持tap和enter键等

(16) 密码是否可以复制粘贴

密码修改测试方法

(1) 不输入旧密码,直接改密码

(2)输入错误旧密码

(3) 不输入确认新密码

(4) 不输入新密码

(5)新密码和确认新密码不一致

(6) 新密码中有空格

(7) 新密码长度有效性测试方法同上

(8) 新密码为非允许字符(如有的密码要求必须是英文和数字组成,那么要试汉字和符号等)

(9) 测试密码是否区分大小写,新密码中英文小写,确认密码中英文大写

(10)新密码与旧密码一样能否修改成功

软件测试方法总结

(四)

发布时间: 2008-12-12 17:17作者: lxm_lxm来源: 51Testing论坛

关键字:软件测试方法

四、权限测试

1、业务权限

按需求测试用户业务权限分配是否正确,业务权限主要控制功能模块、功能菜单的展示,没有相应业务权限的不展示其功能模块能功能菜单。

2、操作权限

(1) 权限组:按组用户来分配操作权限。(组内所有人员都具有所分配的操作权限)

(2) 测试已分配操作权限的功能按钮是可见的

(3) 测试已分配操作权限的功能按钮是否可用;是否可以正确完成相应功能操作

(4) 通常不分配调看操作权限是无法进行修改操作

五、算法

1、测试前需要充分了解算法的整个计算过程及结果值的精度

2、算法测试之前需要准备充足,而且是准确无误的测试实例

3、根据输入值确认系统计算输出结果是否与预期结果完全一致

4、如果计算公式中含有引用其它模块的数据,需要先确认数据提取是否对应的正确

5、先用等价划分法、边界值测试方法测试输入数据是否在需求范围内

6、严格按照测试用例执行测试,确认计算结果是否正确无误,注意结果的精度。

第17篇:软件测试实习总结

实习总结

2012年11月4日。我怀着对提高并实现自我价值的心态,走进深圳走秀网络科技有限公司的大门,开始了自己大学里兼职实习工作。转眼间。6个月的实习时间就要过去了。回想起这段时间的工作过程,我深深的认识到在走秀网实习的选择是绝对正确的,走秀网和公司的同事们对我个人产生的积极影响也是超越我料想之中的。现将这段时间的工作进行如下总结。

首先,要具有良好的学习能力。刚进走秀,带我的老大是哈尔滨人,我跟她很投缘。开始的一个星期,我只是熟悉公司的一些业务和我们前端的测试范围,在熟悉业务的过程中,我发现这些页面上的东西看上去挺简单的,但是要深入了解还是需要很长的一段时间。期间老大叫一个老员工带着我去测试一些之前xiu2.0所遗留的简单的bug。走秀网的测试部还比较大,所以对工作的流程和上线之前的版本控制的非常严格。我们在上线之前,会经过两套环境,功能测试环境和镜像环境,功能测试环境是对需求和功能的一个详细的验证环境,镜像环境是模拟生产环境回归之前我们在功能测试环境上锁遗留的一些小的bug。因为不知道这些转测试的bug是怎么产生的,所以需要去跟开发人员沟通,开始的时候自己一个人不敢过去开发部,就让老员工(才哥)带着过去,一段时间过后,我开始自己去和开发沟通交流,从发现问题的重现,到催促开发修改和转测试,这一段时间让我深刻体会到沟通时多么重要。

在走秀期间,我们测试部总监还会对我们不定时的培训。教会我们测试的工作流程和每个阶段应该展开的工作范畴。作为测试,必要会使用的缺陷管理工具bugzilla和测试用例管理工具testlink,还给我们培训了,如何使用自动化工具ruby+watir来对一些测试点进行自动化脚本的编写。慢慢的,在对公司的业务了解的比较透的时候,老大就开始让我们自己对一些小需求进行测试,测试的过程中,不仅仅是对页面和表面功能进行测试,还要根据需求文档和页面的显示对数据库表进行查询操作,查看页面的显示和功能是否和数据表里面的一致,还要在后台日志中查看是否有报错。所以,测试并不是像我想象中的那么简单,不是在页面上点来点去就可以测的好的。

实习可以使每一个学生有更多的机会尝试不同的工作,扮演不同 的社会角色,逐步完成职业化角色的转化,发现自己真实的潜力和兴趣,以奠定良 好的事业基础,也为自我成长丰富了阅历,促进整个社会人才资源的优化配置。 作为一名学生,我想学习的目的不在于通过毕业考试,而是为了获取知识,获 取工作技能,换句话说,在学校学习是为了能够适应社会的需要,通过学习保证能 够完成将来的工作,为社会做出贡献。然而步出象牙塔步入社会是有很大落差的, 能够以进入公司实习作为缓冲,对我而言是一件幸事,通过实习工作了解到工作的 实际需要,使得学习的目的性更明确,得到的效果也相应的更好。

人要想成功及获得好的业绩,必须牢记一个规则:我们永远不能将个人利益 凌驾于团队利益之上,在团队工作中,会出现在自己的协助下同时也从中受益的情 况,反过来看,自己本身受益其中,这是保证自己成功的最重要的因素之一。

2012年5月24日实习生:管玮玮

第18篇:软件测试理论总结

软件测试理论复习

软件测试:在规定条件下对程序进行操作,以发现错误,对软件质量进行评估

软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力

软件测试与质量保证的区别:

质量保证(QA):质量保证的重要工作是通过预防、检查与改进来保证软件质量。QA采用“全面质量管理”和“过程改进”的原理开展质量保证工作。所关注的是软件质量的检查与测量。虽然QA的活动中也有一些测试活动,但所关注的是软件质量的检查与测量。QA的工作是软件生命周期的管理以及验证软件是否满足规定的质量和用户的需求,因此主要着眼于软件开发活动中的过程、步骤和产物,而不是对软件进行剖析找出问题或评估。

软件测试:测试虽然也与开发过程紧密相关,但关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。测试人员要“执行”软件,对过程中的产物----开发文档和源代码进行走查,运行软件,以找出问题,报告质量。测试人员必须假设软件存在潜在的问题,测试中所做的操作是为了找出更多的问题,而不仅仅是为了验证每一件事是正确的。对测试中发现的问题的分析、追踪与回归测试也是软件测试中的重要工作,因此软件测试是保证软件质量的一个重要环节。

软件测试的目的:尽可能多的发现软件中存在的错误。

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

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

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

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

测试的目的,是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。

软件测试原则:

1、所有的测试都应当追溯到用户需求

2、应当尽早地和不断地进行测试

3、完全测试是不可能的,测试需要适可而止

4、测试应充分注意软件中的群集现象。测试中该模块残存的缺陷与该模块中已发现的缺陷数成正比。

5、程序员应避免检查自己的程序,软件项目组应避免测试自己组开发的程序

6、工程界中的80-20原则;BUG的80-20原则

7、测试应从“小规模”开始,逐步转向“大规模”

8、同化效应,为了达到最佳测试效果,可以由第三方来构造测试

9、检查程序是否做了该做的工作只是完成了一半,另一半是检查程序是否做了不该做的工作

10、设计测试用例时必须包括正常的输入和异常的输入

软件包括程序、数据和文档

软件测试对象:程序、数据和文档

软件测试中的V&Vi:

验证(vertification)是保证软件正确实现特定功能的一系列活动和过程,目的是保证软件生命周期的每一个阶段的成果满足上一个阶段所设定的目标(是否按需求做出了功能正确的产品)

确认(validation)是保证软件满足用户需求的一系列的活动和过程,目的是在软件开发完成后保证软件与用户需求相符合(是否做出了用户想要的产品)

验证与确认都属于软件测试,它包括对软件分析、设计以及程序的验证与确认。 软件测试分类

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

单元测试:又称模块测试,逻辑测试或结构测试,是针对软件设计的最小单位--程序模块进行正确性检验的测试工作。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各个模块内部可能存在的各种错误。单元测试需要从程序的内部结构出发设计测试用例。

单元测试的内容:

1)模块接口测试

2)局部数据结构测试

3)路径测试

4)错误处理测试

5)边界测试

单元测试辅助模块:

驱动模块(drive):相当于所测模块的主程序。它接收测试数据,把这些数据传送给所测模块,最后再输出实测结果

桩模块(stub):也叫做存根模块。用以代替所测模块调用的子模块

集成测试:又叫组装测试,综合测试或联合测试。通常在单元测试基础上,将所有的程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。

集成测试需要考虑的问题:

1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失

2)一个模块的功能是否会对另一个模块的功能产生不利的影响

3)各个子功能组合起来,能否达到预期要求的父功能

4)全局数据结构是否有问题

5)单个模块的误差累积起来,是否会放大,以至达到不能接受的程度

集成测试组装方法:一次性组装方式和渐增式组装方式;后者又包括:自底向上、自顶向下、混合集成

集成测试完成的标志:

1)成功地执行了测试计划中规定的所有集成测试

2)修正了所发现的错误

3)测试结果通过了专门小组的评审

确认测试:通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。确认测试是检测与证实软件是否满足软件需求说明书中规定的要求。

确认测试一般包括有效性测试和软件配置复查

系统测试:是为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。系统测试是在真实或模拟系统运行的环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置、连接,并满足用户需求。

验收测试:按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。

验收测试往往在系统测试完成后、项目最终交付前进行。

验收测试计划、测试方案与测试案例一般由开发方制定,由用户方与监理联合进行评审。 验收小组由开发方、用户方、监理方代表、主管单位及行业专家构成。

按照测试技术划分:白盒测试、黑盒测试、灰盒测试;也可划分静态测试和动态测试。

静态测试是指不运行程序,通过人工对程序和文档进行分析与检查;

动态测试是指通过人工或使用工具运行程序进行检查、分析程序的执行状态和外部表现。 白盒测试:又称结构测试、逻辑测试,指通过对程序内部结构的分析、检测来寻找问题。白盒测试把程序看成装在一个透明的白盒子里,也就是清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件的内部动作是否按照设计说明的规定正常进行。 白盒测试用例设计方法:逻辑覆盖法和基本路径测试法

逻辑覆盖法:

根据覆盖目标的不同,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。

语句覆盖:选择足够多的测试用例,使得程序中的每个可执行语句至少执行一次

判定覆盖:通过执行足够多的测试用例,使得程序中的每个判定可能取值(真或假)都至少满足一次,也称为“分支覆盖”

条件覆盖:设计足够多的测试用例,使得程序中的每个判定包含的每个条件的可能取值(真/假)都至少满足一次

判定/条件覆盖:设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次

组合覆盖:设计足够多的测试用例,使得程序中每个判定的所有可能的条件取值组合都至少出现一次

路径覆盖:设计足够多的测试用例,要求覆盖程序中所有可能的路径

基本路径测试方法:

在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。包括以下四个步骤和一个工具方法:

1)以详细设计或源代码作为基础,导出程序的控制流图

2)计算得到的控制流图G的环路复杂性V(G)

3)确定线性无关的路径的基本集

4)生成测试用例,确保基本路径集中每条路径的执行

环路复杂性V(G)也称圈复杂度V(G)=区域数=判断结点数+1=边数—结点数+2

黑盒测试:又称功能测试或数据驱动测试,指通过软件的外部表现来发现缺陷和错误。黑盒测试把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序界面处进行测试,它只是检查样序是否按照需求规格说明书的规定正常实现。

黑盒测试用例设计方法:等价类划分法、边界值分析法、错误推测法、决策表法、因果图法、场景法、功能图法

等价类划分法:不考虑程序的内部结构,测试人员要对需求规格说明书的功能需求进行细致分析,然后把程序的输入域划分成若干部分,从每个部分中选取少数代表性数据当作测试用例。

等价类分为:有效等价类和无效等价类

有效等价类:指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合,可以检验程序是否实现了规格说明书中所规定的功能和性能

无效等价类:指对于程序的规格说明来说是不合理的、无意义的输入数据构成的集合。 确定等价类的原则:

1)在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类

2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类

3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。

4)在规定了输入数据的一组值(假定N个),并且程序要对每一个输入值分别处理的情况下,可确定n个有效等价类和一个无效等价类

5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)

6)在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应将该等价类进一步划分为更小的等价类

根据已列出的等价类表,按以下步骤确定测试用例:

1)为每一个等价类规定一个唯一的编号

2)设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖

3)设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步骤,使所有无效等价类均被覆盖

灰盒测试是介于白盒测试与黑盒测试之间,主要关注输出对于输入的正确性;同进也关注内部表现,但这种关注不像白盒测试那么详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。

自动化测试:通过测试工具或其他手段,按照测试工程师的预定计划对软件产品进行自动的测试

自动化测试的优势:

1)提高测试质量

2)提高测试效率,缩短测试工作时间

3)提高测试覆盖率

4)执行手工测试不能完成的测试任务,如压力测试

5)更好地重现软件缺陷的能力

6)更好的利用资源

7)增进测试人员与开发人员之间的合作伙伴关系

自动化测试的局限性:

1)定制型项目

2)周期很短的项目

3)业务规则复杂的对象

4)人体感观与易用性测试

5)不稳定的软件

6)涉及物理交互

开发模型:瀑布模型、原型模型、螺旋模型、增量模型、渐进模型、快速软件开发(RAD)以及Rational统一过程(RUP)

瀑布模型:需求分析、可行性研究、概要设计、详细设计、编码、测试、运行维护

软件的生命周期:需求分析、概要设计、详细设计、编码、测试、运行维护、退出使用 软件的全寿命周期费用(LCC:Life cycle cost)

测试的花费减少了运行维护阶段的花费,从全寿命周期费用来看,测试是使LCC降低了 测试模型:V模型、W模型、H模型、X模型、前置测试模型

软件测试策略:单元测试、集成(组装)测试、确认测试和系统测试。

软件失效分类:软件错误(software error)、软件缺陷(software defect)、软件故障(software fault)、软件失效(software failure)

软件缺陷定义:

1、软件未达到产品说明书中明确指明要实现的功能

2、软件出现了产品说明书中指明不会出现的错误

3、软件功能超出了产品说明书中指明的范围

4、软件未达到产品说明书中虽未明确指出但应达到的目标

5、软件测试人员认为软件难以理解、不易使用、运行速度慢,或最终用户认为不好使用 缺陷与错误严重性和优先级:

严重级:表示软件缺陷所造成的危害的恶劣程序;分为以下四个等级:

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

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

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

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

优先级:表示修复缺陷的重要程度与次序

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

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

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

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

软件缺陷跟踪管理

(1)Bug记录信息

主要包括以下几项内容:

测试软件名称、测试版本号、测试人名称、测试事件、测试软件和硬件配置环境、发现软件错误的类型、错误的严重等级及优先级、详细步骤、必要的附图、测试注释、提交给谁

(2)Bug处理信息

主要包括以下4项内容:

处理者姓名、处理时间、处理步骤、错误记录的当前状态

软件错误的状态:

软件错误的主要状态包括以下内容:

新信息(New):测试中新报告的软件Bug

打开(Open):被确认并分配给相关开发人员处理

修正(Fixed):开发人员已完成修正,等待测试人员验证

拒绝(Declined):拒绝修改Bug

延期(Deferrend):不在当前版本修复的错误,下一版本修复

关闭(Closed):Bug已被修复

错误管理流程:

错误管理的流程可以概括为以下几项内容:

1、测试人员提交新的错误入库,错误状态为“New”

2、高级测试人员验证错误

1)如果确认是错误,分配给相应的开发人员,设置状态为\"Open\"

2)如果不是错误,则拒绝,设置为“Declined”状态

3、开发人员查询状态为“Open”的错误,做如下处理

1)如果不是错误,则拒绝,设置为“Declined”状态

2)如果是错误,则修复并置状态为“Fixed”

3)如果不能解决的错误,要留下文字说明并保持错误为“Open”状态

4)对于不能解决和延期解决的错误,不能由开发人员自己决定,一般要通过某种会议(评审会)通过才能认可

4、测试人员查询状态为“Fixed”的错误,验证错误是否解决,做如下处理

1)如果问题解决了,置错误状态为“Closed”

2)如果问题没有解决,置错误状态为\"Reopen\"

测试用例:

为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。

测试用例基本组成要素:项目名称、测试人员、用例编号、测试用例说明、测试的模块、测试的输入条件、测试的预期结果、测试实际结果、缺陷编号

1、什么是软件测试,为什么要进行软件测试?软件测试与调试的区别?

答案:(1) 软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。

(2) 因为没有经过测试的软件很难在发布之前知道该软件的质量,就像ISO质量认证一样,软件同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

(3) 在软件开发的过程中,调试和测试是两个不同的过程,分别由程序开发人员和测试人员来完成。

第一,调试的过程是随机的不可重复的;而测试的过程是有计划的、可以重复的过程。

第二,调试的目的是为了隔离和确认问题的所在,并加以解决,使得程序能够正常运行;而测试的目的是为了找出与软件实现定义的规格和标准不符合的问题,保证软件能都满足用户需求。

但二者也有相同之处,最终目的都是为了提高软件质量。

2、a测试与b测试的区别?静态测试与动态测试的区别?

答案:(1)Alpha测试(α测试)是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试;Beta测试(β测试)是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。总而言之,前者是内部模拟上线,后者是真正上线,让用户参与测试。

(2) 静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。

第19篇:软件测试资料总结

1.集成测试:

集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如数据穿过接口时可能丢失;一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。

2.集成测试及其后的测试阶段,一般采用黑盒方法。其策略包括:

(1)用边值分析法和(或)等价分类法提出基本的测试用例;

(2)用猜测法补充新的测试用例;

(3)如果在程序的功能说明中含有输入条件的组合,宜在一开始就用因果图法,然后再按以上(1)、(2)两步进行。

3.软件的设计和实现都是基于需求分析规格说明进行的。

需求分析规格说明是否完整、正确、清晰是软件开发成败的关键。为了保证需求定义的质量,应对其进行严格的审查。审查小组由下列人员组成:

组长:1人

成员:包括系统分析员,软件开发管理者,软件设计、开发和测试人员和用户

4.软件测试的定义

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

第20篇:软件测试技术总结

IT公司面试手册提供最全的IT类面试题, 包括

Java:Java面试题 J2EE面试题 Hibernate面试题 Spring面试题Struts面试题EJB面试题 .NET: .net面试题 ASP.NET面试题 C#面试题

数据库:数据库面试题Oracle面试题 SQL Server面试题 MySql面试题

网络:网络技术面试题 网络安全面试题

Web开发:PHP面试题 Web开发面试题

Linux Unix:Unix面试题Linux面试题

软件测试: 软件测试面试题

其他类: 英语面试 外企面试 Python面试题 程序员面试

更多面试题请访问: http://

软件测试技术总结

软件测试就是为了发现程序中的错误而分析和执行程序的过程。——概念

+基本知识+软件开发过程-定义-计划-实现-稳定化-部署

一、软件开发模型(四种典型的模型)

1、瀑布模型

概述:包括计划,需求分析,设计,编码,测试,运行维护六个阶段。六个阶段自上而下、相互衔接,以固定的次序进行。

特点:1.阶段的顺序性和依赖性;2.文档驱动;3.推迟实现的观点; 4.质量保证。

缺点:不适合需求模糊的系统

2、原型模型

概述:先建立一个能够反映用户需求的原型系统,使得用户和开发者可以对目标系统的概貌进行评价和判断,然后对原型系统进行反复的扩充、改进、求精,最终建立符合用户需求的目标系统。

特点:1.快速开发工具;2.循环; 3.低成本。

分类:按照对原型的处理方式,可以分为渐进型和抛弃型。

3、增量模型

概述:在增量模型中每个阶段都生成软件的一个可发布版本,阶段交错进行,版本逐渐完善。同原型模型的最大区别在于,在原型模型中每个阶段发布一个原型而在增量模型中则完成一个正式版本。

4、螺旋模型

概述:适用于大型软件的开发,它将瀑布模型和快速原型模型结合起来,并加入了风险分析。特点:1.每个阶段都包括制定计划,风险分析,实施工程,评审四个阶段;2.开发过程迭代进行,每迭代一次螺旋线增一周,工程前进一个层次,系统生成一个新版本, 投入新的时间成本,最终得到客户满意的版本。-软件测试从需求开始:现代的软件测试将测试渗入到软件开发的各个阶段,即使瀑布模型,表面看测试工作是在测试阶段开始的,事实上,在计划、需求、设计阶段,测试人员便已经开始了他们的工作,如:了解软件需求,编写测试计划,搭建测试环境。

二、测试用例

1、三要素:前提条件和操作步骤、预期结果、实际结果。

2、必须以需求为依据。

三、软件测试分类

1、是否关注软件结构和算法

-黑盒测试:基于软件需求的测试方法。-白盒测试:基于软件内部设计和程序实现的测试方法。

2、是否执行被测试软件

-动态测试:在测试过程中执行被测试软件的测试方法。-静态测试:------------不----------------------。

3、基于不同的测试阶段:

1、单元测试:主要测试软件的单元模块,需要编写额外的测试驱动程序,采用白盒测试的方法,一般由 开发人员完成。

2、集成测试:将一些“构件”集成在一起时测试他们是否能正常运行,构件可以是程序模块,也可以是客户机-服务器程序等,需要编写测试仿真程序,采用白盒和黑盒相结合的方式,通常由 开发人员承担。

3、系统测试:测试软件系统是否符合所有的需求,包括功能性测试和非功能性测试。一般由独立的测试人员完成,通常采用黑盒测试方法。

4、验收测试:(α、β)与系统测试类似,但由客户或最终用户执行,测试软件是否符合需求规格说明书。

5、回归测试:指在软件开发过程中,每次错误被修正后或软件的功能、环境发生变化后进行的测试。

四、软件测试的三个步骤:

1、测试计划:测试人员首先对需求进行分析,最终定义一个测试集合,通过刻画和定义测试发现需求中的问题,然后根据软件需求同测试主管制定并确认“测试计划”。

2、测试设计和开发:软件测试人员根据软件需求和软件设计说明书完成测试用例的设计和必要的测试驱动程序的开发。

3、执行测试:需要做的工作包括搭建测试环境、运行测试、记录测试结果、报告软件缺陷、跟踪软件缺陷、分析测试结果,必要时进行回归测试。

五、测试工程师的能力要求:

1、5C

-Controlled /kEn\'trEuld/ 接受管理,有条理的

-Competent /\'kCmpitEnt/了解正确的测试技术

-Critical /\'kritikEl/专注于发现问题

-Comprehensive /.kCmpri\'hensiv/ 注意细节

-Considerate /kEn\'sidErit/能够和开发人员很好的交谈

2、职业素质 -责任心-学习能力-怀疑精神 -沟通能力 -专注力-洞察力 -团队精神-注重积累

六、制定测试计划的五个步骤:

1、分析和测试软件需求

2、定义测试策略

3、定义测试环境

4、定义测试管理

5、编写和审核测试计划

如果在需求分析阶段发现并结果问题需要花费$1,则在设计阶段解决同样的问题需花费$5,在编码阶段需$10,交付后解决同样的问题需花费$200。——越早测试越好

七、在需求分析过程中测试人员需要进行如下工作:

1)理解需求,参与审核需求文档;2)理解项目的目标、限制,了解用户的应用背景;

3)编写测试计划;4)准备测试资源。

八、需求测试

-需求测试测试的对象是主意而不是代码,针对文档进行测试。

九、好的需求文档的特征

1、具有清晰的格式和文档结构

2、需求的内容正确

3、需求的内容完整

4、需求具有可行性需求的必要性

5、对不同的需求优先等级进行定义

6、描述明确

7、可证性和可测试性

8、可修改性-可追踪

9、需求文档被及时更新

十、需求测试内容

1、需求文档是否符合公司的格式要求

2、是否正确

3、要保证需求文档中所描述的内容是真实可靠的

4、这是“真正的”需求吗?描述的产品是否是要开发的产品?

5、需求是否完备?第一个发布的版本是否需要更多的功能?列出的需求可以减少一部分?

6、需求是否兼容?需求有可能是矛盾的。

7、需求是否可实现?如:需求设想的设备是否比实际运行的要快?需求要求的内存、I/0设备是否太多?需求的输入或输出设备要求的分辨率是否要求过高?

8、需求是否合理?在开发进度、开发费用、产品性能、可靠性和内存使用之间存在着平衡关系。

9、需求是否可测?对于软件测试人员来说判断需求是否可测是这个过程中最重要的工作。

十一、需求测试方法

1、复查review

2、走查walkthrough

3、审查inspection

十二、测试策略的内容

1、确定测试范围 软件是无法被完全测试的

2、确定测试方法 不同的系统需要不同的测试方法

3、定义测试标准 入口标准,暂停和继续的标准,出口标准等

十三、软件测试结束的标准

-基于测试用例的使用规则

1)构造测试用例(由相关人员进行评审)

2)执行测试用例中,当测试用例的不通过率达到20%则拒绝继续测试,待开发人员修正软件后再继续。

3)当功能性测试用例通过率达到100%,非功能性测试用例通过率达到90%时,允许正常结束。

-基于“测试期缺陷密度”规则---------含义:对软件测试一个CPU小时发现的缺陷数,比较适用于系统测试-基于“运行期缺陷密度”规则---------含义:把软件运行一个CPU小时发现的缺陷数,比较适用于验收测试注:一个阶段的出口标准!=下一个阶段的入口标准

系统测试结束的标准!=软件的发布标准发布标准!=软件0缺陷

-选择测试工具 是否需要,需要什么工具,怎么获取

-降低软件测试代价是企业普遍关注的问题,可通过

a.减少冗余和无价值的测试;b.减少测试阶段(万般无奈下)

十四、测试环境

-基本内容:设备环境、软件环境、数据环境

-需考虑的因素 -计算机平台-操作系统 -浏览器 -软件支持平台 -外围设备 -网络环境 -其他专用设备 -搭建测试环境时的配置原则:-使用的频度或范围-实效的可能性-最大限度的模拟真实环境

十五、测试管理

由于测试工程中设计的人员、活动、工具是很多的,在制定测试计划时需要对这些因素进行管理 -选择缺陷管理工具和测试管理工具-定义工作进度

-建立风险管理计划

(1)可能遇到的风险

1.由于设计、编码阶段出现大量质量问题,导致测试工作量时间增加

2.开始测试时所需的硬件、软件没有准备好3.未能完成对测试人员的技术培训

4.测试时的人力资源安排不足5.测试过程中,发生了大量的需求变更

6.测试过程中,项目的开发计划被大幅度调整7.不能及时准备好测试所需的环境

8.不能及时准备好测试数据

(2)风险管理的过程

1.识别风险2.评估风险3.制定对策4.跟踪风险

+测试设计与开发

+总体设计

-投入产出:测试设计的输入是测试计划,输出是评审过的测试用例集合

-定义设计目标遵循的原则

(-清楚地说明没项测试的目标-使每项测试的目标单一,可以对应到规格说明书中的一项需求-只说明测试应该完成什么工作,而不说明如何完成)

-流程:总体设计-开发测试用例-评审测试用例

I.定义设计目标II.定义输入说明III.定义测试环境和配置

IV.测试设计文档V.开发测试用例

+测试用例——概念:为特定目标开发的测试输入、执行条件和预期结果的集合。

+好的测试用例:

1.容易发现软件的错误2.精确的重复某测试失败的情景,可重复性

3.清晰的定义一个或多个期望的结果4.没有冗余

+测试用例的作用

-指导测试的实施 -作为编写测试脚本的“设计规格说明书”-评估测试标准的度量基准-分析缺陷的标准 +白盒测试用例设计

+设计方法

+逻辑覆盖法

( -语句覆盖 -判定覆盖 -条件覆盖 -判定-条件覆盖-条件组合覆盖 -路经覆盖-基本路经法)

+辅助模块设计

(1.驱动模块:相当于被测程序的主程序。接受测试数据,把这些数据传给被测模块然后输出实际测试结果。

2.桩模块:用于调用被测模块调用的子模块。可以做少量的数据操作,不需要把子模块的所有功能都带进来,但不容许什么都不做。)

+黑盒测试用例设计

-等价类划分法

-边界值法——“缺陷遗漏在角落里,聚集在边界上。”

-因果图法弥补等价类和边界值法的不足

-错误推测法

-测试用例的管理可以通过配置管理工具cvs,v,ClearCase等实现,以保证测试是可重复的。

+常见错误分析

-用户界面问题

·输入无合法性检查和值域检查。

·界面信息不能及时更新,不能正确反映数据状态,甚至对用户产生误导。

·表达不清或过于模糊的信息提示。

·要求用户输入多余的本来系统可以自己得到的数据。

·为了得到某个设置或对话框用户必须做许多冗余的操作,如对话框嵌套太多。

·不能记忆用户的设置或操作习惯,使每次进入系统用户都需重新操作一次初始环境。

·不经用户确认就对系统或数据进行了重大修改。

-形象类问题

·不符合用户的操作习惯。如,快捷键定义不科学不实用,甚至无快捷键。

·不够专业,缺乏基本知识。

·界面中英文混杂,甚至拼写错误。

·说明书或帮助的排版格式不专业:中英文不对应,标点的半全角问题,没有排版准则。

·界面元素参差不齐,文字不能完全显示。

-稳定性问题

·不可重现的死机,或不断申请但不能完全释放资源,使系统性能越来越低。

·主系统和子系统使用了相同的临界资源而相互不知道。如:使用相同的类名或临时文件名、使用同样的数据库字段名或登陆帐号。

·不能重现的错误,许多与代码中的未初始化变量有关,有些与系统不检查异常情况(网络中断、内存申请不成功、长时间无响应等)有关。

-其他问题

·运行时不检查内存、硬盘空间、数据库等。

·无根据的假设用户环境:硬件/网络情况;有些动态库;假设网络随时都是联通的。

·提供的版本带病毒。

·提供错误的版本给测试组或测试用户,或程序员与测试组使用不同版本。

·用户现场开放和修改,又没有记录和保留。

·版本中部分内容或接口倒退,或出现版本管理混乱。

·有些选项永远都是灰的,或有些在该变灰时没变灰。

+测试用例的评审

-测试或测试组件完全针对的是需求中列出的功能吗?

-测试组件是否覆盖了所有的需求?

-有冗余的吗?

-每个测试步骤都有清楚描述的预期结果吗?

+优先级

+3级

优先级1:此测试用例必须执行-2:有时间就执行-3:可以不执行

+5级

1:此测试必须通过,否则产品发布存在危险2:在发布前必须执行3:时间允许就执行4:此测试可以在下一次发布或发布后短期内执行5:可以不测试

软件测试总结范文
《软件测试总结范文.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题
点击下载本文文档