当前位置:文档之家› 软件测试基础教程

软件测试基础教程

软件测试

一.概念

软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。

二.目的

检验软件是否满足规定的需求或弄清预期结果与实际结果之间的差别,帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量。

1、寻找Bug;

2、避免软件开发过程中的缺陷;

3、衡量软件的品质;

4、关注用户的需求。

总的目地是:确保软件的质量。

三.生命周期

计划阶段,分析阶段,设计阶段,开发阶段,测试阶段,运行和维护阶段。

四.类型

按开发阶段分:单元测试,集成测试,确认测试,系统测试,验收测试;

按执行方式分:静态测试,动态测试;

按技术分:黑盒测试,白盒测试,灰盒测试;

按测试实施组织分:开发方测试,用户测试,第三方测试;

按测试对象分:文档测试,源代码测试,数据库测试,网络测试;

按质量管理分:功能性,可靠性,易用性,效率,维护性,可移植性测试等。

五.原则

软件测试从不同的角度出发会派生出两种不同的测试原则,从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品,从开发者的角度出发,就是希望测试能表明软件产品不存在错误,已经正确地实现了用户的需求,确立人们对软件质量的信心。

为了达到上述的原则,那么需要注意以下几点:

1.应当把“尽早和不断的测试”作为开发者的座右铭

2.程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完。

3.设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。

4.一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。

5.对测试错误结果一定要有一个确认的过程,一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。

6.制定严格的测试计划,并把测试时间安排的尽量宽松,不要希望在极短的时间内完成一个高水平的测试。

7.回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现象并不少见。8.妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。

六.黑盒测试

1.黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

2.主要试图发现下列几类错误:

功能不正确或遗漏;

界面错误;

输入和输出错误;

数据库访问错误;

性能错误;

初始化和终止错误等。

3.测试方法:等价类划分法、边界值分析法、错误推测法、因果图/判定表法、正交试验设计法、功能图法、场景法等。

〈1〉等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。

等价类的原则:

①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.

②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.

③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.

④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.

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

⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.

〈2〉边界值分析是通过选择等价类边界的测试用例。

边界值分析的原则:

1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.

2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据.

3)根据规格说明的每个输出条件,使用前面的原则1).

4)根据规格说明的每个输出条件,应用前面的原则2).

5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.

6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.

7)分析规格说明,找出其它可能的边界条件.

〈3〉错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法.

〈4〉因果图/判定表法:因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

因果图生成测试用例

(1) 分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符.

(2) 分析软件规格说明描述中的语义.找出原因与结果之间,原因与原因之间对应的关系.

根据这些关系,画出因果图.

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

(4) 把因果图转换为判定表.

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

判定表组成

条件桩(Condition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.

动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.

条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.

动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.

规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列.

判定表的建立步骤

①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有2n种规则.

②列出所有的条件桩和动作桩.

③填入条件项.

④填入动作项.等到初始判定表.

⑤简化.合并相似规则(相同动作).

适合使用判定表设计测试用例的条件:

①规格说明以判定表形式给出,或很容易转换成判定表.

②条件的排列顺序不会也不影响执行哪些操作.

③规则的排列顺序不会也不影响执行哪些操作.

④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.

⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要.

〈5〉正交实验法:使用已经造好了的正交表格来安排试验并进行数据分析的一种方法。

试验设计方法常用的术语定义如下:

试验指标:指作为试验研究过程的因变量,常为试验结果特征的量(如得率、纯度等)。

因素:指作试验研究过程的自变量,常常是造成试验指标按某种规律发生变化的那些原因。水平:指试验中因素所处的具体状态或情况,又称为等级。

特点:①完成试验要求所需的实验次数少。②数据点的分布很均匀。③可用相应的极差分析方法、方差分析方法、回归分析方法等对试验结果进行分析,引出许多有价值的结论。

〈6〉功能图法:是用功能图形象地表示程序的功能说明,由状态迁移图和布尔函数组成,同时需要依靠判定表或因果图表示逻辑功能,并机械地生成功能图的测试用例。功能图法是黑盒、白盒混合用例的设计方法。

功能图模型由状态迁移图和逻辑功能模型两部分构成。

状态迁移图:用于表示输入数据序列以及相应的输出数据,由输入数据和当前状态决定输出数据和后续状态。

逻辑功能模型:用于表示在状态中输入条件和输出条件的对应关系,由输入数据决定输出数据。此模型只适用于描述静态说明,输出数据由输入数据决定。

程序功能说明包括动态说明和静态说明:

动态说明:描述输入数据的次序或转移次序。

静态说明:描述输入条件和输出条件之间的对应关系。

生成功能图测试用例的步骤如下:

1)生成局部测试用例:在每个状态中,通过因果图生成局部测试用例。

2)生成测试路径:利用规则生成从初始状态到最后状态的测试路径。

3)合成测试用例:合成测试路径与功能图中每个状态的局部测试用例。其结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合。

4)采用条件构造树测试用例的合成算法。

〈7〉场景法:通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。我们通常以正常的用例场景分析开始,然后再着手其他的场景分析。场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。场景主要包括4种主要的类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景。

