软件测试理论基础
软件测试基础
1、什么是软件测试(软件测试概念)?
对软件测试对象开展一系列测试技术活动,用于发现软件错误,并对软件质量进行评估。
确保软件版本发布质量。
2、软件测试的目的和意义?
软件测试意义:
1)确保产品完成了它所承诺或公布的功能。
2)确保产品满足性能和效率的要求。
3)确保产品是健壮的、可靠的、可适应用户环境的。
软件测试的意义:保证发布出去的产品达到了标准。
3、软件测试原则?
1) 所有的软件测试都应追溯到用户需求
2) 尽早地介入开发过程,尽早实施软件测试活动
3) 需要足够充分的测试,但完全测试是不可能的,测试需要终止
4) 测试不可能发现软件中所有隐含的缺陷
5) 测试中的木桶原理(全面质量管理,短板)
6) 尽量避免测试的随意性,需要有测试方案、测试用例来指导测试。
4、软件测试对象包括哪些?
软件包括程序、数据、文档,所以软件测试并不仅仅是程序测试,还需要测试数据和与软件相关的文档。
有些公司有专门的文档测试工程师,测试软件相关配套发布文档。
没有文档测试工程师的公司,软件测试人员需要承担文档方面的测试。
5、软件测试分类?
按阶段划分:单元测试、集成测试、系统测试、验收测试。
按是否运行程序划分:静态测试、动态测试。
按是否查看代码划分:白盒测试、黑盒测试、灰盒测试。
按组织划分:alpha测试、beta测试、第三方测试。
6、什么是回归测试?
对之前已经测试过或者经过修改的程序进行重新测试,以保证修改没有引入新的错误或者由于修改发现以前未发现的错误。
7、什么是冒烟测试?
冒烟测试是为了检测程序基本功能运行是否正常,来确定是否进入下一阶段的全面测试。通常软件开发人员冒烟测试确定是否发布版本给软件测试部,软件测试人员冒烟测试用于判断是否接受开发人员的测试版本进入全面的测试活动。
8、系统测试范围有哪些?
功能、性能、界面、强度、容量、安全性、配置、安装、卸载、数据库。
9、验收测试分为哪两种?测试对象、测试环境和测试人员分别是什么?
Alpha:在开发公司内,由开发和测试联合进行,环境是模拟环境。
Beta:在开发公司外,由经过专门挑选的真正用户群进行,环境是真实环境。
10、什么是黑盒测试?什么是灰盒测试?什么是白盒测试?
黑盒测试是把软件看成一个黑盒子,不管内部逻辑和内部特性,只依据规格说明书检查程序的功能是否符合功能说明
白盒测试又称为结构测试。着重于程序内部结构和算法,不关心功能和性能指标。
灰盒测试介于白盒和黑盒测试之间,基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。
11、软件开发生命周期模型有哪些?
大爆炸模型、编写边改模型、瀑布型、螺旋型。
12、软件测试过程模型有哪些?
V模型:用户需求-需求分析-概要设计-详细设计-编码实现-单元测试-集成测试-系统测试-验收测试;
W模型:需求分析(需求分析测试)-概要设计(概要设计测试)-详细设计(详细设计测试)-编码实现(单元测试)-模块集成(集成测试)-系统构建(系统测试)-系统安装(验收测试);
13、产品研发生命周期?
立项、需求分析、概要设计、详细设计、编码与实现、测试、验收、发布
14、软件测试流程?
软件测试计划、软件测试设计、系统测试、验收测试、测试评估、软件版本发布
产品研发生命周期对应软件测试阶段
产品生命周期 |
软件测试阶段 |
立项 |
软件测试计划 |
需求分析 |
|
概要设计 |
软件测试设计 |
详细设计 |
|
编码与实现 |
|
测试 |
搭建环境、系统测试 |
验收(开发方) |
验收测试(开发环境验收)、测试评估 |
验收(用户方) |
------- |
发布 |
发布 |
15、软件测试工程师的工作职责?
1) 根据软件需求制定测试计划。(整体计划由测试项目管理人员编写、如果项目就一人测试则由软件测试工程师编写)。
2) 参与各类测试评审过程:需求评审,设计评审、代码评审、测试计划评审、测试方案评审、测试用例评审、遗留缺陷评审、测试报告评审。
3) 依据需求文档和软件设计文档,编写测试方案和测试用例;
4) 根据测试计划,搭建测试环境;
5) 依据测试用例执行测试(手工/自动化/性能/兼容性等测试)。
6) 报告缺陷,并跟踪产品BUG修复。
7) 编写测试报告
16、软件测试阶段
软件测试计划阶段
软件测试设计阶段
软件测试执行阶段
软件测试评估阶段(确定是否能做软件版本发布)
17、有哪几种测试设计方法?
等价类、边界值、因果图、判断表、正交法、流程图法、场景法、错误推测法
18、对被测试的软件对象需要考虑的哪些方面的测试?
功能、UI、性能、可靠性、安全性、兼容性、易用性、安装、卸载
19、软件测试计划包括哪些内容?
软件测试范围
软件测试目标
资源需求(硬件、软件、人力资源)
时间进度安排
20、软件测试方案包括哪些?
测试对象分析
测试策略
采取测试技术
21、软件测试用例包括哪些内容?
用例编号、模块功能、用例名称、用例优先级、前置条件、操作步骤、预期输出结果
22、软件测试报告包括哪些内容?
- 测试对象:软件版本号
- 测试数据统计:人力统计、各模块缺陷严重程度统计、遗留缺陷各模块分布按严重程度统计。
- 软件测试风险评估:评估遗留软件缺陷
测试结论:质量总结,通过或不通过。
23、缺陷状态有哪几种?描述缺陷生命周期?
有:新建状态,确认状态、分配状态、修改状态、关闭状态。
1. 测试工程师填写《缺陷跟踪单》(新建状态),提交主管审核 (确认状态)。
2. 主管作出初步判断,将问题单转开发主管审核(确认状态)。
3. 开发主管确认问题单,转给开发人员定位问题(已分配状态)。
4. 开发人员定位错误后修复缺陷转给测试人员(已修改状态)。
5. 测试人员对该修复进行验证,确认是否正确修复,确认是否有引发 新问题,是否影响了原有正常的功能,修复完成关闭。(关闭状态)。
6. 回归验证还有问题,打开问题单。(分配状态)。
24、缺陷包括哪些内容?
缺陷编号、缺陷所属模块、责任人、缺陷提交时间、缺陷状态、缺陷标题、缺陷操作步骤、缺陷错误现象描述、正确预期输出描述、附件(图、日志)。
25、什么是易用性测试?
(1)易理解性;(2)易学习性;(3)易操作性;(4)吸引性;(5)依从性。
依从性,就是指软件产品遵循与功能性相关的标准、约定或法规以及类似规定的能力,这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等
26、什么是UI测试?UI测试哪些方面?
UI测试指的是用户界面测试。UI设计则是指对软件的人机交互、操作逻辑、界面美观的整体设计。
测试:页面布局、页面元素、页面控件。
27、哪些是软件缺陷?
- 软件未实现需求和规格要求的功能
- 软件出现了需求和规格指明不该出现的错误
- 软件实现了需求和规格未提及的功能
- 软件未实现需求和规格未明确提及但应该实现的内容
- 软件难以理解,不易使用,运行缓慢,或者最终用户(估计会)认为不好。
- 测试用例执行中发现的与预期结果不符的现象
28、缺陷等级和优先级?
缺陷等级:致命、严重、一般、提示
优先级:高、中、低
29、软件测试结束标准?
1、所有测试用例都充分执行
2、未执行用例和不能通过执行测试用例对应的缺陷有组织遗留缺陷评估,评估结果为“允许发布”。
3、所有测试模块稳定运行,满足软件需求规格说明书中规定的功能、性能、稳定性、安全性等标准。
4、组织软件测试结果评估:未修改缺陷风险评估结论为“接受,可以带问题发布”。评估结论,测试可以结束。
28、软件测试通过准则?
1、所有测试用例都充分执行
2、未执行用例和不能通过执行测试用例对应的缺陷有组织遗留缺陷评估,评估结果为“允许发布”。
3、所有测试模块稳定运行,满足软件需求规格说明书中规定的功能、性能、稳定性、安全性等标准。
4、组织遗留缺陷评估:所有未修改缺陷风险评估结论为“接受,可以带问题发布”。
5、软件测试报告被批准。
29、测试的类型?
功能测试、性能测试、安全性测试、兼容性测试、可靠性测试、易用性测试、暗转卸载测试、UI测试。
30、性能测试包括哪些?
负载测试(压力测试、容量测试)、并发测试、稳定性测试、恢复性测试、配置测试。
29、软件测试结束标准?
1、所有测试用例都充分执行
2、未执行用例和不能通过执行测试用例对应的缺陷有组织遗留缺陷评估,评估结果为“允许发布”。
3、所有测试模块稳定运行,满足软件需求规格说明书中规定的功能、性能、稳定性、安全性等标准。
4、组织软件测试结果评估:未修改缺陷风险评估结论为“接受,可以带问题发布”。评估结论,测试可以结束。
28、软件测试通过准则?
1、所有测试用例都充分执行
2、未执行用例和不能通过执行测试用例对应的缺陷有组织遗留缺陷评估,评估结果为“允许发布”。
3、所有测试模块稳定运行,满足软件需求规格说明书中规定的功能、性能、稳定性、安全性等标准。
4、组织遗留缺陷评估:所有未修改缺陷风险评估结论为“接受,可以带问题发布”。
5、软件测试报告被批准。
29、软件测试目标设定
可以从测试活动过程(人力和管理目标生产出高质量产品)、测试成果目标方面进行描述
1、发布产品满足《软件需求规格说明说》描述的所有功能、性能、UI、兼容性等标准要求。
2、对测试对象运用先进的测试技术进行测试执行设计,确保软件测试活动尽可能多的发现软件隐藏缺陷,确保发布产品运行稳定、可靠。
3、测试项目组成员上岗培训使之具备有专业执行技能和协作技能,确保软件测试活动的每个环节(设计、执行、报告)执行充分到位。
4、发布产品做好风险评估和风险管理工作,最大限度去保证发布产品质量。
30、软件测试质量目标:
指发布出去的产品达到哪个标准?(这个需要量化可衡量和执行的指标):
1、发布产品满足《软件需求规格说明说》描述的所有功能、性能、UI、兼容性等标准要求。
2、发布软件满足稳定性、可靠性、安全性和易用性要求。
3、发布软件测试用例充分执行,不通过和不能执行的测试用例所对应的问题都需经过风险评估无遗留风险。
4、发布软件最后三周内,发现bug趋势逐步收敛至0。
5、遗留问题不允许存在严重或以上级别bug,遗留问题需要严格执行风险评估与风险控制管理确保发布产品质量。
31、测试策略模板:
基于第一章节的分析,设计测试策略,可以描述从哪些方面进行测试:
本测试对象主要从业务功能和用户场景两部分来进行测试用例的设计;
1、业务功能分为正常业务与异常业务两个方向进行测试;
1)、正常业务包括:功能实现与功能流程测试;
2)、异常业务包括:异常业务时的容错能力与提示指引;非同于正常使用的其他一切异常操作入口测试
2、表单部分:设计表单布局、表单标题、表单页面元素、下拉框、按钮、提示信息用例;
3、用户场景部分:考虑用户使用此对象的各个场景,列出场景;
1)、会有1000个用户在线使用系统,可能最多存在100个用户同时使用某功能,需要测试此模块的业务功能在最大压力下的承受能力和大量用户同时使用的响应时间,以及业务持续能力。
2)、用户会在晚上转点时间使用此功能;
3)、用户可能会在使用一些功能过程中退出处理过程。
4)、使用该系统时在操作某些功能时可能会停电。
5)、在不同的操作系统或者不同的浏览器中打开该系统。
32、测试对分析模板:象
6)理解测试对象业务功能与流程并分析对象,从而得出下一章节的部分测试策略,既需要考虑哪些方面的测试对象。
7)完成业务功能或流程XXX
8)用户使用场景XXX
9)本功能是提供表单给用户,采集用户信息后再完成XXX功能。
1、
33、测试工具
本模块采用手工测试的方法或者,采用自动化测试方法:loadruner测试XX部分性能