当前位置:文档之家› 软件测试理论知识.docx

软件测试理论知识.docx

软件测试理论知识.docx
软件测试理论知识.docx

第一章测试基础

软件测试的定义:

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

软件测试的目的:

证明检测预防

证明:

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

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

3)保证一个工作产品是完整的且可用或可被集成的

检测:

1)发现缺陷,错误和系统不足

2)定义系统能力和局限性

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

预防:

1)通过将测试活动提前介入到软件生命周期中,尽早的发现并消除前期研发阶段引入的缺陷,以防止前期缺陷遗留并放大到后续环节

2)通过对发现的缺陷进行分析,找出导致这些缺陷产生的流程上的不足,通过改进流程,预防同类缺陷再次产生

软件生命周期:

计划->需求分析->概要设计->详细设计->编码->测试->运行维护

1)计划:

SDP (软件研发计划) UTP(单元测试计划)

SVVP(软件验证与确认计划) ITP (集成测试计划)

STP (系统测试计划)

2)需求分析:

SRS(软件需求规格说明)

根据研发类型,需求来源,则用户针对的具体对象分为两种:针对产品的与针对项目的

3)设计:

HLD(High Level Design概要设计)

LLD(Low Level Design 详细设计)

4)编码:

写成以某个程序设计语言表示的源程序清单,使用RDBMS(Relational Database Management System 关系型数据库管理系统)工具建立数据库。

5)测试:

检验软件是否符合客户需求,达到质量要求。

按测试阶段分单元测试(UT)

集成测试(IT )

系统测试(ST )——最先介入,最晚结束

6) 运行维护:

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

软件研发的相关要素:

人员 过程 工具

1) 人员组成

分析人员

设计人员 开发人员 测试人员

配置管理人员(CMO,SCM ) SQA

2) 组架构

软件研发流程:

常见的软件研发流程:瀑布模型,螺旋模型,RUP 流程,IPD 流程

软件缺陷和BUG (包括错误和不足):

缺陷的引入是随时的,不确定的。

缺陷可以归结为三类:遗漏、错误、额外的实现。

附录:

1)SDP: Software Develop Plan软件研发计划

2)SVVP: Software Verification and Validation Plan软件验证与生效计划

第二章测试过程

划分为三阶段:

单元测试(Unit Testing)

集成测试(Integration Testing)

系统测试(System Testing)

*确认测试(Validation Testing)

a)UT:针对软件基本组成单元

目的:检验软件模块对《详细设计说明书》的符合程度。

UT 面向过程:函数

面向对象:类属性

方法

b)IT:针对组装后功能及模块间接口是否正确

目的:检验软件模块对《概要设计说明书》的符合程度。

c)ST:针对硬件、外设、某些支持软件、数据和人员等

目的:检验对《软件需求规格说明书》的符合程度。

d)VT:纯系统测试,介于IT与ST之间

若该软件包括硬件外设等,则VT相当于IT。

若该软件为纯系统软件,则VT相当于ST。

UT,IT,ST的比较

回归测试(Regression Testing)

目的:验证缺陷得到正确的修复,同时对系统的修复没有影响以前的功能。

*回归测试可以发生在任何一个阶段

1)回归测试流程

a.制定策略

b.确定版本

c.按策略执行测试

d.验收通过:则关闭缺陷跟踪单

不通过:返回缺陷跟踪单,开发人员重新修改,再次提交2)回归测试策略

a.完全重复测试

覆盖修改法

b.选择性重复测试周边影响法:比a更充分。难点:如何选取用例

指标达成法:选择一个最小的测试用例集合

风险识别法:选择重要级别高的用例3)回归测试自动化

a.程序自动化: 功能测试自动化

b.自动配置:Builder 、ANT/NANT 、BVT

c.测试用例、结果自动化:测试管理工具QTP、Robot(基于GUI)

d.利用脚本语言:TCL、Python、Perl

e.专用测试工具:

f.尽早考虑(可继承、推广):

其他测试阶段(针对用户):

1)验收测试→项目型

验收依据:合同、需求规格说明书、验收测试计划

2)α测试

β测试产品型

γ测试

●α测试是用户在开发环境下,开发者或测试人员在用户旁,记录错误情

