软件测试(定义):为了发现程序中的错误而分析或执行程序的过程。
静态测试(定义):分析软件产品的过程,不实际运行软件,包括走查,代码审查,代码评审,桌面检查。
动态测试(定义):在目标环境中实际运行软件的测试过程。
软件测试的基本功能:验证与确认。
验证:指保证软件正确地实现了特定功能的一系列活动。
确认:指保证最终的产品满足系统需求。
测试用例(定义):是为了特定目标开发的测试输入、执行条件和预期结果的集合。
测试人员的目标:分析或运行代码来暴露代码中潜在的错误。(尽可能早一些找出软件错误,并确保其得以修复。)
此目标包含的定义:
1】发现软件错误(基本目标)。
2】尽可能早地找出软件错误。
3】必需确保找出的软件得以关闭。
1.发现程序错误--直接目标
2. 检查系统是否满足需求--期望目标
3.改进开发过程--附带目标
测试人员应执行的工作:
● 规划测试任务
● 设计测试
● 建立一个合适的测试执行环境
● 评估、获取、安装和配置自动测试工具
● 执行测试
● 撰写适当的测试文档
测试工程师职业素质
● 责任心
●学习能力
● 怀疑精神
● 沟通能力
● 专注力
● 洞察力
● 团队精神
● 注重积累
黑盒测试(定义):把不关心软件内部实现的测试称为“黑盒测试”,也称为功能测试或数据驱动测试。[测试依据:软件需求]
白盒测试(定义):将依赖软件内部实现的测试通称为“白盒测试”。[测试依据:软件设计]
验收测试2类:Alpha测试与Beta测试。
采用白盒测试方式:接口测试、路径测试
采用黑盒测试方式:功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可够性测试、安装/反安装测试。
软件测试工作的基本步骤:测试计划、测试设计与开发、执行测试。
测试人员的能力要求:
1】 有一定软件开发经验。
2】 善于逆向思维
3】 善于表达
4】 善于同软件开发人员沟通
5】 善于与领导沟通
6】 善于学习
7】 快速了解业务知识
8】 追求完美,不懈努力
9】 坚强的毅力
10】 良好的文档写作能力
测试策略所需完成的主要步骤:
1】 确定测试范围
2】 确定测试方法
3】 定义测试标准
4】 选择测试工具
最简单的测试用例:用例编号、输入、期望结果与实际结果。
常用的测试用例设计方法:
1】 等价类划分法
2】 分界值分析法
3】 因果图
4】 错误推测法
5】 场景分析法
6】 基本路径分析法
需求说明书的检查要点:
正确性、必要性、优先级、明确性、可测性、完整性、一致性、可修改性
需求规格说明书的测试步骤:
需求规格说明书、尝试理解、检查列表、讨论、评审、修订
测试用例的作用 :
指导测试的实施 、评估测试结果的度量基准、分析缺陷的标准
好的测试用例:
1】 有相当的可能找出软件错误
2】 没有冗余
3】 本类用例中最佳的选择
4】 既不过于复杂,又不过于简单
测试计划制订过程:
1】 分析和测试软件需求
2】 定义测试策略
3】 定义测试环境
4】 定义测试管理
5】 编写和审核测试计划
风险管理的过程:
◆ 识别风险
◆ 评估风险
◆ 制订对策
◆ 跟踪风险
等价类划分法的优点:
1】 考虑了单个输入域的各类情况;
2】 避免了盲目或随机选择输入数据的不完整性和覆盖的不稳定性。
等价类划分法设计用例的步骤:
1】 分析输入数据形式
2】 划分输入数据
3】 设计输入数据
4】 设计测试用例
等价类划分法的缺点:
◆ 只考虑了输入域的分类情况,没有对组合情况进行充分的考虑;
边界值分析方法(定义):
边界值分析方法假设大多数的错误发生在各种输入条件的边界上,如果在边界附近的取值不会导致错误,那么其他取值导致出错的可能性也很小。
边界值分析方法的优点:
1】 简单易用,只需要考虑单个输入边界附近的值
2】 这种方法在很多时候能非常有效地揭露错误
边界值分析法设计用例的步骤:
1】 分析输入数据形式
2】 找出输入数据长度的边界值
3】 设计测试用例
基本路径分析法的优点:
基本路径分析法的重点在于覆盖流程,确保让程序体现所有可能的逻辑。
缺点:只覆盖一次流程,对于一些存在循环的流程没有考虑 。
因果图法:
因果图法是一种简化了的逻辑图,能直观表明程序输入条件(原因)和输出动作(结果)之间的相互关系。
因果图法设计测试用例的步骤:
1】 分析所有可能的输入和可能的输出
2】 找出输入与输出之间的对应关系
3】 画出因果图
4】 把因果图转换成判定表
5】 把判定表对应到每一个测试用例
优点:
◆ 因果图设计测试用例的好处是让测试人员通过画因果图,能更加清楚输入条件之间的逻辑关系,以及输入与输出之间的关系。
场景设计法 :
1】 主要是分析软件应用的场景,从用户的角度来设计测试用例,是一种面向用户的测试用例设计方法。
2】 一般包含基本流和备选流,从一个流程开始,通过描述经过的路径来确定的过程。经过遍历所有的基本流和备选流来完成整个场景
3】 需要测试人员充分发挥对用户实际业务场景的想象
场景设计法设计步骤:
1】 根据说明,描述出程序的基本流及各项备选流
2】 根据基本流和各项备选流生成不同的场景
3】 对每一个场景生成相应的测试用例
4】 复审生成的所有测试用例,对每一个测试用例确定测试数据值
错误推测设计方法:
错误推测设计方法是通过基于经验和直觉推测程序中所有可能发生的各种错误,从而有针对性地设计测试用例的方法。
错误推测法的基本想法:
列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。
测试执行过程:
1.建立测试环境2.执行测试用例3.记录测试结果4.报告测试结果5.管理软件错误。
测试执行过程的三个阶段:
(1)初测期——测试主要功能和关键的执行路径,排除主要障碍
(2)细测期——依据测试计划、测试用例,逐一测试功能、性能、用户界面、兼容性、可用性等等。
(3)回归测试期——系统已达到稳定,复查已知错误的纠正情况,确认未引发任何新的错误时,终结回归测试。
集成测试过程中的两个重要里程碑:
◆ 功能冻结(Function/Feature Freeze)——经过测试,符合设计要求,确认系统功能和其他特性均不再做任何改变
◆ 代码冻结(Code Freeze)——代码冻结只标志系统的当前版本的质量已达到预期的要求
好的缺陷报告应该具有以下特征:
● 书面的
● 已编号的
● 简单的、易于理解的
● 可重现的
● 具有合适的分类信息
软件缺陷等级:
按照缺陷的严重程度、影响程度的不同,软件缺陷可以被分为不同的等级,也可称为“缺陷严重程度”、“缺陷严重等级”。
所谓“严重性”指的是一个缺陷在系统中的影响,主要包括以下五种:
◆ 致命错误 :影响全局的死机、通信中断、重要业务不能完成
◆ 严重错误 :规定的功能没有实现或不完整或产生错误结果;使系统不稳定、或破坏数据等
◆ 一般错误 :不影响主要功能使用
◆ 轻微错误 :通常指界面拼写错误或用户使用不方便等小问题或需要完善的问题
◆ 改进建议 :改进建议一般指软件中值得改良的地方
缺陷处理优先级:
◆ 程序员在一般情况下,需要先修改缺陷等级高的
◆ 优先级与严重程度有一定关系,但也不完全相同
◆ “优先级”抓住了在严重程度中没有考虑的重要程度因素
◆ 严重性等级由测试人员决定,而优先级则由项目经理设置
缺陷处理优先级别一般分为:
◆ 立即解决:此缺陷阻止进一步测试,需要立即修复
◆ 高优先级:此缺陷在产品发布前必须修复
◆ 正常排队:如果时间允许,应该修复此缺陷
◆ 低优先级:此缺陷即使不修复,也可以发布
软件缺陷产生的原因主要包括:
◆ 需求分析不完善造成软件不满足用户要求
◆ 软件设计错误造成运行错误
◆ 程序员编写代码过程中引入错误
缺陷报告基本信息主要包括:
◆ 缺陷编号
◆ 软件名称和版本号
◆ 缺陷的严重程度
◆ 缺陷概要
◆ 报告人
◆ 发现缺陷的时间
◆ 承办人
◆ 缺陷的优先级
◆ 缺陷状态
◆ 注释
自动化测试有哪些优势:
1】 借助了计算机的计算能力,可以重复地、不知疲倦地运行。
2】 对于数据,能进行精确的、大批量的比较,而且不会出错。
手工测试的不可替代性:
1】 测试用例的设计:测试人员的经验和对错误的猜测能力是工具不可替代的。
2】 界面和用户体验测试:人类的审美观和心理体验是工具不可模拟的。
3】 正确性的检查:人们对是非的判断、逻辑推理能力是工具不具备的