关于软件测试的基础理论一二三,都已经重新整理更新到了基础知识总结,跳转门:http://www.cnblogs.com/zhujiliiu
1、什么是软件
定义:计算机系统中与硬件相互依存的一部分(程序+数据+相关文档)
程序:按事先设计的功能和性能要求执行的指令序列
数据:使程序能正常操纵信息的数据结构
文档:与程序开发、维护和使用有关的图文资料
2、软件的生命周期
可行性研究和计划、需求分析、概要设计、详细设计、实现(开发阶段)、
组装测试、确认测试、使用和维护
3、什么是软件测试
定义:软件质量保证的一种手段
目的:发现错误以及避免这些错误的发生
4、软件测试的方法
1)用试题检查法
2)用新旧两个系统做平行处理检查
3)软件测试自动化工具测试
5、软件测试有哪几个阶段(任务)
1)制定测试大纲(测试计划)
2)制作测试数据(测试方案)
3)单元测试(程序测试,一般由开发人员进行)
4)功能测试/性能测试(这两个阶段重合性较大,可以归为一类)
5)集成测试(子系统测试)
6)系统测试
7)验收测试
8)测试报告
9)向下阶段提交系统运行、维护用户手册
备注:可以分为产品→开发→测试→运维
6、软件测试工作流程图
立项阶段→需求阶段→设计阶段→编码&单元测试阶段→集成测试阶段→系统测试阶段→验收测试阶段→结项总结阶段
7、自动化测试的优点
提高工作效率,减少人的手工劳动,节省时间和成本
8、自动化测试的过程
需求分析→测试计划→框架搭建→测试—调试测试→评估
9、自动化测试的优点
1)能执行更多更频繁的测试, 使某些测试任务执行方式更高效
2)能执行一些手动测试困难或者不能做的测试
3)任务自动化,使测试人员投入更多精力设计测试用例,提高测试准确性和人员积极性
4)具有一致和可重复性特点,更客观,提高软件信任度,仍存在一定局限
5)不能取代手工测试,不能自动化所有的测试(如只是偶尔执行测试,或需求经常变动,不稳定,或者需要大量手工参与时)
6)自动化测试工具只能执行命令,而手工可以在测试中判断测试的输入是否正确,以及改进测试,还可处理意外事件
7)对质量依赖较大,在确保质量的前提下,实施自动化才有意义
8)自动化测试需要在整个测试系统成熟稳定后,工作效率才会随着测试执行次数的增加而提高
9)自动化测试的成本可能高于手工测试
10、自动化测试技术
录制/回放、脚本技术、数据驱动(data driven)、关键字驱动(keyworddriven)、业务驱动
11、自动化测试的级别
1)捕获和回放
2)捕获、编程和回放
3)编程和回放
4)数据驱动的测试
5)使用动作词的测试自动化
12、自动化测试方案选择需要考虑的方面
1)项目的影响(能否帮助项目进度、覆盖率、风险)
2)复杂度(是否容易实现,包括数据和其他环境等)
3)时间(实现自动化需要多少时间)
4)早期需求和代码的稳定性
5)维护工作量(代码能否能长期保持相对稳定)
6)覆盖率
7)资源(是否拥有足够的人力、硬件和数据资源来运行自动化测试)
8)执行(负责执行的人员是否有足够的技能和时间去运行)
13、自动化测试的重点
1)搭建测试环境,测试场景
2)测试用例
3)测试结果的验证
4)自动化测试的流程以及执行
14、自动化测试需要解决的问题
1、工具的选择
2、测试用例脚本编写
3、测试脚本的管理
基础理论(二)
关于基础理论一二三,都已经重新整理更新到了基础知识总结,跳转门:http://www.cnblogs.com/imyalost/p/6144862.html
一、白盒测试
1、什么是白盒测试
定义:按照程序内部结构,逻辑驱动测试程序
目的:检测产品内部动作是否按照设计说明书的规范进行,检验程序的每条路径是否都
能按照预定要求进行工作
对象:源程序
用代码内部的分支,路径,条件,使程序设计的控制结构导出测试用例
2、白盒测试方法分类:
1)静态测试
2)动态测试
3.白盒测试的原则
1)保证一个模块中所有路径至少被测试一次
2)所有逻辑值都要测试真和假两种情况
3)检查程序内部的数据结构是否有效
4)检查上下边界及可操作范围内运行所有循环
4、白盒测试的类别
1)软件共用问题的测试
2)语言测试
3)sql语句测试
4)数据类型测试
5)界面测试
6)数值队形测试
7)业务对象测试
8)数据管理对象测试
5、白盒测试依据
1)软件需求报告
2)软件需求规格说明
3)程序设计文档
4)软件界面设计
5)编码规范
6)开发命名标准
6、白盒测试流程
1)界面对象测试流程
界面对象(UI)→业务对象(BO)→数据管理对象(DMO)→DBserver端
2)业务对象测试流程
DBserver端→数据管理对象(DMO)→业务对象(BO)→界面对象(UI)
7、白盒测试需要考虑的问题
1)尽量先用自动化工具来进行静态结构分析
2)建议先从静态测试开始,比如:静态结构分析,代码走查和静态质量度量,然后进行动态测试,比如:覆盖率测试
3)利用静态分析结果为依据,再使用代码走查和动态测试方式对静态分析结果进行进一步确认,提高效率和准确性
4)覆盖率测试是白盒测试中的重要手段,在测试报告中可作为量化指标的依据,对于重点模块,应使用多种覆盖率标准衡量代码覆盖率
5)不同测试阶段,侧重点不同
二、黑盒测试
1、定义:
数据驱动测试或者基于规格说明的测试
只检查程序功能是否按照规格说明书规定正常使用,是否能接收数据及产生正确的输出信息,并且满足数据库或者外部信息的完整性
2、黑盒测试的目的
1)是否有不正确或者遗漏的功能
2)界面是否有误
3)接口上,输入输出是否正确
4)是否有数据结构错误或者外部数据库访问错误
5)性能是否满足要求
6)初始化或者终止性错误
3、黑盒测试的优点
1)最大程度满足用户需求
2)相同动作可重复执行,枯燥部分可由机器完成
3)根据测试用例针对性的寻找问题,定位更准确,容易生成测试数据
4)测试直接和程序/系统要完成的操作相关联
4、黑盒测试的缺点
1)代码得不到测试
2)如果规格设计错误,很难发现
3)测试不能充分进行
4)结果取决于测试用例的设计
5、黑盒设计方法
1)等价类划分法
2)边界值分析法
3)因果图法
4)判定表驱动法
5)场景法
6)功能图法
7)错误推断法
8)正交试验设计法
5、策略
1)首先进行等价类划分,包括输入和输出条件,减少工作量提高效率
2)边界值分析,发现错误的能力最强
3)错误推断法,补充用例,这个凭经验
4)对照需求和业务场景逻辑,检查用例
5)如果需求说明含有输入条件,设计开始就用到因果图和判定表驱动法
6)参数配置类的软件,要用正交实验法
7)功能图法,不同时期条件的有效性来设计数据
8)业务流清晰的系统,采用场景法
6、等价类
1)将所有的可能输入数据(有效和无效)划分为若干个等价类,选取代表性的数据当做 测试用例,保证完整性和代表性
有效等价类:合理的有效的输入集合
无效等价类:无效的没有意义的输入集合,检查程序异常
2)等价类划分方法
按照区间、数值、集合、限制条件、处理方式划分
7、边界值
对输入或输出的边界值进行设计
5/7原则
8、因果图
简化逻辑关系,操作步骤较复杂
9、判定表驱动法
针对不同存在条件、动作关系或者因果关系的设计用例方法
4大组成部分:条件桩:条件项;动作桩,动作项
10、场景法
事件触发的情景
11、功能图法
用功能图(流程图)形象的表达操作流
12、错误推断法
基于以往的经验和出现的错误,推测软件可能存在的缺陷和错误,针对性的设计用例
13、正交实验法
从大量数据中挑选适量的有代表性的,合理设计用例
14、黑盒测试的原则
1)根据需求和规格要求,明确产品要求的正确性
2)针对性的找问题,正确定位
3)根据需求重要性确定测试等级和重点,减少缺陷
4)接口处,输入是否能正确接收,输出是否正确
5)站在用户角度思考,测试
15、测试计划
根据需求中关于功能和性能的要求设计,制定参考范围
基础理论(三)
关于基础理论一二三,都已经重新整理更新到了基础知识总结,跳转门:http://www.cnblogs.com/imyalost/p/6144862.html
一、测试用例设计方法
1、什么是测试用例
2、为什么要写测试用例
3、测试用例主要包含哪些东西
4、编写测试用例需要什么
5、设计测试用例的注意事项
从高到低,独立性,与功能一一对应,根据需求设计,由有经验的人员设计
6、设计测试用例的原则
有模板,正确性,代表性,可判断性,重现性,详细准确清晰的步骤,符合规范
7、用例的管理工具
8、用例的管理过程
编写→评审(修改→再次评审)→使用→保存管理→维护/升级
9、测试用例内容
目标的描述、环境、输入输出数据/动作、步骤、预期结果、备注等
二、单元测试实用技术
一种验证行为,程序中每一项都需要验证
1、目的
1)检查单元模块内部错误
2)测试模块内重要的路径
3)检查信息能否正确流入和流出单元
4)内部数据的完整性、数据形式、相互关系的正确性
5)数据在边界处能否正常工作
6)能否满足特点的逻辑覆盖
7)错误处理机制是否有效
2、主要任务
程序语法、逻辑检查、模块接口、数据结构、路径、边界条件、错误处理、代码书写规范
3、单元测试的自动化工具
三、功能测试实用技术
同黑盒测试技术,这里给出几个技术参考链接,都是我之前整理的东西,可以参考
Web端功能测试(一):http://www.cnblogs.com/imyalost/p/5622867.html
Web端功能测试(二):http://www.cnblogs.com/imyalost/p/5623662.html
App端功能测试:http://www.cnblogs.com/imyalost/p/5641057.html
四、集成测试实用技术
1、也称为组装测试,联合测试,主要针对软件高层设计进行测试,一般以模块和子系统为单位进行测试
2、集成测试的层次
1)模块内集成,主要测试各个接口的交互
2)子系统内集成,子系统内各个模块的交互
3)系统集成,测试系统内各个子系统和模块的交互关系
3、集成测试的本质
接口之间的关系,接口测试(灰盒测试)
五、系统测试实用技术
1、什么是系统测试
2、系统测试的目的
3、系统测试的目标
功能是否达到规格说明书要求,是否存在其他缺陷,是否有完善到缺陷记录及跟踪等
4、系统测试的测试类型
功能测试、性能测试、负载测试、容量测试、安全性测试、用户界面测试、配置测试、安装测试、回归测试
5、测试环境
6、常用方法
黑盒测试和自动化测试
九、验收测试
1、什么是验收测试
2.验收测试的标准
十、回归测试
1、什么是回归测试
2、发生在什么时候
有变更时候
3、为什么做回归测试
验证新功能,保证旧功能不被影响
4、回归自动化
六、配置测试
1、什么是配置测试
测试验证被测软件在不同软件和硬件条件中运行的情况
2、为什么要做配置测试
容错性、发现隐藏的bug,对产品的影响,最佳的配置
3、注意事项
软件版本、变更、区分优先级