况等,环境是受控的。目的在于评价软件的FLURPS(即功能、局域化、

可用性、可靠性、性能和技术支持)

●β测试是在实际使用环境下,开发者及测试人员不在测试现场。

●γ测试是产品正式发型的候选版,可能会是以后发行的正式版。

第三章软件质量

软件质量的定义:

实体(被测试系统)基于某些特性满足需求的程度。

实体特性需求

1)实体:软件——被测对象

2)特性:基于ISO9126分析SRS得出测试内容,分析测试内容的两种主要方法:

a.ISO 9126分析方法优点:国际标准

b.测试类型分析方法缺点:无标准,实际应用中需要企业根据自身行业特点定

义测试类型

*相同点:成功经验复用,二者存在对应关系

3)需求:质量三个层次

a.符合需求规格(内部要求)

b.用户显示需求(外部要求)

c.用户隐式需求(使用要求)

4)质量铁三角:过程技术组织

软件质量管理体系

质量管理理论:

第一阶段:检验质量管理 第二阶段:统计质量控制 第三阶段:全面质量管理

流行的质量管理体系

1) ISO

a. 三个核心

ISO9000 管理理念和原则

Iso9001 组织质量管理体系必须履行的的要求做了明确的规定 ISO9004 组织持续改进的指南标准 b. 八项质量原则

以顾客为中心 * 发挥领导作用 全员参与 过程方法

管理的系统方法 持续改进

基于事实的决策方法 * 互利的供方关系

TC 质量评价

(通过质量统计学得出)

2)CMM/CMMI(Capability Maturity Model)能力成熟度模型

a.起源:美国国防部委托立项美国软件工程研究所(SEI)提出的模型

用来:

评估软件承包商能力

协助组织改进过程、提高过程能力

b.必要性

业界的实施标准

业界的交流语言

中国企业获取国际订单的门槛

向下采购的保障

降低软件生产风险的有力手段

c.特点及各级概要

初始级:不可预测的、无序的、混乱的。

可重复级:有纪律的,经验复用

已定义级:标准的、一致的

已管理级:可预测的

优化级:不断改进的

3)六西格玛

软件质量模型:

质量模型:一组特性及特性之间的关系,它提供规定质量需求和评价质量的基础

第四章测试方法

UT阶段的工作

开发人员编码→编译(测试)→编码规则检查(测试)→注释率检查(保证充分注释,计算方法:注释行数/(代码行数+注释行数))→代码走读(测试)→UT执行编码规则:

1)变量命名规则如:gcount 全局变量,pcount 指针变量

2)If(x==1)应写成if (1==x)避免类似将if(x==1)错写成if(x=1)

UT计划、UT设计、UT实现

IT阶段工作

例如:测试通信协议栈

IT计划、IT设计、IT实现

ST阶段工作

ST计划、ST设计、ST实现

搭建测试环境→执行

黑盒、白盒

例子

1.测试工程师VS 医生

2.自动售货机

总结:

使用白盒测试方法需要了解软件的内部构造和工作原理

针对不同产品如何测试

杯子:信息外部:外观、漏水、容量、使用者→黑盒

内部:材质、制造过程→白盒

白盒测试方法的好处

1)能对代码进行覆盖

2)能有针对性的进行测试

3)发现及解决BUG的成本较低

控制流分析:测试代码执行顺序

主要了解如何画控制流图(代码流程图)

代码(检查代码执行顺序→控制流图--→控制流矩阵→二维数组a[6][6]:a[0][0]=1

有无错误)

数据流分析:测试变量的使用

数据流表:列出每个语句变量的使用

包括变量的赋值(定义)和引用 a=b+c; 赋值a ,引用b ,c if(x==5); 引用x

a=a+b+c; 赋值a ,引用a ,b ,c

根据代码得到数据流表,分析数据流表找到以下错误:

1) 变量未定义但被引用; 2) 变量定义但未被引用; 代码优化:

结构优化(可读性):1个函数→2个函数 效率优化(时间、空间):1)时间:高斯算法

2)空间: 可移植性优化:

信息流分析:语句与变量的对应 其他测试方法

逻辑覆盖、语句覆盖、判定覆盖、条件覆盖、判定—条件覆盖、路径覆盖、。。。

