1. 软件测试定义:由人工或自动方法来执行或评价系统或系统部分的过程,以验证它是否满足规定的需求,或识别出期望的结果和实际结果之间的差异。
2. 软件测试的分类:
测试对象或范围分类:需求评审、设计评审、单元测试、程序测试、系统 测试、文档测试、Web 应用测试、客户端测试、数据库测试等;
测试目的分类:集成测试、功能测试、压力测试、性能测试等等;
静态测试、动态测试;
白盒测试、黑盒测试。
3. 软件测试的基本流程与原则
基本流程:
测试用例设计-输入数据、预期结果;
测试执行-输入数据执行被测对象;
检查实际输出与预期结果。
基本原则:
开始测试时认定软件有错,测试要证明有错;
测试应该由独立的测试团队来完成;
测试设计必须设计对应的预期输出;
要对合理、不合理(有效、无效)输入数据都进行测试;
检查软件的完备性、多余;
完整保留测试文档;
一个被测对象中有错误的概率与已发现错误的个数成正比。
4.Beizer 测试成熟度级别:
0级:没有区分测试与调试;
1级:测试的目的是证明软件能用;
2级:测试的目的是证明软件不能用;
3级:测试的目的不是为了证明什么,而是为了降低软件使用风险;
4级:测试是一种智能训练,能够帮助专业人员开发出更高质量的软件。
5. 软件测试与软件工程,软件过程的关系:
软件工程:在给定的条件下(成本、时间)开发出高质量的软件产品。 软件生产过程的特性决定了软件产品中不可避免包含有错误。
软件测试则是尽可能多地发现错误,从而保障软件产品的质量。
6.McCall 的质量因素:
产品修改:
可维护性,灵活性,可测试性
产品转移:
可移植性,可复用性,互操作性
产品运行:
正确性,易用性,可靠性,效率,完整性
7. 软件质量困境
软件质量必须足够好:存在价值
软件产品无法完美:需要消耗过多的资源、时间、成本
软件开发需要在两个极端之间进行平衡:软件足够好的同时又不完美。
8. 质量控制、质量保证和质量管理
软件质量控制其实是基本方法,通过一系列的技术来科学地测量过程的状态。如缺陷率、测试覆盖率等。
软件质量保证则是过程的参考、指南的集合,如ISO9000、CMM/CMMI等,着重内部的检查,确保已获取认可的标准和步骤都已经遵循。
软件质量管理则是实际操作的思想,质量管理控制和协调组织的质量活动,包括质量控制、质量保证和质量改进。
9.WebApp 应用的属性:
网络密集型应用;并发性;大负载量;性能;高可靠性、高可用性;安全性-内容敏感;
10. 软件评审的目的,评审度量及其应用
评审的目标在于:尽早发现软件过程中的错误,防止错误传递、蔓延至后续活动,防止错误转化为缺陷。
准备工作量Ep-实际评审会之前所需工作量;
评估工作量Ea-实际评审所花费的工作量
返工工作量Er-修改评审所发现错误的工作量
工作产品规模WPS-评审对象的规模
发现的主要错误数Errmajor-多于预期的改错工作量的错误数目
发现的次要错误数Errminor-少于预期的改错工作量的错误数目
总评审工作量Ereview = Ep+Ea+Er
错误总数Errtot = Errmajor+Errminor
错误密度:评审的每单位工作产品发现的错误数Ed = Errtot / WPS
错误密度数值的含义:较小(产品质量非常好或评审不够彻底);较大(产品质量存在缺陷)
11. 软件测试计划:描述对计算机软件配置项、子系统、系统进行测试的计划安排,内容包括测试的环境、测试工作的标识及测试工作的时间安排。
软件测试报告:是对计算机软件配置项、软件系统或子系统,或与软件相关项目执行合格性测试的记录
12. 软件测试活动
制订测试计划(测试分析员)
测试设计(测试设计人员)-方案设计
测试及测试用例设计
测试过程
桩模块、驱动模块设计
测试实施(测试设计员)-实现测试设计
单元测试(测试员)
集成测试(测试员)
系统测试(测试员)
评估测试(测试设计人员)
13. 无向图的相关定义:
连接性:节点ni 、nj 是连接的,当且仅当ni 、nj 在同一条路径上。
组件:图的组件是相连节点的最大集合
图G 的圈复杂度V (G) =e -n +2p ,其中e 为G 的边数,n 为节点数,p 为组件数。
14. 图覆盖:给定一个关于图G 的准则C 的测试需求集合TR ,测试集合T 在图G 上满足准则C 当且仅当对TR 中每个测试需求tr ,path(T)中至少存在一条测试路径p 满足tr 。
简单路径:如果从ni 到nj 的一条路径中,除了始节点和终节点可以相同外,没有任何节点出现次数多于一次,则该路径为简单路径。
主路径:如果从ni 到nj 是一条简单路径,并且它不作为任何其他简单路径的子路径出现,则称之为主路径。
主路径覆盖(PPC )准则:TR 包含图中每一条主路径。
指定路径覆盖(SPC) :TR 包含一个测试路径集S ,S 为指定参数。
15. 白盒测试方法
白盒测试:根据被测对象的内部结构和运行机制来设计测试用例的方法,又称为结构测试、逻辑驱动测试、覆盖测试
被测对象的独立路径至少覆盖一次;
所有逻辑取值测试[真、假];
循环边界测试;
检查内部数据结构、边界条件。
16. 黑盒测试方法
黑盒测试方法又称功能测试方法、数据驱动测试方法,测试设计时不考虑被测对象的内部结构,以检查系统功能(功能的正确、完整、逻辑流程、人机界面、文档内容、系统安装/初始化)
以被测对象的外部特征为测试依据。
17. 模糊测试方法
模糊测试方法:构造大量的随机数据作为系统的输入,从而检验系统在各种数据情况下是否出现问题。
18. 增量测试:单元测试、调用依赖的模块集成测试,逐步扩展直到形成整个软件系统。
19. 突击测试:所有模块一次性集成为一个完整的系统,然后进行完全测试。
20. 等价类划分:
等价类划分基于对输入或输出数据情况的评估,划分成两个或多个子集(等价类),然后从每个子集中选取一定的代表进行测试的测试用例设计方法。
21. 极限测试
极限编程:利用轻量、敏捷的开发过程,使开发人员能够更快地完成应用程序的开发。强调频繁测试、测试驱动的方式保证软件质量。
极限测试:为满足极限编程思想和过程而设计的一套测试策略和流程,原来的测试技术、方法均可以使用
22. 配置项测试的内容
功能:
适合性
准确性:功能的准确与精度要求
互操作性:与外部设备、系统的接口
安全保密性:数据访问的可控制性
可靠性:
成熟性:容错处理、平均无故障时间
容错性:边界条件、功能、性能的降级情况、误操作模式、故障模式
易恢复性:自动修复能力/时间、平均宕机时间、平均恢复时间、恢复能力等 易用性
易理解性:功能描述清晰、准确;界面含义精确
易学性:在线帮助、帮助定位、各类手册的易学、易用
易操作性:数据的有效检查、解释信息明确、界面切换
吸引性:人机界面定制
效率
时间特性:响应时间、平均响应时间、响应极限时间、吞吐量、平均吞吐量、极限吞吐量,多任务并行测试
资源利用:大量并发任务下I/O设备利用、极限负载下I/O设备的负载、大量并发任务下用户等待时间、内存使用情况、数据传输能力等
维护性
易分析性:运行状态数据易分析
易变更性:软件的可配置、修改能力
易测试性:变更之后的易测试情况
可移植性
适应性:不同软件、硬件环境的适应能力
易安装性:安装、配置的复杂程度、难以程度
共存性:与其他软件协同的能力
易替换性:版本的替换难以程度
依从性
以上所有特性遵循标准、规范的情况测试
23系统测试:系统非功能性测试,以检验系统在超常数据规模或负载下,线程、CPU 、内存资源的利用和响应时间、数据传输等性能指标是否满足要求
24. 测试计划
确定测试充分性要求:覆盖范围、覆盖程度
确定测试终止要求;
确定测试所需资源;
确定测试的软件特性;
确定测试技术、方法;
确定测试准出条件;
确定测试进度计划;
测试风险分析。
25. 测试设计:测试设计人员、测试程序员
测试用例设计:依据测试特性;
获取测试数据;
确定测试顺序:资源、被测特性;
获取测试资源:软硬件、工具;
编写测试程序;
建立测试环境;
撰写测试设计说明。
26. 测试总结:
测试分析员-测试报告
总结测试计划、测试说明的变化情况;
异常终止时测试未覆盖范围;
未能解决的测试问题;
总结测试结果(发现问题);
编写测试报告;
根据问题报告、测试记录,编写测试问题报告。
27. 软件可靠性:在给定的运行时间内和给定的系统配置环境下,运行给定的软件功能时所 表现出来的质量能力
28. 系统性能指标
系统资源利用率:分析性能指标,改善性能系统行为指标
请求响应时间:一次请求完成时间
事务响应时间:一个事务所有请求完成的总时间
数据吞吐量:单位时间内服务器接收、发送的数据量。
29. 验收测试:用户执行的、使用真实数据进行的测试,依据需求规格中的确认标准进行测试。回归测试:验证已测试过的内容不受变更影响,确认变更没有引入新的错误。
30. α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操 作环境下进行的测试。
Beta 测试由软件的最终用户在一个或多个客户场所进行,开发者通常不在Beta 测试的现场。
31.WebApp 测试关注的主要内容
Web 内容测试
界面
构件
导航测试
安全性
性能
32. 测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
33. 软件生存期定义:从软件产品设计到软件被淘汰的时间段。又称软件生命周期、生存周期。进一步划分为两个阶段:开发阶段和维护阶段(40%+60%)。
34. 软件安全定义:一种软件质量保证活动,他主要用来识别和评估可能对软件产生负面影响并促使整个系统失效的潜在灾难。
35. 软件评审的目标在于:尽早发现软件过程中的错误,防止错误传递、蔓延至
后续活动,防止错误转化为缺陷。
36.V 模型
优点:既有底层测试又有高层测试。底层:单元测试。高层:系统测试。
将开发阶段清楚的表现出来,便于控制开发的过程。当所有阶段都结束时,软件开发就结束了。
缺点:容易让人误解为测试是在开发完成之后的一个阶段。
由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug 可能不容易找到其根源。
实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试,返工量大。
37.W 模型:
优点:
将测试贯穿到整个软件生命周期中,且除了代码要测试,需求、设计等都要测试。
更早介入软件开发中,能尽早发现缺陷并修复。
测试与开发独立起来,并与开发并行。
缺点:
对有些项目,开发过程中根本没有文档产生,故W 模型无法使用。
对于需求和设计的测试技术要求很高,实践起来很困难。 从N0中某节点开始到Nf 中某节点结束的一条路径称为一条测试路径。
1. 软件缺陷:(符合下列规则的叫软件缺陷) :
1).软件未达到产品说明书的功能
2).软件出现了产品说明书指明不会出现的错误
3).软件功能超出产品说明书指明范围
4).软件未达到产品说明书虽未指出但应达到的目标
5).软件测试员认为难以理解、不易使用、运行速度缓慢、或者最终用户认为不好
2. 单元测试:单元测试是对软件设计的最小单元——模块进行正确性检验的测试工作,主要测试模块在语法、格式和逻辑上的错误。
3. 回归测试
指软件系统被修改或扩充(如系统功能增强或升级)后重新进行的测试,是为了保证对软件所做的修改没有引入新的错误而重复进行的测试。
4. 等价类:指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
1. 软件测试定义:由人工或自动方法来执行或评价系统或系统部分的过程,以验证它是否满足规定的需求,或识别出期望的结果和实际结果之间的差异。
2. 软件测试的分类:
测试对象或范围分类:需求评审、设计评审、单元测试、程序测试、系统 测试、文档测试、Web 应用测试、客户端测试、数据库测试等;
测试目的分类:集成测试、功能测试、压力测试、性能测试等等;
静态测试、动态测试;
白盒测试、黑盒测试。
3. 软件测试的基本流程与原则
基本流程:
测试用例设计-输入数据、预期结果;
测试执行-输入数据执行被测对象;
检查实际输出与预期结果。
基本原则:
开始测试时认定软件有错,测试要证明有错;
测试应该由独立的测试团队来完成;
测试设计必须设计对应的预期输出;
要对合理、不合理(有效、无效)输入数据都进行测试;
检查软件的完备性、多余;
完整保留测试文档;
一个被测对象中有错误的概率与已发现错误的个数成正比。
4.Beizer 测试成熟度级别:
0级:没有区分测试与调试;
1级:测试的目的是证明软件能用;
2级:测试的目的是证明软件不能用;
3级:测试的目的不是为了证明什么,而是为了降低软件使用风险;
4级:测试是一种智能训练,能够帮助专业人员开发出更高质量的软件。
5. 软件测试与软件工程,软件过程的关系:
软件工程:在给定的条件下(成本、时间)开发出高质量的软件产品。 软件生产过程的特性决定了软件产品中不可避免包含有错误。
软件测试则是尽可能多地发现错误,从而保障软件产品的质量。
6.McCall 的质量因素:
产品修改:
可维护性,灵活性,可测试性
产品转移:
可移植性,可复用性,互操作性
产品运行:
正确性,易用性,可靠性,效率,完整性
7. 软件质量困境
软件质量必须足够好:存在价值
软件产品无法完美:需要消耗过多的资源、时间、成本
软件开发需要在两个极端之间进行平衡:软件足够好的同时又不完美。
8. 质量控制、质量保证和质量管理
软件质量控制其实是基本方法,通过一系列的技术来科学地测量过程的状态。如缺陷率、测试覆盖率等。
软件质量保证则是过程的参考、指南的集合,如ISO9000、CMM/CMMI等,着重内部的检查,确保已获取认可的标准和步骤都已经遵循。
软件质量管理则是实际操作的思想,质量管理控制和协调组织的质量活动,包括质量控制、质量保证和质量改进。
9.WebApp 应用的属性:
网络密集型应用;并发性;大负载量;性能;高可靠性、高可用性;安全性-内容敏感;
10. 软件评审的目的,评审度量及其应用
评审的目标在于:尽早发现软件过程中的错误,防止错误传递、蔓延至后续活动,防止错误转化为缺陷。
准备工作量Ep-实际评审会之前所需工作量;
评估工作量Ea-实际评审所花费的工作量
返工工作量Er-修改评审所发现错误的工作量
工作产品规模WPS-评审对象的规模
发现的主要错误数Errmajor-多于预期的改错工作量的错误数目
发现的次要错误数Errminor-少于预期的改错工作量的错误数目
总评审工作量Ereview = Ep+Ea+Er
错误总数Errtot = Errmajor+Errminor
错误密度:评审的每单位工作产品发现的错误数Ed = Errtot / WPS
错误密度数值的含义:较小(产品质量非常好或评审不够彻底);较大(产品质量存在缺陷)
11. 软件测试计划:描述对计算机软件配置项、子系统、系统进行测试的计划安排,内容包括测试的环境、测试工作的标识及测试工作的时间安排。
软件测试报告:是对计算机软件配置项、软件系统或子系统,或与软件相关项目执行合格性测试的记录
12. 软件测试活动
制订测试计划(测试分析员)
测试设计(测试设计人员)-方案设计
测试及测试用例设计
测试过程
桩模块、驱动模块设计
测试实施(测试设计员)-实现测试设计
单元测试(测试员)
集成测试(测试员)
系统测试(测试员)
评估测试(测试设计人员)
13. 无向图的相关定义:
连接性:节点ni 、nj 是连接的,当且仅当ni 、nj 在同一条路径上。
组件:图的组件是相连节点的最大集合
图G 的圈复杂度V (G) =e -n +2p ,其中e 为G 的边数,n 为节点数,p 为组件数。
14. 图覆盖:给定一个关于图G 的准则C 的测试需求集合TR ,测试集合T 在图G 上满足准则C 当且仅当对TR 中每个测试需求tr ,path(T)中至少存在一条测试路径p 满足tr 。
简单路径:如果从ni 到nj 的一条路径中,除了始节点和终节点可以相同外,没有任何节点出现次数多于一次,则该路径为简单路径。
主路径:如果从ni 到nj 是一条简单路径,并且它不作为任何其他简单路径的子路径出现,则称之为主路径。
主路径覆盖(PPC )准则:TR 包含图中每一条主路径。
指定路径覆盖(SPC) :TR 包含一个测试路径集S ,S 为指定参数。
15. 白盒测试方法
白盒测试:根据被测对象的内部结构和运行机制来设计测试用例的方法,又称为结构测试、逻辑驱动测试、覆盖测试
被测对象的独立路径至少覆盖一次;
所有逻辑取值测试[真、假];
循环边界测试;
检查内部数据结构、边界条件。
16. 黑盒测试方法
黑盒测试方法又称功能测试方法、数据驱动测试方法,测试设计时不考虑被测对象的内部结构,以检查系统功能(功能的正确、完整、逻辑流程、人机界面、文档内容、系统安装/初始化)
以被测对象的外部特征为测试依据。
17. 模糊测试方法
模糊测试方法:构造大量的随机数据作为系统的输入,从而检验系统在各种数据情况下是否出现问题。
18. 增量测试:单元测试、调用依赖的模块集成测试,逐步扩展直到形成整个软件系统。
19. 突击测试:所有模块一次性集成为一个完整的系统,然后进行完全测试。
20. 等价类划分:
等价类划分基于对输入或输出数据情况的评估,划分成两个或多个子集(等价类),然后从每个子集中选取一定的代表进行测试的测试用例设计方法。
21. 极限测试
极限编程:利用轻量、敏捷的开发过程,使开发人员能够更快地完成应用程序的开发。强调频繁测试、测试驱动的方式保证软件质量。
极限测试:为满足极限编程思想和过程而设计的一套测试策略和流程,原来的测试技术、方法均可以使用
22. 配置项测试的内容
功能:
适合性
准确性:功能的准确与精度要求
互操作性:与外部设备、系统的接口
安全保密性:数据访问的可控制性
可靠性:
成熟性:容错处理、平均无故障时间
容错性:边界条件、功能、性能的降级情况、误操作模式、故障模式
易恢复性:自动修复能力/时间、平均宕机时间、平均恢复时间、恢复能力等 易用性
易理解性:功能描述清晰、准确;界面含义精确
易学性:在线帮助、帮助定位、各类手册的易学、易用
易操作性:数据的有效检查、解释信息明确、界面切换
吸引性:人机界面定制
效率
时间特性:响应时间、平均响应时间、响应极限时间、吞吐量、平均吞吐量、极限吞吐量,多任务并行测试
资源利用:大量并发任务下I/O设备利用、极限负载下I/O设备的负载、大量并发任务下用户等待时间、内存使用情况、数据传输能力等
维护性
易分析性:运行状态数据易分析
易变更性:软件的可配置、修改能力
易测试性:变更之后的易测试情况
可移植性
适应性:不同软件、硬件环境的适应能力
易安装性:安装、配置的复杂程度、难以程度
共存性:与其他软件协同的能力
易替换性:版本的替换难以程度
依从性
以上所有特性遵循标准、规范的情况测试
23系统测试:系统非功能性测试,以检验系统在超常数据规模或负载下,线程、CPU 、内存资源的利用和响应时间、数据传输等性能指标是否满足要求
24. 测试计划
确定测试充分性要求:覆盖范围、覆盖程度
确定测试终止要求;
确定测试所需资源;
确定测试的软件特性;
确定测试技术、方法;
确定测试准出条件;
确定测试进度计划;
测试风险分析。
25. 测试设计:测试设计人员、测试程序员
测试用例设计:依据测试特性;
获取测试数据;
确定测试顺序:资源、被测特性;
获取测试资源:软硬件、工具;
编写测试程序;
建立测试环境;
撰写测试设计说明。
26. 测试总结:
测试分析员-测试报告
总结测试计划、测试说明的变化情况;
异常终止时测试未覆盖范围;
未能解决的测试问题;
总结测试结果(发现问题);
编写测试报告;
根据问题报告、测试记录,编写测试问题报告。
27. 软件可靠性:在给定的运行时间内和给定的系统配置环境下,运行给定的软件功能时所 表现出来的质量能力
28. 系统性能指标
系统资源利用率:分析性能指标,改善性能系统行为指标
请求响应时间:一次请求完成时间
事务响应时间:一个事务所有请求完成的总时间
数据吞吐量:单位时间内服务器接收、发送的数据量。
29. 验收测试:用户执行的、使用真实数据进行的测试,依据需求规格中的确认标准进行测试。回归测试:验证已测试过的内容不受变更影响,确认变更没有引入新的错误。
30. α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操 作环境下进行的测试。
Beta 测试由软件的最终用户在一个或多个客户场所进行,开发者通常不在Beta 测试的现场。
31.WebApp 测试关注的主要内容
Web 内容测试
界面
构件
导航测试
安全性
性能
32. 测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
33. 软件生存期定义:从软件产品设计到软件被淘汰的时间段。又称软件生命周期、生存周期。进一步划分为两个阶段:开发阶段和维护阶段(40%+60%)。
34. 软件安全定义:一种软件质量保证活动,他主要用来识别和评估可能对软件产生负面影响并促使整个系统失效的潜在灾难。
35. 软件评审的目标在于:尽早发现软件过程中的错误,防止错误传递、蔓延至
后续活动,防止错误转化为缺陷。
36.V 模型
优点:既有底层测试又有高层测试。底层:单元测试。高层:系统测试。
将开发阶段清楚的表现出来,便于控制开发的过程。当所有阶段都结束时,软件开发就结束了。
缺点:容易让人误解为测试是在开发完成之后的一个阶段。
由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug 可能不容易找到其根源。
实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试,返工量大。
37.W 模型:
优点:
将测试贯穿到整个软件生命周期中,且除了代码要测试,需求、设计等都要测试。
更早介入软件开发中,能尽早发现缺陷并修复。
测试与开发独立起来,并与开发并行。
缺点:
对有些项目,开发过程中根本没有文档产生,故W 模型无法使用。
对于需求和设计的测试技术要求很高,实践起来很困难。 从N0中某节点开始到Nf 中某节点结束的一条路径称为一条测试路径。
1. 软件缺陷:(符合下列规则的叫软件缺陷) :
1).软件未达到产品说明书的功能
2).软件出现了产品说明书指明不会出现的错误
3).软件功能超出产品说明书指明范围
4).软件未达到产品说明书虽未指出但应达到的目标
5).软件测试员认为难以理解、不易使用、运行速度缓慢、或者最终用户认为不好
2. 单元测试:单元测试是对软件设计的最小单元——模块进行正确性检验的测试工作,主要测试模块在语法、格式和逻辑上的错误。
3. 回归测试
指软件系统被修改或扩充(如系统功能增强或升级)后重新进行的测试,是为了保证对软件所做的修改没有引入新的错误而重复进行的测试。
4. 等价类:指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。