场景法的基本设计步骤

1. 根据说明,描述出程序的基本流及各项备选流

2. 根据基本流和各项备选流生成不同的场景

3. 对每一个场景生成相应的测试用例

4. 对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

七.白盒测试

1.白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。

2.测试方法

白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。

白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖发现错误的能力呈由弱至强的变化。语句覆盖每条语句至少执行一次。判定覆盖每个判定的每个分支至少执行一次。条件覆盖每个判定的每个条件应取到各种可能的值。判定/条件覆盖同时满足判定覆盖条件覆盖。条件组合覆盖每个判定中各条件的每一种组合至少出现一次。路径覆盖使程序中每一条可能的路径至少执行一次。

3.要求

〈1〉保证一个模块中的所有独立路径至少被使用一次

〈2〉对所有逻辑值均需测试 true 和 false

〈3〉在上下边界及可操作范围内运行所有循环

〈4〉检查内部数据结构以确保其有效性

4.实施步骤

〈1〉测试计划阶段:根据需求说明书,制定测试进度。

〈2〉测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。

〈3〉测试执行阶段:输入测试用例,得到测试结果。

〈4〉测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。5.优缺点

〈1〉优点

·迫使测试人员去仔细思考软件的实现

·可以检测代码中的每条分支和路径

·揭示隐藏在代码中的错误

·对代码的测试比较彻底

·最优化

〈2〉缺点

·昂贵·无法检测代码中遗漏的路径和数据敏感性错误

·不验证规格的正确性

八.软件测试报告模板

[系统名称+版本]

测试报告

版本变更记录

目录

版本变更记录 (6)

项目基本信息 (1)

第1章引言 (2)

1.1 编写目的 (2)

1.2 项目背景 (2)

1.3 参考资料 (2)

1.4 术语和缩略语 (2)

第2章测试概要 (1)

2.1 测试用例设计 (1)

2.2 测试环境与配置 (1)

2.2.1 功能测试 (1)

2.2.2 性能测试 (1)

2.3 测试方法和工具 (2)

第3章测试内容和执行情况 (2)

3.1 项目测试概况表 (2)

3.2 功能 (3)

3.2.1 总体KPI (3)

3.2.2 模块二 (3)

3.2.3 模块三 (3)

3.3 性能(效率) (4)

3.3.1 测试用例 (4)

3.3.2 参数设置 (4)

3.3.3 通信效率 (4)

3.3.4 设备效率 (5)

3.3.5 执行效率 (5)

3.4 可靠性 (6)

3.5 安全性 (6)

3.6 易用性 (6)

3.7 兼容性 (6)

3.8 安装和手册 (7)

第4章覆盖分析 (7)

第5章缺陷的统计与分析 (8)

5.1 缺陷汇总 (8)

5.2 缺陷分析 (8)

5.3 残留缺陷与未解决问题 (8)

第6章测试结论与建议 (9)

6.1 测试结论 (9)

6.2 建议 (9)

项目基本信息

第1章引言

1.1 编写目的

[以下作为参考]

本测试报告为XXX项目的测试报告,目的在于总结测试阶段的测试以及分析测试结果,描述系统是否符合需求(或达到XXX功能目标)。预期参考人员包括用户、测试人员、开发人员、项目管理者、其他质量管理人员和需要阅读本报告的高层经理。

……

[可以针对不同的人员进行阅读范围的描述。什么类型的人可以参见报告XXX页XXX章节等。]

1.2 项目背景

本报告主要内容包括:

[对项目目标和目的进行简要说明。必要时包括简史,这部分不需要脑力劳动,直接从需求或者招标文件中拷贝即可。]

1.3 参考资料

[需求、设计、测试用例、手册以及其他项目文档都是范围内可参考。

测试使用的国家标准、行业指标、公司规范和质量手册等等。]

1.4 术语和缩略语

[列出设计本系统/项目的专用术语和缩写语约定。对于技术相关的名词和与多义词一定要注明清楚,以便阅读时不会产生歧义。]

第2章测试概要

[测试的概要介绍,包括测试的一些声明、测试范围、测试目的等等,主要是测试情况简介。]

……

2.1 测试用例设计

[简要介绍测试用例的设计方法。例如:等价类划分、边界值、因果图,以及用这类方法(3-4句)。]

……

2.2 测试环境与配置

[对于三层架构的,可以根据网络拓扑图列出相关配置。]

2.2.1功能测试

2.2.2性能测试

2.3 测试方法和工具

第3章测试内容和执行情况

[采用了CMM/ISO或者其他工程标准过程。这部分主要汇总各种数据并进行度量,度量包括对软件能力评估、对软件产品的质量度量和产品评估。] 3.1 项目测试概况表

对XXXX系统的功能、性能、可靠性、安全性、可使用性、兼容性、安装和手册等方面进行了全面的测试。……

项目测试概况表

3.2 功能

功能测试情况概要

3.2.1总体KPI

[下表摘一些需求点(可融合用例,框架性内容,不需要太具体的用例)、用例执行情况出来。]