if(x>=1) y=5;

3个语句构成 if …else y=5 语句覆盖 一般通过工具来进行检查 ——借助插装技术(程序

else y=0;

test.c

覆盖工具 testol.c (testol.exe)

白盒测试难点

1) 看懂LLD ,能读懂代码 2) 编写测试代码

黑盒测试(无针对性)

质量特性:反映软件质量的不同方面,从不同角度度量软件质量 测试:从不同角度检测软件质量 灰盒测试

黑盒(外部、整体的信息)

白盒(内部、细节的信息)

灰盒(两者都有) 例子:

IE

网站

网页能否打开 网页上功能的使用

网页打开原理(IE 、网站之间的数据)

静态、动态

代码→编译(检查语法错误):静态→编码规则检查:静态 →注释率统计:静态→走读代码:静态→UT 执行:动态

例子: OsCommerce 开源的电子商务网站

测试:注册功能测试——要求网站必须运行:动态

直接读代码来测试——不要求网站运行:静态

静态测试:不运行被测试的软件系统,而是采用其他手段和技术对被测试软件进行检测的一种测试技术。(分为手工和自动) 静态分析技术

静态测试的三个方面:检查代码、检查文档、检查代码和文档的一致性(code<->LLD ) 手工静态测试——同行评审:读文档、读代码

例子:如函数:检查所有定义的变量是否立即初始化。 自动化静态分析:静态验证、语法分析器、符号执行器

插装

两者相对应

灰盒

相关人士

检查

动态分析技术

常用:路径测试、分之测试、性能测试 1) 覆盖率统计:UT 执行(覆盖率统计工具)

2) 跟踪:针对不好测试的一段代码通过设置断点使用单步运行的方式检查变量内存

调试:定位错误、解决错误

3) 调整:内存、CPU 占用,特别是检查是否有资源(内存)泄露 4) 模拟

5) 断言:例子:

x=1; …..

Assert(x==8);断言语句,当程序运行至此处时,X 应等于8,若不等于,则报错。

人工、自动化

测试相关活动

1) 标识:标识测试范围——对人的经验要求较高,一般由测试经理完成。

考虑内容:时间、人力

2) 设计:设计测试用例

方法:等价类、语句覆盖等,方法的使用比较灵活

3) 建立:建立测试环境,包括硬件和软件

例子:

4) 执行:执行测试用例(按照测试步骤) 5) 检查:检查测试结果

输入(用例)→被测试软件→实际输出→比较预期输出

适合自动化的活动:自动化测试执行、自动化测试检查、自动化环境建立

自动化测试的意义

1) 提高回归测试效率

a) 对BUG 修复的验证

b) 在软件版本发布前(版本测试):查看之前的用例是否能通过 迭代开发 例子:通话→短信→上网→MP4 2) 运行更多更频繁的测试

例子:冒烟测试:硬件→通电 如冒烟则说明根本无法使用

软件→如基本功能无法使用,说明软件质量很差

相同:通过 不同:提BUG

每日构建(Daily Build ):要求开发人员下班前将代码放入服务器,半夜时服务器会自动对最新的代码进行编译。如果编译通过则进行冒烟测试。(出报告) 3) 可进行大量重复及集成操作

例子:银行系统,测试查询时间,则利用工具注入一亿条数据 4) 更好地利用资源

5) 测试具有一致性和可重复性

人工的介入会有不确定因素(会造成不可重现的BUG ),而自动化不会 6) 复用性:即函数化,脚本的复用 7) 减少软件发布的时间:提高效率 8) 增加软件信任度:提高测试质量 自动化测试的限制

1) 只能提高效率,但不能提高有效性 2) 没有手工测试发现的缺陷多

例子:路由器——路线(Add 、Del 、Show )

3) 依赖测试设计,设计不好会遗漏问题

4) 依赖开发,开发的变更可能导致前面的测试完全失效 自动化测试引入的时机:只有当软件比较稳定的情况下才引入 5) 非智能 自动化测试的误区

1) 用自动化取代手工

2) 缺乏测试经验,则由手工转为自动化 3) 期望自动化发现大量缺陷 4) 安全性错觉

**手工测试是自动化测试的一个基础

软件测试知识点总结

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

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

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

