测试基础整理

白盒测试、黑盒测试、静态测试、动态测试、性能测试、测试自动化、安全性测试、配置测试、兼容性测试、测试工具


单元测试、集成测试、系统测试、验收测试的区别:

根据不同的测试阶段,测试可以分为单元测试、集成测试、系统测试和验收测试。
体现了测试由小到大、又内至外、循序渐进的测试过程和分而治之的思想。
单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。
集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。
系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。
验收测试与系统测试相似,主要区别是测试人员不同,验收测试由用户执行。
黑盒测试不考虑程序内部结构和逻辑结构,主要是用来测试系统的功能是否满足需求规格说明书。一般会有一个输入值,一个输入值,和期望值做比较。
白盒测试主要应用在单元测试阶段,主要是对代码级的测试,针对程序内部逻辑结构,测试手段有:语句覆盖、判定覆盖、条件覆盖、路径覆盖、条件组合覆盖
集成测试主要用来测试模块与模块之间的接口,同时还要测试一些主要业务功能。
系统测试是在经过以上各阶段测试确认之后,把系统完整地模拟客户环境来进行的测试。

测试覆盖率统计:BullseyeCoverage、Pure Coverage


测试用例的基本格式:

● 测试用例编号
◇ 规则:编号具有唯一性、易识别性,由数字和字符组合成的字符串
◇ 约定:
系统测试用例:产品编号-ST-系统测试项名-系统测试子项名-XXX
集成测试用例:产品编号-IT-集成测试项名-集成测试子项名-XXX
单元测试用例:产品编号-UT-单元测试项名-单元测试子项名-XXX
● 测试项目
◇ 规则:当前测试用例所属测试大类、被测需求、被测模块、被测单元等
◇ 约定:
系统测试用例测试项目:软件需求项 如:测试手机在没有SIM卡的情况下,可以拨打紧急电话
集成测试用例测试项目:集成后的模块名或接口名 如:测试模块A提供的文件接口
单元测试用例测试项目:被测试的函数名 如:测试函数int ReadFile(char *pszFileName)
● 测试标题
规则:测试用例的概括简单的描述用例的出发点、关注点,原则上不能重复。
● 重要级别
规则
高:保证系统基本功能、核心业务、重要特性、实际使用频率高的测试用例;
中:重要程度介于高和低之间的测试用例;
低:实际使用频率不高、对系统业务功能影响不大的模块或功能的测试用例。
● 预置条件
规则:执行当前测试用例需要的前提条件,是后续步骤的先决条件
● 输入
规则:用例执行过程中需要加工的外部信息,输入、文件、数据库等
● 操作步骤
规则:执行当前测试用例需要经过的操作步骤,保证操作步骤的完整性。
● 预期输出
规则:当前测试用例的预期输出结果,包括返回值的内容、界面的响应结果、输出结果的规则符合度等


静态测试与动态测试的区别:

静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。静态检查方法包括两种,一种是通过常规的人工代码检视来发现问题,另外一种是使用PC-Lint等工具软件进行代码静态检查。
动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。


CI:

集成工具:CruiseControl、Hudson、Apache Continuum

任务通常分为:即时集成、每日集成、发布集成等

集成引擎必须与其他插件或工具(如SVN、ANT等)配合才能完成具体的工作。

流程:

1 从代码管理器签出源文件 
2 修改代码 
3 编译代码 
4 遇到错误,转到2继续修改直到达到预期 
5 运行单元测试,期望所有的测试绿色(通过) 
6 单元测试出错,转入2
7 重构代码,按照规范增强可读性,转入2
8 完成后签入代码
9 CI服务器监控到变化,自动获取代码
10 CI服务器自动编译代码
11 CI服务器运行单元测试、规范检查、集成测试等各种测试
12 CI服务器进行反馈,使相关人员知道构建状态,然后进行修改或继续


自动化测试框架:

