1)什么是软件测试?
软件测试是通过手工或自动化的手段运行或测定被测对象是否满足所对应的需求;被测对象包括需求分析、设计规格说明书,系统编码等;在测试过程中,要根据相应的规格说明书设计一组测试用例,通过对测试用例的执行来发现系统中相应的错误保证软件质量的一项活动。
2)软件生命周期是什么?
①.项目规划
②.需求定义分析
③.软件设计
④.程序编码
⑤.软件测试
⑥.运行维护
3)软件测试目的是什么?
①.发现系统的错误
②.验证系统是否满足需求
③.保障产品质量
④.改进开发进程
4)软件缺陷(bug)与软件错误(error)的区别和联系?
区别:软件缺陷是存在于软件之中的不希望或者不可接受的偏差,而软件错误是由于人为的原因产生的错误。缺陷是在软件中抽象存在的,而错误是人的行为问题。
联系:由于人的错误行为,在设计或者编码过程中的失误,导致了软件内部的缺陷。人为错误是引发软件缺陷的直接原因。一个软件错误必定引发一个或多个软件缺陷。
5)软件测试如何改进软件开发过程?
软件测试和软件开发是不同的两个过程,但是通过软件测试发现软件的缺陷,然后通过缺陷的分析确定错误产生的原因从而发现软件开发过程中存在的缺陷。同时通过对测试结果的分析整理,还可以修正软件开发规则。因此,软件测试在一定程度上可以改进软件开发流程。
6)分析“软件测试没有什么技术含量,不就是点击按钮,对系统进行操作吗?”。
分析:在上述问题中只所以出现这样的言论,是对软件测试理解的片面性和对软件测试理解的偏激造成的。对于一个规范的软件测试过程包括了软件测试的计划、系统分析、测试设计、开发等技术。软件测试是一个发现软件缺陷的过程,要想发现软件缺陷必须对被测对象有足够的了解,而不是简单的对被测对象的执行,更不是只是点击“按钮”。这里边包括了如何设计测试场景、测试数据、测试执行等过程。同样的通过软件测试发现系统的问题,通过问题的改进可以提高软件产品的质量,赢得用户的口碑,从而提高产品的市场竞争力,提高公司的利益。因此软件测试是一项非常有意义的关系公司存亡的活动。
7)软件测试对象包括什么?
①.需求规格说明
②.概要设计规格说明
③.详细设计规格说明
④.源程序
⑤.系统
⑥.用户手册
⑦.帮助文档
8)主要的软件测试手段分别是什么,如何理解?
软件的测试手段包括验证和确认;验证是对前一个阶段的验证;确认是对原始开发需求的确认,任何一个阶段的确认都应追溯到需求。
9)软件测试的原则包括那些方面?
①.尽早的不断的测试
②.测试过程中要设计测试用例
③.程序员避免检查自己的程序
④.彻底测试是不可能的
⑤.测试应追溯到需求
⑥.从“小规模”到“大规模”
⑦.注意群集现象
⑧.严格执行测试计划
⑨.测试结果进行全面检查
⑩.测试维护
10)软件测试的局限性包含哪些?
11)为什么说软件测试不能保证软件质量
高质量的软件不是测试出来的,而是开发出来的;软件测试是保证软件质量的手段之一,不是唯一手段。要想提高软件质量必须提高开发质量。
12)常见的软件测试模型有哪些,分别具有什么样的特点?
测试中常见的模型有V、W、H、X等模型;
其特点如下:
①.V模型适用于产品,描述的是开发和测试的对应过程
②.W模型是V模型,强调的是针对需求,设计的测试
③.V、W模型不支持迭代
④.x模型增加了探索性测试
13)什么是V(或者W模型),它的特点是什么?
V模型是软件测试的一个基础应用模型,包括了软件开发和软件测试的两个阶段,并且两个阶段是串行的,V模型的左边是:需求分析、概要设计、详细设计、编码;右边包括:“单元测试”、“集成测试”、“系统测试”、“确认测试”和“验收测试”。
V模型的特点:
①.测试对象是程序本身
②.实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现
③.测试深度高
④.评审深度低
14)什么是敏捷开发和敏捷测试?他们的特点是什么?
敏捷开发:敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
软件测试过程概述
1)软件开发的生命周期是什么?
软件的开发生命周期包括:需求分析à系统设计à软件编码à运营维护
2)软件测试的生命周期(过程、流程)是什么?
软件测试生命周期包括:测试计划、测试设计、测试开发、测试评估、测试报告、缺陷跟踪。
3)软件测试流程中的里程碑分别是什么?
①.测试计划通过评审
②.测试设计完成
③.测试脚本开发完成
④.测试用例执行完成
⑤.测试报告通过评审
4)测试计划的主要内容包括那些?
①.测试的目的与范围
②.测试的策略和方法
③.人力物力资源的安排(角色及职责)
④.测试进度的安排(什么样的事情应该在那个时间点完成,由谁来做,产物等)
⑤.测试风险分析
⑥.停测标准
⑦.完成标准
5)测试计划应该完成那些目标?
①.合理的管理和组织测试资源
②.指导测试工作的正常进行
③.配合研发部门调整相关资源
6)测试设计阶段设计的是什么?
测试设计阶段的设计包括测试方案的设计和测试用例的设计,主要是做测试用例的设计。
7)什么是测试开发,测试开发过程中开发的是什么?
测试开发指的是在测试用例设计完成后,对测试用例中需要进行自动化测试的测试用例进行的脚本开发过程。
测试开发过程中开发的主要是测试脚本。
8)什么是测试执行?测试执行过程中应该具备那些基础技能?
测试执行指依据测试用例运行测试脚本(自动化测试)或者运行被测对象,发现被测系统中的缺陷的过程。
在测试执行过程中一个合格的测试人员需要具有以下这些技能:
①.被测对象的操作能力,保证可以正确的运行和操作你的被测对象;
②.敏锐的观察能力,可以快速有效的识别BUG;
③.BUG确认能力
④.系统背景知识和相关业务知识
9)软件测试的两种方法是什么?
软件测试的两种方法是:黑盒测试和白盒测试。
10)BUG确认的一般方法?
①.确认不是因为操作问题;
②.确认不是因为系统环境问题
③.确认不是配置问题
11)测试评估的主要内容是什么?
①.对软件需求评估
②.需求覆盖评估
③.基于代码的测试覆盖评估
④.软件性能评估
12)软件测试阶段分为那些?
①.需求审查
②.设计审查
③.程序审查
④.单元测试
⑤.集成测试
⑥.确认测试
⑦.系统测试
⑧.验收测试
13)如何确定单元测试中的“单元”?
①.采用面向过程开发的语言的系统单元可以是一个函数或者过程来组成;
②.采用面向对象技术开发的软件,单元可以是一个类或者一个类的示例等。
③.对于网页和用户窗口界面,单元可以是一个文字输入窗口或一个按钮
14)什么是回归测试?回归测试的策略是什么?
回归测试就是验证发现的缺陷是否真正的被开发人员修复,同时测试是否由于代码的修改而引入新的缺陷。
回归测试的策略包括:
①.完全回归测试
②.基于风险评估的回归测试
③.基于缺陷修改的回归测试