软件评测基础知识 软件测试基本概念 软件质量与软件测试:软件测试是软件质量保证工作的一个重要环节。软件测试和软件质量保证是软件质量工程的两个不同层面的工作。软件测试只是软件质量保证工作中的一个重要环节。质量保证(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.软件测试与调试的区别? (1)测试是为了发现软件中存在的错误;调试是为证明软件开发的正确性。 (2)测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。 (3)测试是有计划的,需要进行测试设计;调试是不受时间约束的。 (4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理过程。(5)测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。 (6)测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。 (7)大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。 2.对软件测试的理解?

软件测试就是说要去根据客户的要求完善它.即要把这个软件还没有符合的或者是和客户要求不一样的,或者是客户要求还没有完全达到要求的部分找出来。 (1)首先要锻炼自己软件测试能力,包括需求的分析能力,提取能力,逻辑化思想能力,即就是给你一个系统的时候,能够把整个业务流程很清晰的理出。 (2)学习测试理论知识并与你锻炼的能力相结合。 (3)想和做。想就是说你看到任何的系统都要有习惯性的思考;做就是把实际去做练习,然后提取经验。 总结测试用例,测试计划固然重要,但能力和思想一旦到位了,才能成为一名合格的软件测试工程师。 二、软件测试的分类 1.按照测试技术划分 (1)白盒测试:通过对程序内部结构的分析、检测来寻找问题。检查是否所有的结构及逻辑都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。--结构测试 (2)黑盒测试:通过软件的外部表现来发现错误,是在程序界面处进行测试,只是检查是否按照需求规格说明书的规定正常实现。--性能测试 (3)灰盒测试:介于白盒测试与黑盒测试之间的测试。

软件测试基本知识

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

软件测试基本流程及要求

软件测试基本流程与要求(提纲) 1目标 制定完整且具体的测试路线和流程,为快速、高效和高质量的软件测试提供基础流程框架。 最终目标是实现软件测试规范化,标准化。 2测试流程说明

3测试需求分析 测试需求是整个测试过程的基础;确定测试对象以及测试工作的范围和作用。用来确定整个测试工作(如安排时间表、测试设计等)并作为测试覆盖的基础。而且被确定的测试需求项必须是可核实的。即,它们必须有一个可观察、可评测的结果。无法核实的需求不是测试需求。所以我现在的理解是测试需求是一个比较大的概念,它是在整个测试计划文档中体现出来的,不是类似的一个用例或者其他. ·测试需求是制订测试计划的基本依据,确定了测试需求能够为测试计划提供客观依据; ·测试需求是设计测试用例的指导,确定了要测什么、测哪些方面后才能有针对性的设计测试用例; ·测试需求是计算测试覆盖的分母,没有测试需求就无法有效地进行测试覆盖; 3.1测试方法与规范 3.1.1测试方法 随着软件技术发展,项目类型越来越多样化。根据项目类型应选用针对性强的测试方法,合适的测试方法可以让我们事半功倍。以下是针对目前项目工程可以参考的测试方法: ?β测试(beta测试)--非程序员、测试人员 β测试,英文是Beta testing。又称Beta测试,用户验收测试(UAT)。

β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。 当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其他人员完成,不能由程序员或测试员完成。?α测试(Alpha测试)--非程序员、测试人员 α测试,英文是Alpha testing。又称Alpha测试. Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由该系统的程序员或测试员完成。 在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试一般由最终用户或其他人员来完成,不能由程序员或测试员完成。?兼容性测试--测试人员 兼容性测试是指测试软件是否可以成功移植到指定的硬件或者软件环境中,例如在B/S项目中各个不同浏览器之间的测试。 ?用户界面测试-UI测试--测试人员 用户界面测试,英文是User interface testing。又称UI测试。 用户界面,英文是User interface。是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。 用户界面测试是指测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等等。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。

软件测试基础_期末A卷及参考答案

成都东软信息技术学院 期末试题——软件测试基础(A卷) 题号一二三四五六总分 分数 说明:本试卷共六大题,试卷满分100分,考试时间120分钟。 一、单项选择题:共20小题,每小题1 分,满分20分;请将答案填入题后括号中。 (说明:每题有且仅有一个正确答案) 1.在软件生命周期的哪一个阶段,软件缺陷修复费用最低() (A)需求分析(编制产品说明书)(B)设计 (C) 编码(D)产品发布 2.单元测试中用来模拟被测模块调用者的模块是() (A) 父模块(B)子模块 (C)驱动模块(D)桩模块 3.为了提高测试的效率,应该() (A)随机地选取测试数据; (B)取一切可能的输入数据作为测试数据; (C)在完成编码以后制定软件的测试计划; (D)选择发现错误可能性大的数据作为测试数据。 4.侧重于观察资源耗尽情况下的软件表现的系统测试被称为() (A)强度测试(B)压力测试 (C) 容量测试(D)性能测试 5.必须要求用户参与的测试阶段是() (A)单元测试(B)集成测试 (C) 确认测试(D)验收测试 6.软件测试员究竟做些什么。()

(A)软件测试员的目的是发现软件缺陷 (B)软件测试员的目的是发现软件缺陷,尽可能早一些 (C)软件测试员的目的是发现软件缺陷,尽可能早一些,并确保其得以修复 (D)软件测试员的目的是发现软件缺陷,尽可能早一些,并将其得以修复 7.下面四种说法中正确的是() (A)因果图法是建立在决策表法基础上的一种白盒测试方法; (B)等价类划分法是边界值分析法的基础; (C)健壮性等价类测试的测试用例要求在有效等价类中取值; (D)在任何情况下做黑盒测试皆应首先考虑使用错误推断法。 8.不属于单元测试内容的是() (A)模块接口测试(B)局部数据结构测试 (C) 路径测试(D)用户界面测试 9.划分软件测试属于白盒测试还是黑盒测试的依据是() (A)是否执行程序代码 (B)是否能看到软件设计文档 (C)是否能看到被测源程序 (D)运行结果是否确定 10.下列项目中不属于测试文档的是() (A)测试计划(B)测试用例 (C) 程序流程图(D)测试报告 11.几乎没有产品计划、进度安排和正规的开发过程的软件开发模式是() (A)大棒模式(B)边写边改模式 (C) 瀑布模式(D)快速原型开发模式 12.如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的() (A)判定覆盖(B)条件覆盖 (C) 判定/条件覆盖(D)组合覆盖 13.下列说法不正确的是() (A)测试不能证明软件的正确性; (B)测试员需要良好的沟通技巧;

软件测试基础知识汇总

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

软件测试基础知识整理

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

测试的基本理论和方法

【转】浅谈软件测试的基本理论与方法 随着软件应用领域越来越广泛,其质量的优劣也日益受到人们的重视。质量保证能力的强弱直接影响着软件业的发展与生存。软件测试是一个成熟软件企业的重要组成部分,它是软件生命周期中一项非常重要且非常复杂的工作,对软件可靠性保证具有极其重要的意义。 在软件的测试过程中,应该应用各种测试方法,以保证产品有一个较高较稳定的质量。根据不同的生产过程进行不同的测试,包括黑盒测试、cc霜白盒测试、携程网酒店预定功能测试、系统测试、压力测试、安装/卸载测试、兼容性测试、α 测试、β 测试等。 软件测试是整个软件开发过程中一段非常重要的阶段,在测试过程中如能按照测试的基本过程来进行测试,软件的质量能有所保障。 我做了一个半月的测试,就现在的感觉而言,其实做测试必开发却是是轻松了一点,不是那么的累脑子,但是测试也是很深的一门学问,针对于不同的公司,产品不一样,所要求的测试的技术也不一样。有的公司测试很轻松,但是有的公司测试也是经常加班熬通宵的 1软件测试基础 信息技术的飞速发展,使软件产品应用到社会的各个领域,软件产品的质量自然成为人们共同关注的焦点。不论软件的生产者还是软件的使用者,均生存在竞争的环境中,软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局。用户为了保证自己业务的顺利完成,当然希看选用优质的软件。质量不佳的软件产品不仅会使开发商的维护难度和用户的使用本钱大幅增加,还可能产生其他的责任风险,造成公司信誉下降,继而冲击股票市场。在一些关键应用(如民航订票系统、银行结算系统、证券交易系统、自动飞行控制软件、军事防御、核电站安全控制系统等) 中使用质量有问题的软件,还可能造成灾难性的后果。 软件危机曾经是软件界甚至整个计算机界最热门的话题。为了解决这场危机,软件从业职员、专家和学者做出了大量的努力。现在人们已经逐步熟悉到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在本钱、进度和质量上的失控。有错是软件的属性,而且是无法改变的,由于软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于我们如何避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。 1.1软件测试的概念 软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输进数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。

软件测试基础要点总结

软件测试基础要点总结 软件测试基础要点总结 从宏观的角度讲,软件测试过程一般可划分为单元测试、集成测试、验收测试和系统测试等几个主要测试阶段。 1.测试计划注意事项 1.测试计划不一定要尽善尽美,但一定要切合实际,要根据项目特点、公司实际情况来编制,不能脱离实际情况; 2.测试计划一旦制定下来,并不就是一成不变的,随着软件需求、软件开发、人员流动等发生变化,测试计划也要根据实际情况的变化而不断进行调整,以满足实际测试要求.3.测试计划要能从宏观上反映项目的测试任务、测试阶段、资源需求等,不一定要太过详细.测试原则 ①应尽早和不断地进行软件“测试”。 ②测试用例中,不仅要选择合理的输入数据,还要选择不合理的输入数据。③在开发各阶段应事先分别制定出相应的测试计划,在测试开始后应严格执行,防止随意性。④对发现错误较多的程序模块,应进行重点测试。⑤避免程序员测试自己的程序。 ⑥用穷举测试是不现实的,一般通过设计测试用例,充分覆盖所有条件或所有语句即可。⑦长期妥善保存测试计划、测试用例、出错统计和有关的分析报告。 2.测试用例文档 测试用例文档通常是由简介和测试用例两部分组成:

简介部分编制了测试目的、测试范围、定义术语、参考文档等,这个与测试计划是一致的。 测试用例部分逐一列出各个测试用例。 测试用例(TestCase)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。 测试用例部分 测试用例通常包含的信息:用例标识和用例名称内容描述前提条件执行步骤预期结果评价准则 用例设计人员和设计时间用例执行人员和执行时间其它内容3.软件缺陷 缺陷的表现形式不仅体现在功能的失效方面,还体现在其他方面。主要类型有:①软件没有实现产品规格说明所要求的功能模块软件中;②出现了产品规格说明指明不应该出现的错误; ③软件实现了产品规格说明没有提到的功能模块; ④软件没有实现虽然产品规格说明没有明确提及但应该实现的目标; ⑤软件难以理解,不容易使用,运行缓慢,或从测试员的角度看,最终用户会认为不好。测试用例:以计算器为例 ①计算器的产品规格说明定应能准确无误地进行加、减、乘、除运算。如果按下加法键,没什么反应,就是第一种类型的缺陷;若计算结果出错,也是第一种类型的缺陷。②产品规格说明书还可能规定计算器不会死机,或者停止反应。如果随意敲键盘导致计算器停止接受输入,这就是第二种类型的缺陷。 ③如果使用计算器进行测试,发现除了加、减、乘、除之外还可以求平方根,但是产品规格说明没有提及这一功能模块。这是第三种类型的缺陷④在测试计算

软件测试必备基础知识

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

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

软件测试基础知识

软件测试基础知识(摘自《软件评测师教程》) 什么是软件测试? 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 功能模块的通用化和复用化使软件易于开发,而测试用例的通用化和复用化则会使软件测试易 于开展,并随着测试用例的不断精化其效率也不断攀升。

软件测试的基本方法和测试理论

动态黑盒测试 不深入代码细节的软件测试方法。常被称为行为测试,因为测试的是软件在使用过程中的实际行为。 首先,从产品说明书获知测试对象的软件的输入和应该得到的输出。 接下来,开始定义测试案例。测试案例:指进行实验用的输入,以及测试软件用的程序。 选择测试案例是软件测试员最重要的任务。不正确的选择可能导致测试量过大或者过小,甚至测试目标不对。准确评估风险,把不可穷近的可能性减少到可以控制的范围是成功的诀窍。 测试基本方法:通过测试vs 失败测试 通过测试:确认软件至少能做什么,而不考验其能力。 失败测试:纯粹为了破坏软件而设计和执行的测试案例,也称为迫使出错测试。蓄意攻击软件的薄弱环节。 在设计和执行测试案例时,总是首先进行通过测试。在破坏性试验之前看看软件基本功能是否实现是很重要的,否则在正常使用软件时就会奇怪为什么有那么多的软件缺陷。 常见的测试案例就是设法迫使软件出现错误提示信息。产品说明书可能会给出这样的功能要求,针对这个问题的测试可能是通过测试也可能是失败测试。可能两者都是。不用去刻意区分,重要的是找到软件缺陷! 选择测试案例:等价分配 等价分配:是指分步骤地把过多(无限)的测试案例减小到同样有效的小范围的过程。也称等价划分。 等价分配技术提供了一个选择哪些数值、舍弃哪些数值的系统方法。 等价类别或者等价区间是指测试相同目标或者暴露相同软件缺陷的一组测试案例。在寻找等价区间时,想办法把软件的相似输入、输出、操作分成组。这些组就是等价区间。 等价分配的目的是把可能的测试案例组合缩减到仍然足以测试软件的控制范围。因为选择了不完全测试,就要冒一定的风险。如果为了减少测试案例的数量过度进行等价分配,测试的风险就会增加。另外,等价区间的划分没有一定的标准,只要足以覆盖测试对象就行了。 数据测试 软件由数据(包括键盘输入、鼠标单击、磁盘文件、打印输出等等)和程序(可执行

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

软件测试必备基础知识总结 作者: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、软件的分类 按功能分:系统软件、应用软件 按技术架构分:单机版软件、C/S结构软件(C是指客户端,S指服务器端)、B/S 结构软件(B是指浏览器) 按照用户划分:产品软件、项目软件 按开发规模划分:小型、中型、大型 3、BUG的定义:软件的BUG指的是软件中(包括程序和文档)不符合用户需求的问题。常见的软件BUG分三种类型:完全没有实现的功能;基本实现了用户需求的功能;实现了用户不需要的功能。 4、测试环境=软件+网络+硬件。搭建环境:真实、干净、无毒、独立 5、软件环境的分类:软件开发环境软件生产运行环境 6、测试用例:指在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和与其结果!测试用例=输入+输出+测试环境。测试用例有两个模板,word 和excel,前者适合性能测试,后者适合功能测试。 软件测试分类

1、黑盒测试:指的是把被测的软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果 白盒测试:指的是把盒子盖打开,去研究里面的源代码和程序结构。 2、静态测试:是指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。 动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是否运行程序。 注:同一个测试,既有可能属于黑盒测试,也有可能属于动态测试;既有可能属于静态测试,也有可能属于白盒测试。他们之间也有可能交叉。 3、单元测试:编译运行程序——静态测试——动态测试 集成测试:是单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。 4、系统测试:指的是将整个软件系统看作1个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。 5、验收测试:指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员 共同参与的测试,它也是软件正式交给用户使用的最后一道工序. 验收测试又分为α测试和β测试,其实α测试指的是由用户、测试人员、开发人员等共同参与的内部测试,而β测试指的是内侧后的公测,即完全交给最终用户测试。 功能测试:是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。功能测试又可以细分为很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。

软件测试基础知识大全(新手入门必备)

1. 软件生命周期(SDLC)的六个阶段 1、问题的定义及规划 此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。 2、需求分析 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。 3、软件设计 此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。 4、程序编码 此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。 5、软件测试 在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。 6、运行维护 软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。 2、软件生命周期模型 从概念提出的那一刻开始,软件产品就进入了软件生命周期。在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(Life Cycle Model)。 典型的几种生命周期模型包括瀑布模型、快速原型模型、迭代模型。

软件测试理论知识总结

测试基础 软件测试的定义和目的 1,什么是软件测试 a)IEEE定义为:使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是 否满足规定的需求或是弄清预期结果与实际结果之间的差别。 b)G.J.Myers认为:1)程序测试是为了发现错误而执行程序的过程;2)好的测试方案是 极可能发现迄今为止尚未发现的错误的测试方案;3)成功的测试是发现了至今为止尚未发现的错误测试。 (注:1)软件测试是一个过程,包含若干活动,运行软件进行测试只是活动之一;2)运行软件测试可以人工方式也可以借助于工具,3)进行软件测试可以运行软件也可以不运行软件;4)软件测试的目的不仅仅是为了发现错误。) 2,软件测试的目的 人们对软件测试的目的的认识也经历了一个过程: 20世纪60年代 20世纪70年代中期 20世纪90年代证明检测预防 表明软件能够工作发现错误管理质量 软件生命周期 计划需求分析设计编码测试运行和维护软件研发组织和流程 常见项目组架构 SQA 项目经理 开发经理测试经理配置经理 软件开发组软件测试组配置管理组