所谓自动化测试框架,即是应用于自动化测试所用的框架。按照框架的定义,自动化测试框架要么是提供可重用的基础自动化测试模块,如:selenium、watir等,它们主要提供最基础的自动化测试功能,比如打开一个程序,模拟鼠标和键盘来点击或操作被测试对象,最后验证被测对象的属性以判断程序的正确性;要么是可以提供自动化测试执行和管理功能的架构模块,如:robot,STAF等,它们本身不提供基础的自动化测试支持,只是用于组织、管理和执行那些独立的自动化测试用例,测试完成后统计测试结果,通常这类框架一般都会集成一个基础自动化测试模块,如:robot框架就可以集成selenium框架。

国内常用的框架:robot framework、QTP、Rational Functional Tester、Ant+Selenium+Testng+Jenkins、Mcafe等。

常用的编程语言:tcl、ruby、python等


白盒测试:

白盒测试:测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。

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

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

对于嵌入式软件的测试,我们还需要一方面进一步考虑测试工具对于嵌入式操作系统的支持能力,例如DOS、Vxworks、Neculeus、Linux和Windows CE等;另一方面还需要考虑测试工具对于硬件平台的支持能力,包括是否支持所有64/32/16位CPU 和 MCU,是否可以支持 PCI/VME/CPCI 总线。

可视化的设计对于测试来说是十分重要的。在选购白盒测试工具时,应当考虑该款测试工具的可视化是否良好。

白盒测试中运用最为广泛的是基本路径测试法:基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。第一步:画出控制流图;第二步:计算圈复杂度;第三步:导出测试用例;

好的测试用例是一个用例能测到很多情况和分支,对于一个用例测一个分支的情况只能说明用例设计得不够好。

白盒测试三步法
1) 根据代码的功能,人工设计测试用例进行基本功能测试;
2) 统计白盒覆盖率,为未覆盖的白盒单位设计测试用例,实现完整的白盒覆盖,比较理想的覆盖率是实现100%语句、条件、分支、路径覆盖;
3) 自动生成大量的测试用例,捕捉"程序员未处理某些特殊输入"形成的错误。


黑盒测试:

黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。

黑盒可以是函数、模块或软件本身。只要是不关注内部的都可以算作黑盒。

黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。

等价类划分是一种重要的,常用的黑盒测试用例设计方法。可有两种不同的情况:有效等价类和无效等价类。

边界值分析是通过选择等价类边界的测试用例。它是对等价类划分方法的补充。

错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。

因果图法是采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。

正交试验设计法,就是使用已经造好了的正交表格来安排试验并进行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率。

黑盒测试的工具:WinRunner等。


参考:

http://zhidao.baidu.com/

http://baike.baidu.com/

当谈到软件测试基础知识时,以下是一些重要的内容: 1. 测试概念和目标:了解软件测试的定义、目标和重要性。测试的目标包括发现缺陷、验证功能、评估质量以及提供可靠的软件。 2. 测试过程:熟悉测试过程中的不同阶段,如测试计划、测试设计、测试执行和测试评估。 3. 测试类型:掌握各种测试类型,如单元测试、集成测试、系统测试、验收测试和回归测试等。每种类型都有其特定的目标和策略。 4. 测试设计技术:了解常用的测试设计技术,如等价类划分、边界值分析、决策表和状态转换等。这些技术可帮助生成有效的测试用例。 5. 缺陷管理:了解如何识别、报告和跟踪缺陷。这包括使用缺陷跟踪工具和编写良好的缺陷报告。 6. 自动化测试:理解自动化测试的概念和优势。熟悉自动化测试工具和框架,如Selenium和JUnit等。 7. 质量保证:了解质量保证的概念和实践。这包括持续集成、代码检查、静态分析和持续测试等。 8. 常见测试文档:熟悉一些常见的测试文档,如测试计划、测试用例、测试报告和缺陷报告等。 9. 软件开发生命周期:了解软件开发生命周期中测试的角色和活动。这包括瀑布模型、迭代模型和敏捷开发等。 10. 与开发团队的协作:了解测试团队与开发团队的合作方式。这包括及早参与、交流沟通和共同解决问题等。 这些是软件测试基础知识的一些重要方面,掌握它们将有助于您理解软件测试的核心概念和实践。当然,这只是一个简要的概述,还有很多其他内容可以进一步学习和了解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值