51Testing软件测试论坛
标题:
测试人员须掌握的测试理论
[打印本页]
作者:
peag
时间:
2010-4-16 20:47
标题:
测试人员须掌握的测试理论
测试人员须掌握的测试理论知识点
需求评审
需求评审是需求分析的最后一步,主要是对功能的正确性,完整性和清晰性以及其他需求给予评价。
需求评审的内容:p422
编制良好的需求说明书的原则:
1功能与实现的分离;2、要求使用面向处理的规格说明语言;3、如果目标软件是一个大系统的一个元素,要描述目标软件与大系统中其他系统元素的交互方式;4、规格说明必须包括系统的运行环境;5、规格说明必须是一个认识的过程;6、规格说明必须是可操作的;7、必须容许不完备性并允许扩充;8必须局部化和松散的耦合。
需求评审必须有负责人的结论意见和签字,除了分析人员外,用户、开发部的管理者,软件设计,实现和测试都应该参加评审工作。如果评审结果包括修改意见,该修改意见仍然需要再次评审。
设计评审
设计质量评审内容:1、规格说明书是否符合用户需求;2、评审软件的可靠性;3、评审软件安全性的实现情况;4评审软件的操作实现情况程序质量;5评审软件的性能实现情况;6、评审软件的可修改性、可扩充性、可互换性和可移植性;7评审软件的可测试性;8、评审软件是否具有可复用性。
程序质量评审内容:
1、 软件的结构:功能结构,功能的通用性,模块的层次,模块结构,处理过程的结构。
2、 与运行环境的接口:与硬件的接口,与用户的接口,与其他软件的接口。
3、 变更的影响范围。
设计评审通常分两次进行,首先进行初步设计评审,是在设计过程中早期的评审,其次是设计结束时的评审。设计评审可以采用正式技术复审,正式技术复审包括“走查”“审查”“轮查”以及其他软件下载的技术评估。
软件生命周期测试策略
软件生命周期的测试策略一般的做法是,用黑盒设计基本的测试方案,在利用白盒补充一些必要的测试方案,用一些策略结合各种方法:
1、 在任何情况下都应该使用边界值分析的方法;
2、 必要时用等价划分法补充测试方案;
3、 必要时用错误推测法补充测试方案;
4、 输入如含有条件组合,一开始用因果图法;
5、 对照程序逻辑,检查设计出的设计方案。
测试计划与设计
测试计划和设计应在设计阶段制定,测试计划主要包括内容,进度,条件,人员,测试用例的选取原则和测试结构允许的偏差范围等。测试设计是根据测试计划制定测试方案。测试设计过程的输出是各测试阶段使用的测试用例,测试设计的另一项内容是回归测试设计,确定回归测试的用例集。
测试用例包括如下6个元组:测试索引,测试环境,测试输入,测试操作,预期结果,评价标准。一个好的测试用例应该包括以下特征:1、发现错误的可能性很高;2、一个好的测试并不冗余;3、一个好的测试应该是最佳品种,在一组相似的测试用例中应该选择最可能找到所有错误的测试;4、每一个测试应该对立执行。
单元测试
单元测试又称模块测试,其目的在于发现各模块内部可能存在的各种差错,一般使用白盒法,以路径覆盖为最佳准则,且系统内多个模块可以并行地进行测试。单元测试主要是对模块的5个基本特性进行测试和评价:1模块接口;2、局部数据结构;3重要的执行路径;4错误处理;5、边界测试。单元测试的步骤:1、设计辅助测试模块;2、编写测试数据;3、进行多个单元的并行测试。
集成测试
集成测试也成组装测试,综合测试或者联合测试,是按照测试要求把通过单元测试的各个模块组装在一起之后进行的测试,以便发现与接口有关的各种错误。
集成测试主要考虑的问题:1、数据经过接口是否会丢失;2、一个模块对另一个模块是否造成不应有的影响;3、几个子功能组合起来能否实现主功能;4、误差不断累积是否达到不可接受的程度;5、全局数据结构是否有问题。
集成测试分为非渐增式测试和渐增式测试两种,非渐增式测试也称一次性组装方式。渐增式测试又分为自顶向下结合(深度优先,宽度优先两种)和自底向上结合两种。
确认测试
确认测试又称为合格测试,主要是由使用用户参加测试,检验软件规格说明的技术标准的符合程度,是保证软件质量的最后关键环节。
系统测试
系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
系统测试包括以下几个方面的测试内容:1、恢复测试,主要检查系统的容错功能;2、安全性测试,检验在系统中已经存在的系统安全性措施,保密性措施是否发挥作用;3、强度测试,检查在系统运行环境下不正常到发生故障的时间内,系统可以运行到何种程度的测试;4、性能测试,测试软件在被组装进系统的环境下运行时的性能。
验收测试
验收测试是以用户为主,软件开发人员和质量保证人员也应参加的测试,由用户参加设计测试用例。验收测试往往在系统测试完成后,项目最终交付前进行。
白盒测试基本技术
1、 控制流图,是一种简化了的程序流程图。
2、 代码覆盖率分析,主要包括逻辑覆盖法(语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,修正的条件/判定覆盖)和路径覆盖法。
3、 N-S图。
白盒测试方法
白盒测试方法总体上主要可以划分为静态测试和动态测试。
静态测试的方法主要包括:代码检查法,静态结构分析法,代码质量度量法。
动态测试包括功能确认与接口测试,覆盖率分析,性能分析,内存分析,动态测试通常在静态测试之后进行。
白盒的动态测试原则:
1、 保证一个模块中的所有独立路径至少被使用一次;
2、 对所有逻辑值均需要测试true和false;
3、 在上下边界及可操作范围内运行所有循环;
4、 检查内部数据结构以确保其有效性。
V(G)=e-n+2=判定节点数+1
黑盒测试用例设计方法
黑盒测试主要是为了发现以下几类错误:
1、 是否有不正确或遗漏的功能;
2、 在接口上输入是否能正确地接收,能否输出正确的结果;
3、 是否数据结构错误或外部信息访问错误;
4、 性能上是否能够满足要求;
5、 是否有初始化或终止性错误。
黑盒测试用例设计方法有:等价类划分法,边值分析法,错误猜测法,因果图方法等。
测试用例的编写
面向对象测试用例设计
基于故障的测试;基于场景的测试;OO类的随机测试;类层次的分割测试;由行为模型导出的测试
黑盒测试方法选择策略
1、 首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试;
2、 在任何情况下都必需使用边界值分析方法;
3、 可以用错误推测增加一些测试用例,得依靠智慧和经验;
4、 对照程序逻辑,检查已经设计出的测试用例的逻辑覆盖程度;
5、 如果程序功能说明包含输入条件的组合情况,一开始就可以选择因果图法和判定表驱动法;
6、 对于参数配置类的软件,要用正交使用法选择较少的组合达到最佳效果;
7、 对于业务流程清晰的系统,利用场景法贯穿整个测试案例过程。
白盒测试方法选择策略
在白盒测试方法的选择上一般来说任何的程序单元目标都应该进行静态的代码检测;
白盒测试中最重要的动态测试方法是逻辑覆盖;
白盒测试中逻辑覆盖测试需要大量的测试用例,所有非常有必要利用自动化测试来提升测试的效率和覆盖的可靠性;
测试人员应该多注意找重点,根据算法的逻辑结构特点,设计更多有针对性的用例。
面向对象软件的测试策略
由于面向对象的软件具有特殊性质,在测试的策略上与传统的软件测试有很大的不同,测试的视觉应扩大到包括复审分析和设计模型,此外,测试的焦点应该从模块转移向类;
OOA和OOD的评审与传统软件的分析和设计相同,需要给出相应的评审检查表;
OOP后,单元和组装测试策略必需有相应的变化;
测试用例设计必需说明OO软件特有的性质。
软件自动化测试基本概念
为了提高软件测试的效率,运用既有的测试工具,或开发相应的测试程序进行测试,引入自动化测试可以帮助测试人员:
1、 提高测试执行的速度;
2、 提高运行效率;
3、 保证测试结果的准确性;
4、 连续运行测试脚本;
5、 模拟现实环境下受约束的情况。
选择自动化测试工具
自动化工具可以分为:
分析自动化(Rational Test Studio),功能测试类(Rational Robot,Mercury WinRuner)和系统测试类()。
功能自动化测试
功能自动化测试有两种方式,一种是使用录制/回放的方式对功能进行验证,另一种功能自动化测试工具主要是为了解决单元测试自动化问题而开发出来的测试框架,它本身并不能独立完成大部分的功能测试,大部分工作需要人来完成,这种工具只是提供一组规范。
负载压力自动化测试
负载测试是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项来决定系统的性能。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。负载压力测试自动化能模拟大规模用户的并发访问从而达到负载压力测试的目的。负载压力测试的重要指标如下:cpu占用率,请求相应时间,内存占用率,内存片读入次数,网络流量负载情况,应用程序会话数量,应用程序会话处理时间等。
面向对象测试模型
面向对象测试模型划分为:
1面向对象分析的测试2面向对象设计的测试3面向对象编程的测试4面向对象的单元测试
5面向对象的集成测试6面向对象的系统测试
面向对象分析的测试
测试范围包括:对需求的测试,对认定的对象的测试,对认定的结构的测试,对认定的主题的测试,对定义的属性和实例关联的测试,对定义的服务和消息关联的测试。
面向对象设计的测试
测试范围包括:对认定的类的测试,对构造的类层次结构的测试,对类库的支持的测试,对系统架构的测试。
面向对象编程的测试
测试范围包括:对构造和析构方法的测试,对方法的测试,对类的测试,对代码进行走查。
测试结果是以代码覆盖率来衡量的
面向对象的单元测试
主要有以下原则:
1. 程序是否能处理输入范围以外的数据
2. 程序是否有未考虑到的处理结果
3. 是否造成系统不可预知的错误
单元测试工具比较有代表性的有JUint,Python等
作者:
peag
时间:
2010-4-16 20:48
标题:
测试人员须掌握的测试理论
面向对象的集成测试
集成测试的对象通常是阶段性交付的工件,也就是我们所说的基于基线的测试
使用基于统一建模语言UML的方式进行集成测试,测试的重点是对象的交互方式
面向对象的系统测试
目的:验证产品交付的组件和系统性能能否达到要求;定位产品的容量以及边界限制;定位系统性能瓶颈
范围:用户支持测试;用户界面测试;可维护性测试;安全性测试;系统性能测试;系统可靠性,稳定性测试;系统兼容性测试;系统组网测试;系统安装升级测试;单个子系统的性能;子系统间的接口瓶颈;子系统间的相互影响;协议一致性测试;协议互通性测试
负载压力测试基本概念
目标:确保产品满足性能和效率的要求;确保产品是健壮的和适应用户环境的
基本内容:应用在客户端性能的测试,应用在网络上性能的测试,应用在服务器端性能的测试
并发性能测试的目的:评价系统的当前性能;预测系统的未来性能;寻找到瓶颈问题
负载压力测试解决方案
负载压力测试指标分析
负载压力测试实施
Web应用的测试策略
测试策略原则:要根据程序的重要性和一旦发生故障的损失来确定它的测试等级和重点;要认真研究测试策略,以便使用尽可能少的用例发现更多的BUG
Web应用设计测试
基准测试:主要指测试工具已经提供了标准的测试案例库,包括静态测试案例(HTM,JPG),动态测试案例(CGI)和SSL测试案例等。这类测试工具分为测试案例库,控制台程序,客户端程序3个部分。
非基准测试:
Web应用开发测试
Web静态测试是web应用测试的重要手段之一,主要的测试技术和分析方法:语法检查,链接检查,控制流分析,数据流分析,信息流分析,语义分析
Web应用运行测试
Web应用压力测试:分析web应用程序的应用场景从而制定一个详细的测试计划;构建一个可能真实的环境;模拟多个用户对web程序进行并发访问;分析web应用程序的性能及稳定性
网络系统生命周期测试策略
划分为三个阶段:网络规划设计阶段(设计方案的测试,网络设备评估),网络实施阶段(可用性测试,性能测试,可靠性测试),网络与应用系统集成阶段(多用户并发访问性能,系统响应时间和应用系统对网络资源的占用情况等)
网络仿真技术
也称为网络模拟技术,是一种通过建立网络设备,链路和协议模型,并模拟网络流量的传输,从而获取网络设计或优化所需要的网络性能数据的技术
主要有两种模型:流模型(采用基于流的建模机制模拟实际网络中数据的流动)和包模型(采用基于包的建模机制来模拟实际网络中数据包的流动)
网络性能测试
主要内容:网络容量测试,网络响应时间测试,网络可靠性测试,网络吞吐量测试,网络配置规模测试,网络瓶颈,衰减测试
分类:网络可接受性测试,网络升级测试,网络设备评估测试
测试对象:1路由器,集线器,交换机和网桥;2网段;3全局网;4网络操作系统;5文件服务器;6工作站
网络应用测试
网络应用系统主要内容:网络应用软件,工作站桌面软件和客户/服务器数据库,但不包括网络操作系统和数据库管理系统
测试内容包括:特性测试;功能测试;网络应用负载测试;应用系统响应时间测试;应用系统升级测试
安全测试内容
用户认证机制;加密机制;安全防护策略;数据备份与恢复;防病毒系统
安全测试策略
安全防护体系包括:实体安全;平台安全;数据安全;应用安全;通信安全;运行安全;组织安全;管理安全
基本安全防护系统测试技术包括:防火墙系统;入侵检测系统;漏洞扫描系统;安全审计系统;病毒防治系统;web信息防篡改系统
安全测试方法
基本测试方法包括:功能验证;漏洞扫描;模拟攻击;侦听技术
硬件兼容性测试
主机兼容性测试:确认软件能否运行在不同系列的计算机上;在同一系列的主机上,确认软件所要求的最低配置和推荐配置的合理性和正确性。配置指标主要包括CPU,内存和硬盘
板卡、配件及外设的兼容性测试:实际上就是对驱动程序的测试。测试步骤一般由生产厂家->操作系统->应用程序
软件兼容性测试
1.操作系统兼容性测试:跨平台测试;操作系统不同版本的兼容性测试;操作系统不同语言版本的兼容性测试;不同厂家、相同类型的操作系统的兼容性测试
2.数据库兼容性测试:SQL符合性测试;ODBC符合性测试;JDBC符合性测试
3.中间件兼容性测试;4.与其他软件的兼容性测试,5还包括与浏览器、杀毒软件等
数据兼容性测试
编码体系测试;数据标准符合性测试
新旧系统数据迁移测试
指软件系统能够打开旧系统的数据文件,一般不作反向要求
迁移三个阶段:迁移准备,迁移实施,迁移验证
迁移步骤:建立新旧软件系统的数据字典;建立新旧系统数据的映射关系;编写数据迁移软件;测试数据迁移软件
平台软件测试
指用来构建与支撑应用软件的独立软件系统,有两个要素----支撑环境和开发环境。目标之一就是实现上层应用软件和底层无关性,因为平台软件自身必须具体良好的硬件兼容性,软件兼容性,操作系统兼容性,数据库兼容性,数据兼容性和文种兼容性。平台软件一般分为单机版和网络版,应分别进行测试
功能易用性测试
易用性测试包括:易理解性测试;易学性测试;易操作性测试;吸引性测试;易用的依从性测试
质量属性六大特性:功能性,可靠性,易用性,效率,维护性,可移植性
功能易用性测试范围:业务符合性;功能定制性;业务模块集成度;约束性;交互性;系统信息与错误提示
用户界面测试
用户界面分为字符界面,图形界面,网页界面,多媒体界面
用户界面测试的目的是测试用户与软件之间的交互方式,以及交互的表现形式是否满足要求。
用户界面测试可以分为整体测试(规范性测试,合理性测试,一致性测试,界面定制性测试)和界面中的元素测试(标题,边框,菜单,工作区,流动条等)。
文档测试的范围
开发文件:可行性研究报告;软件需求说明书;数据要求说明书;概要设计说明书;详细设计说明书;数据库设计说明书;模块开发卷宗
用户文件:用户手册;操作手册
管理文件:项目开发计划;测试计划;测试分析报告;开发进度月报;项目开发总结报告
用户文档的内容
用户手册;操作手册;联机帮助;样例、示例和模板;授权/注册登记表;最终用户许可协议;包装;宣传与广告
用户文档测试的要点
文档的读者群;文档的术语;文档的正确性;文档的完整性;文档的一致性;文档的易用性;样例与示例;文档的语言;印刷与包装质量
用户手册的测试
严格地使用系统;随心所欲地使用系统;尝试文档中的每个建议和注意事项;描述的准确性;从用户角度看手册
在线帮助的测试
准确性;用户的查询;帮助主题的完整性;帮助的风格
测试过程的特性与要求
特性:软件测试成为软件开发的重要部分
要求:必须为所测试的软件编写规范化的测试文件,设定目标;要有效地组织管理软件测试工作,才能保证测试工作有序,有效进行,提高效率,保证质量。
软件测试与配置管理
是贯穿于软件开发的全过程,即贯穿软件的整个生命周期,与其他各个管理紧密相连,紧密牵动着测试管理,更动管理,版本管理,文档管理,可以说集上述管理于一身。在储多支持活动中,配置管理系统处于支持活动的中心位置
配置管理目的是呈现软件生命周期中任一时刻的软件状态,其对象包括软件文档;软件源代码;可执行代码;数据;运行所需的系统软件和支持软件;技术札记。
配置管理内容:确立基线(功能基线,分配基线和产品基线);建立三库(开发库,受控库,产品库);出入库管理和审计;状态报告和查询
测试的组织与人员
测试管理组包括评审小组;测试小组和支持小组
测试文档
测试文档类型:测试计划和测试分析报告
测试文档的作用:验证需求的正确性;检验测试资源;明确任务的风险;生成测试用例;评价测试结果;再测试;决定测试的有效性
软件测试风险分析
风险涉及选择及选择本身包含的不确定性,是介于确定性和不确定性之间的状态,是处于无知和完整知识之间的状态。主要包括项目风险,技术风险和商业风险三种。
风险的应对:风险的避免;风险的监控;风险管理及意外事件计划
所谓漏测就是指软件产品的缺陷没有被测试组发现而遗漏到了用户那里,却最终被用户发现
软件测试成本管理
在软件开发过程中,缺陷越早被发现和解决所花的成本就越小。如果缺陷是在测试组中发现而不是被用户使用时发现的,那么所花的成本将小得多;如果是被开发组在开发过程中发现,那么所花费的代价将更小。因此,进行漏测分析,预防漏测,促使缺陷尽可能在开发过程的早期被发现,有利于降低产品成本,提高软件产品质量。
作者:
jin_002
时间:
2010-4-17 00:06
好贴,总结的很多啊,是理论也是技术,很多我学习的方向。谢啦。
作者:
msnshow
时间:
2010-4-17 14:39
看上去都头晕,太多
作者:
peag
时间:
2010-4-17 20:09
这就是我要的效果,~哈哈
作者:
涙の雾雨
时间:
2010-4-26 11:01
呵呵
先复制。。。
回去看。。
呵呵。。。
作者:
chengning
时间:
2010-4-26 11:12
bu cuo
作者:
鬼瑶儿
时间:
2010-5-15 12:10
收藏,,慢慢看
作者:
wyrf584
时间:
2010-5-15 13:55
最恨就是看文档。。。哎
作者:
626953621
时间:
2010-5-15 15:17
看着久了真的有点晕。。。不过都是对我们大有裨益的
作者:
51testlsw
时间:
2010-5-15 19:48
整理的很细,楼主辛苦了
帮顶
作者:
散漫的风
时间:
2012-10-25 23:39
多谢了,复制回去慢慢看
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2