基本软件研发流程 1)瀑布模型 2)螺旋模型 3)RUP(Rational United Press)模型所有工作流在各个阶段都有体现。(IBM收购)4)IPD(Integred Product Design)模型从整个产品角度出发,不仅仅针对研发。 (IBM) 软件中引入缺陷的原因 软件缺陷:既指静态存在于软件工作产品(文档,代码)中的错误,也指软件运行时由于这些错误被激发引起的和软件产品预期属性的偏离现象。 Bug :代码中的缺陷。有时也被广泛指因软件产品内部的缺陷引起的软件产品最终运行时和预期属性的偏离。 (注:软件错误、软件缺陷、Bug在实际工作中可以认为是一样。) 常见的引入缺陷的原因 1)开发过程缺乏有效的沟通,或者没有进行沟通 2)软件复杂度越来越高 3)编程中产生的错误 4)需求不断变更 5)项目进度的压力 6)不重视开发文档 7)软件开发工具本身隐藏的问题8)。。。。。。。。。。。。。。。。。。。。。。 缺陷类型 1)遗漏:规定的或者预期的需求未体现在产品中(可能未将规格说明全面实现,也可能需求分析阶段就遗漏了需求) 2)错误:未将规格说明正确实现(可能设计错误、也可能编码错误) 3)额外的实现:规格说明并未规定的需求被纳入了产品,得到实现。 (也可以用下面五种类型表示: a)产品未达到产品说明书中要求实现的功能 b)产品出现了产品说明书中没有的功能 c)产品没有实现产品说明书中虽未指明但要求实现的功能 d)产品出现了说明书中明确规定不出现的功能 e)测试人员或用户认为产品不应使用)

