软件测试基础教程
-
软件测试基础教程
测试的基本概念
测试是软件生存周期
中十分重要的一个过程,
是产品发布、
提交给最终用户前的
p>
稳定化阶段。
1
、
测试的分类:
从测试方法的角度可以分为手工测试和自动化测试。
手工测试:
不使用任何测试工具,
根据事先设计
好的测试用例来运行系统,
测试
各功能模块。
< br>
自动化测试:
利用测试工具,
通过编写测试脚本和输入测试数据,
自动运行测试
程序。
目前最常用的自动化测试工具是基于
GUI
的
自动化测试工具,
基本原理都
是录制、回放技术。
从整体的角度可以分为单元测试、集成测试、系统测试、确认测试。
单元测试:
是针对软件设计的最小单位—程
序模块,
进行正确性检验的测试工作。
一般包括逻辑检查、结构
检查、接口检查、出错处理、代码注释、输入校验、边
界值检查。
单元测试的依据是系统的详细设计;一般由项目组开发人员自己完成。
集成测试:
在单元测试的基础上,
将所有模块按照设计要求组装进行测试。
一般
包括逻辑
关系检查、数据关系检查、业务关系检查、模块间接口检查、外部接口
检查。
系统测试:
系统测试是在所有单元、
集成测试后,
对系统的功能及性能的总体测
试。<
/p>
确认测试:
模拟用户运行的业务环境,
运用黑盒测试方法,
验证软件系统是否满
足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。
从测试原理上分为:白盒测试、黑盒测试和灰盒测试。
白盒测试:
是通过程序的源代码进行测试而不使用用户界面。
这种类型的测试需
要从代码句法发现内部代码在算法,溢出,路径,条件
等等中的缺点或者错误,
进而加以修正。
黑盒测试:
是通过使用整个软件或某种软件功能来严格地测试
,
而并没有通过检
查程序的源代码或者很清楚地了解该软件
的源代码程序具体是怎样设计的。
测试
人员通过输入他们的数据
然后看输出的结果从而了解软件怎样工作。在测试时,
把程序看作一个不能打开的黑盆子
,
在完全不考虑程序内部结构和内部
特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求
规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。黑盒
测试
方法主要有等价类划分、边界值分析、因—果图、错误推测法。
等价类划分:
是把所有可能的输入数
据
,
即程序的输入域划分成若干部分
(
子集)
,
然后从每一
个子集中选取少数
具有代表性的数据作为测试用例
.
该方法是一种重要的
,
常用
的黑盒测试用例设计方法
.
1)
划分等价类
:
等价类是指某个输入域
的子集合
.
在该子集合中
,
各个输
入数据对于揭露程序中的错误都是等效的
.
并合理地假定
:
测试某等价类的代表<
/p>
值就等于对这一类其它值的测试
.
因此<
/p>
,
可以把全部输入数据合理划分为若干等
价类
,
在每一个等价类中取一个数据作为测试的输入条件
,
就可以用少量代表性
的测试数据
.
取得较好的测试结果
.
等价类划分可有两种不同的情况
:
有效等价类
< br>和无效等价类
.
有效等价类
:
是指对于程序的规格说明来说是合理的
,
有意义的输入数据构成的
集合
.
利用
有效等价类可检验程序是否实现了规格说明中所规定的功能和性能
.
< br>无效等价类
:
与有效等价类的定义恰巧相反
.
设计测试用例时<
/p>
,
要同时考虑这两种等价类
.
因为
,
软件不仅要能接收合理的
< br>数据
,
也要能经受意外的考验
.
这样的测试才能确保软件具有更高的可靠性
.
边界值分析:
长期的测试工作经验告
诉我们
,
大量的错误是发生在输入或输出范围的边界上
,
而不是发生在输入输出范围的内部
.
因此针对各种边界情况设计测试用例
,
可以<
/p>
查出更多的错误。
错误推测法:
基于经验和直觉推测程序中所有可能存在的各种错误
,
从而有针对性的设计测
试用例的方法
.
错误推测方法的基本思想
:
列举出程序中所
有可能有的错误和容
易发生错误的特殊情况
,
< br>根据他们选择测试用例
.
例如
,
在单元测试时曾列出的
许多在模块中常见的错误
.
以前产品测试中曾经发现的错误等
,
这些就是经验
的总结
.
还有
,
输入数据和输出数据为
0
的情况
.
输入表格为空格或输入表格
只有一行
.
这些都是容易发生错误的情况
.
可选
择这些情况下的例子作为测试
用例。
灰盒测试:
灰盒测试就像黑盒测试一样是通过用户界面测试,<
/p>
但是测试人员已经
有所了解该软件或某种软件功能的源代码程序具
体是怎样设计的。
甚至于还读过
部分源代码。因此测试人员可以
有真对性地进行某种确定的条件
/
功能的测试。
从软件特性上分为功能测试和性能测试。
功能测试:
是指为了确保软件系统功能实现的正确性,
完整
性和其他特性而进行
的测试。
<
/p>
性能测试:
是指为了评估软件系统的性能状况,
< br>和预测软件系统性能趋势而进行
的测试和分析。
2
、
BUG
的定义:
BUG
:
(
小错误,缺陷,不足,过失
„) 一个计算机
bug
指在计
算机程序中存在
的一个错误(
error
)、缺陷(
flaw
)、疏忽(
mi
stake
)或者故障(
fault
)
,
这些
bug
使程序无法正确的运行。
Bug
产生于程序的源代码或者程序设计阶段的
疏忽或者错误。
Def
ect
:
(
缺陷
)
在软件工程(
Software Engineerin
g
)中,软件与它的需求
(
requi
rements
)
不一致,
常常指软件
无法正确完成需求所要求的功能,
也称之
为
bug
。
Fault
:
(
故障
)
被定义为存在于组件、设
备或者子系统中异常的条件或者缺陷,
常常会导致系统的失败。
Error
:
(
错误
)
一个
< br>error
是指编写错误的代码,
通常是无意中造成的。
一般有
两类主要的错误,一是语法错误(
syntax
error
),该类错误易于检测,因为代<
/p>
码在编译阶段无法解析而不能正常编译通过。另一个是逻辑错误(
logical
error
),因为它与代码的实际执行密切
相关所以不易发现。
二、
项目测试的规划
项目测试内容: