软件测试技术问题总结

  • 格式:doc
  • 大小:82.50 KB
  • 文档页数:11

软件测试技术基础常见问题总结 1 软件测试基础 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) 什么是敏捷开发和敏捷测试?他们的特点是什么? 敏捷开发:敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 2 软件测试过程概述 1) 软件开发的生命周期是什么? 软件的开发生命周期包括:需求分析系统设计软件编码运营维护 2) 软件测试的生命周期(过程、流程)是什么? 软件测试生命周期包括:测试计划、测试设计、测试开发、测试评估、测试报告、缺陷跟踪。

3) 软件测试流程中的里程碑分别是什么? ①. 测试计划通过评审 ②. 测试设计完成 ③. 测试脚本开发完成 ④. 测试用例执行完成 ⑤. 测试报告通过评审 4) 测试计划的主要内容包括那些? ①. 测试的目的与范围 ②. 测试的策略和方法 ③. 人力物力资源的安排(角色及职责) ④. 测试进度的安排(什么样的事情应该在那个时间点完成,由谁来做,产物等) ⑤. 测试风险分析 ⑥. 停测标准 ⑦. 完成标准 5) 测试计划应该完成那些目标? ①. 合理的管理和组织测试资源 ②. 指导测试工作的正常进行 ③. 配合研发部门调整相关资源 6) 测试设计阶段设计的是什么? 测试设计阶段的设计包括测试方案的设计和测试用例的设计,主要是做测试用例的设计。 7) 什么是测试开发,测试开发过程中开发的是什么? 测试开发指的是在测试用例设计完成后,对测试用例中需要进行自动化测试的测试用例进行的脚本开发过程。 测试开发过程中开发的主要是测试脚本。 8) 什么是测试执行?测试执行过程中应该具备那些基础技能? 测试执行指依据测试用例运行测试脚本(自动化测试)或者运行被测对象,发现被测系统中的缺陷的过程。 在测试执行过程中一个合格的测试人员需要具有以下这些技能: ①. 被测对象的操作能力,保证可以正确的运行和操作你的被测对象; ②. 敏锐的观察能力,可以快速有效的识别BUG; ③. BUG确认能力 ④. 系统背景知识和相关业务知识

9) 软件测试的两种方法是什么? 软件测试的两种方法是:黑盒测试和白盒测试。 10) BUG确认的一般方法? ①. 确认不是因为操作问题; ②. 确认不是因为系统环境问题 ③. 确认不是配置问题 11) 测试评估的主要内容是什么? ①. 对软件需求评估 ②. 需求覆盖评估 ③. 基于代码的测试覆盖评估 ④. 软件性能评估

12) 软件测试阶段分为那些? ①. 需求审查 ②. 设计审查 ③. 程序审查 ④. 单元测试 ⑤. 集成测试 ⑥. 确认测试 ⑦. 系统测试 ⑧. 验收测试 13) 如何确定单元测试中的“单元”? ①. 采用面向过程开发的语言的系统单元可以是一个函数或者过程来组成; ②. 采用面向对象技术开发的软件,单元可以是一个类或者一个类的示例等。 ③. 对于网页和用户窗口界面,单元可以是一个文字输入窗口或一个按钮 14) 什么是回归测试?回归测试的策略是什么? 回归测试就是验证发现的缺陷是否真正的被开发人员修复,同时测试是否由于代码的修改而引入新的缺陷。 回归测试的策略包括: ①. 完全回归测试 ②. 基于风险评估的回归测试 ③. 基于缺陷修改的回归测试 3 单元测试与集成测试

1) 什么是白盒测试? 白盒测试是对软件的过程性细节多细致性的检查,是把测试对象看做是一个打开的盒子它允许测试人员利用程序内部的逻辑结构和相关信息设计或选择测试用例,对程序的所有逻辑进行测试,通过在不同点检查程序状态,确定程序的实际状态是否与预期状态相一致 注:白盒测试又称为结构测试和逻辑驱动测试 2) 白盒测试用例设计的方法有哪些? ①. 语句覆盖 ②. 判定覆盖 ③. 条件覆盖 ④. 判定/条件覆盖 ⑤. 条件组合覆盖 ⑥. 路径覆盖 3) 白盒测试的主要技术有哪些? ①. 静态分析 ②. 动态分析 ③. 逻辑覆盖 ④. 基本路径测试 4) 什么是静态测试,静态测试的主要方法? 静态测试是指在不运行被测对象情况下的测试;静态测试的方法主要有,以及编码规范和标准,对代码进行走查、审查和评审。 5) 什么是动态测试,动态测试的主要方法? 动态测试指在运行被测对象情况下的一种测试方式。动态测试的方法包括:黑盒测试和白盒测试。 6) 常见的白盒测试工具有哪些? 比如商业白盒测试工具IBM的PureCoverage、Purify、Quantify,开源工具: JUnit、CppUnit、HttpUnit、NUnit等。 7) 什么是集成测试,集成测试的关注点是什么? 集成测试是将通过单元测试的单元按照设计要求组合起来进行测试 集成测试关注的是模块与模块之间的接口问题 4 系统测试测试过程

1) 什么是系统测试,系统测试中常见的测试类型有哪些? 系统测试是将已经通过集成测试后的软件作为计算机系统的一部分与计算机硬件、某些支持的软件、数据、人员等元素结合起来在实际运行环境中对计算机系统进行严格有效,来发现软件潜在的缺陷,保障系统运行 系统测试的类型有:功能测试、性能测试、裸机测试、BVT测试、安装卸载测试、安全性测试、兼容性测试、易用性测试、容错测试、配置测试 2) 什么是功能测试,功能测试的测试要点是什么? 功能测试是指验证系统的功能是否满足用户需求的测试,功能测试的主要关注点是功能点和功能逻辑。功能点是指某一个功能的具体实现的点包括页面上的设置输入设置等。功能逻辑指需要完成的功能在系统执行过程中如何去实现,实现的是否正确符合需求。 3) 功能测试和性能测试有哪些不同? ①. 功能测试和性能测试关注的要点不一样, 功能测试主要关注系统在功能模块上的实现或者功能逻辑上的实现是否正确,是否存在问题。性能测试关注系统执行的效率、响应速度、能够承受的负载等。 ②. 在测试方法上不一样 功能测试一般应用手工测试,也可以根据具体的情况应用自动化测试,功能自动化测试的主要技术要点是实现目标对象的识别,仿真用户的真实的鼠标和键盘的操作。 性能测试一般应用自动化测试手段,主要是通过协议的仿真来模拟多用户情况下,测试被测系统的响应情况。