3.2.2模块二

3.2.3模块三

……

3.3 性能(效率)

性能测试情况概要

3.3.1测试用例

测试系统在预定环境和负载下的响应速度。通信效率、设备效率、执行效率。……

3.3.2参数设置

[大概列一些数据项,有需要的再补充其中。]

3.3.3通信效率

[先简介测试内容和测试标准,包括网络的使用频度与带宽占用。然后填写下面表格。]

[说明:包括使用LoadRunner测试以上各种情况,包括测试该功能得到的性能指标的截图]

说明:

3.3.4设备效率

[先简介测试内容和测试标准,包括CPU占用率、内存占用率、磁盘占用率、输入输出效率等,包括软件在不工作状态下对于硬件资源的占用情况和进行业务处理过程中对于硬件资源的占用情况。然后填写下面表格。]

[说明:包括使用LoadRunner测试以上各种情况,包括测试该功能得到的性能指标的截图]

说明:

3.3.5执行效率

[先简介测试内容和测试标准,包括在预定环境和负载下的响应速度,特别是在大负载、大并发量情况下的响应速度。然后填写下面表格。]

[说明:包括使用LoadRunner测试以上各种情况,包括测试该功能得到的性能指标的截图]

说明:3.4 可靠性

3.5 安全性

3.6 易用性

3.7 兼容性

3.8 安装和手册

第4章

覆盖分析

测试覆盖率

测试覆盖率计算:

执行数/用例总数 ×100% =

第5章缺陷的统计与分析

5.1 缺陷汇总

测试问题数量-问题类型

[使用BI,截表、柱状图]

测试问题数量-其他数据

[使用BI,截表]

测试问题数量-问题产生原因

[使用BI,截表、柱状图]

5.2 缺陷分析

本部分对上述缺陷和其他收集数据进行综合分析。……

重要缺陷分析表

5.3 残留缺陷与未解决问题

残留缺陷与未解决问题列表

第6章测试结论与建议

6.1 测试结论

“XXX系统”在用户现场环境进行功能、可靠性、安全性、可使用性、兼容性、安装和手册功能七个方面进行了全面、严格、规范的测试。测试结果表明:“XXX系统”完全达到业务需求文档中的要求,并具有以下特点:

1.系统架构先进、简单。该系统采用先进的B/S架构,后台支持各种大小

数据库,系统结构清晰明确,可满足国家税务总局网络软件应用的要求。

2.功能全面。该软件由桌面系统、报表采集服务器、报表分析应用服务器

等模块组成,涵盖了税务的税收快报、税收旬报、会统报表、重点税源

税收调查、纳税百强全部业务功能,提供了计会统、重点税源等各种业

务报表,保证重点税源业务在系统中的正常应用,保障了重点税源监控

工作顺利开展。

3.系统安全性较好。系统具有严格的权限设置功能,权限设置可细化到字

段级,不同权限的人员只能看到自己有权限访问的字段内容,有效地保

证了数据的安全性。

4.系统设置灵活。该软件完全基于工作流程进行设计,系统业务功能操作

简单,可轻松制作各种图表。

5.系统可靠性高。对客户机掉电或强行关机后重启机器、网络异常中断。

有完善的数据校验机制,对用户输入不符合要求的数据,给出了简洁、

准确的提示信息,必要时给出了帮助。

6.系统兼容性好。系统设计灵活,支持与税源分析系统相关应用软件实现

数据交换和共享。能满足用户在各种操作系统,各种web应用服务器及

各种主流数据库支撑软件下的使用。

7.系统预测统计模型通过严格测试,以大量税收数据进行预测,使预测模

型求出的预测数据更接近真实数据。对大量税收数据进行预警分析,预

警结果正确。

8.测试结论:通过。

6.2 建议

[1.对系统存在问题的说明,描述测试所揭露的软件缺陷和不足,以及可能

给软件实施和运行带来的影响

2.可能存在的潜在缺陷和后续工作

3.对缺陷修改和产品设计的建议

4.对过程改进方面的建议 ]

……

九.软件测试用例模板

XX系统

测试用例

由安博测试空间技术中心https://www.doczj.com/doc/2a15464014.html,/提

目录

第一章任务概述 (1)

1.1.目标 (1)

1.2.需求与设计概述 (2)

1.3.运行环境 (2)

1.4.测试环境 (2)

1.5.条件与限制 (2)

1.6.参考资料 (2)

第二章测试内容说明 (2)

2.1.测试方案 (2)

2.2.需要测试内容说明 (2)

2.3.测试准备工作 (2)

第三章功能测试用例设计 (3)

3.1.公用测试用例 (3)

3.2.系统登录及界面 (3)

3.2.1.模块一

(3)

第四章性能测试用例设计 (3)

4.1.性能测试 (3)

4.2.恢复测试 (3)

4.3.安全性测试 (3)

4.4.强度测试 (3)

第五章评价准则 (3)

5.1.范围 (3)

5.2.准则 (3)

第六章测试用例列表 (3)

6.1.页面测试 (3)

任务概述

目标

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