软件测试基础习题及答案范文

1、软件测试的定义? 软件测试是一个过程或者一系列过程,用来确认计算和代码完成了其应该完成的功能,并且不执行其不应该有的操作。 2、软件测试的目标是什么? 是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,降低软件发布后由于潜在的软件错误和缺陷造成的隐患所带来的商业风险。 3、简单描述一下软件测试的原则? 所有的软件测试都应追溯到用户需求 应当把“尽早地和不断地进行软件测试”作为测试者的座右铭 Good Enough原则 质量第一 充分注意测试中的群集现象 程序员应避免检查自己的程序 有据可依 尽量避免软件测试的随意性,要有预期结果 重视回归测试 妥善保存一切测试过程文档 4、软件测试中验证和确认的区别? Verfication 验证: 是保证软件正确实现特定功能的一系列活动和过程。 目的是保证软件生命周期中的每一个阶段的成果满足上一个阶段设定的目标。 Validation 确认: 是保证软件满足用户需求的一系列的活动和过程。 目的是在软件开发后保证与用户需求符合 5、软件测试按照测试的基本策略可分为哪两种并加以详细说明? 白盒测试: 白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

黑盒测试: 黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试,黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。 6、整个软件生命周期中,需要进行哪几项测试? 单元测试、集成测试、系统测试、验收测试 单元测试 单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。因为单元测试需要知道内部程序设计和编码的细节知识,一般应由程序员而非测试员来完成,往往需要开发测试驱动模块和桩模块来辅助完成单元测试。因此应用系统有一个设计很好的体系结构就显得尤为重要。 一个软件单元的正确性是相对于该单元的规约而言的。因此,单元测试以被测试单位的规约为基准。单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等等。 集成测试 集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。 系统测试 系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软件系统测试方法很多,主要有功能测试、性能测试、随机测试等等。 验收测试 验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。这是软件在投入使用之前的最后测试。

相关主题
文本预览
相关文档 最新文档