软件质量保证与测试 问答题

软件质量保证与测试 问答题


18道简答题目及答案


  1. 软件质量保证活动的实施步骤
    • 定义项目类型和生命周期
    • 建立SQA计划,确定项目审计内容
    • 生成SQA报告
    • 审计SQA报告
    • 独立汇报

  1. 简述软件质量保证的基本目标和任务
    • 基本目标:
      • 目标1:软件质量保证活动是有计划的
      • 目标2:软件产品和活动与适用的标准、规程和需求的符合性要得到客观验证
      • 目标3:相关的小组和个人要被告知软件质量保证的活动和结果
      • 目标4:高级管理者处理在软件项目内部不能解决的不符合问题。
    • 任务:提供成员与管理阶层客观洞察流程与相关工作产品。

  1. 什么是软件评审?为什么需要进行软件评审?
    • 软件评审
      • 关于审查和批准项目计划,项目变更和工作进展评价的一个步骤。
    • 为什么要软件评审
      • 在开发过程中,评审可以让我们获得以下收益:
        • 提高项目的生产率。这是由于早期发现了错误,因而减少了返工时间,还可能减少测试时间
        • 改善软件的质量。
        • 在评审过程中,使开发团队的其他成员更熟悉产品和开发过
          程。
        • 通过评审,标志着软件开发的一个阶段的完成。
        • 生产出更容易维护的软件。主要原因是:对于被评审的软件,评审者必须是非常熟悉的;同时,在评审过程中,一定会产生并利用很多证明文档,于是评审就迫使开发者产生出许多有用的文档,而这些文档如果不是因为评审,则在整个项目期间可能都不会生产。此外,评审过程也将增加对所开发软件的理解。

  1. 软件评审包括哪些内容
    • 管理评审
    • 技术评审
    • 文档评审
    • 过程评审

  1. 软件评审主要有哪些方法(需简要说明)?它们的异同点是什么?
    • 方法(从上到下,越来越正式)
      • 特别检查
      • 轮查
      • 走查
      • 团队评审
      • 检视
    • 异同点
      软件质量保证与测试 问答题_第1张图片

  1. 简述CMM的作用和关键域等级
    作用:是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。
    关键域等级:
    • 初始级   过程没有定义,控制很差,反应式
    • 可重复级  过程由具体项目而定,组织是反应式
    • 已定义级  项目通过组织发展方法,调整过程
    • 已管理级  过程呗检测和监控
    • 优化级   聚焦过程改进

  1. 测试计划的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?
    • 目的
    • 内容
      • 目标。必须定义每个测试阶段的目标。
      • 结束准则。必须制定准则以规定每个测试阶段何时可以结束,该问题将在下一节中讨论。
      • 进度。每个阶段都须有时间表。应指出何时设计、编写和执行测试用例,某些软件技术,如极限编程要求在程序编码开始之前就设计测试用例和单元测试。
      • 责任。对于每一个阶段,应当确定谁来设计、编写和验证测试用例,谁来修改发现的软件错误。由于在大型项目中讨论特定的测试结果是否代表错误时,有可能出现争端,因此还需要确定一名仲裁者。
      • 测试用例库及标准。在大型项目中,用于确定、编写以及存储测试用例的系统方法是必须的。
      • 工具。必须确定需要使用的测试工具,包括计划由谁来开发或采购、如何使用工具以及何时需要使用工具
      • 计算机时间。计划每个测试阶段所需的计算机时间,包括用来编译应用程序的服务器(如果需要的话)、用来进行安装测试所需的桌面计算机、用来运行基于web应用程序的web服务器、联网的设备(如果需要的话)等等。
      • 硬件配置。如果需要特别的硬件配置或设备,则需要一份计划来描述该需求,该如何满足需求以及何时需要满足。
      • 集成。测试计划的一部分是定义程序如何组装在一起的方法(例如自顶向下的增量测试)。一个系统如果包含大的子系统或程序,可按增量的方式组装在一起,例如可以使用自顶向下或自底向上的方法,但是这些构造块是程序或子系统,而不是模块。如果是这种情况,就需要一个系统集成计划。系统集成计划规定了系统集成的顺序、系统每个版本的功能以及编写“脚手架”代码以模拟不存在的部件的职责分工。
      • 跟踪步骤。必须跟踪测试进行中的方方面面,包括对错误易发模块的定位,以及有关进度、资源和结束准则的进展估计。
      • 调试步骤。必须制定上报已发现错误、跟踪错误修改进程以及将修改部分加入系统中去的机制。调试计划中还应包括进度、责任分工、工具以及计算机时间/资源等。
      • 回归测试。回归测试在对程序作了功能改进或进行了修改之后进行,其目的是判断程序的改动是否引起了程序其他方面的退步。回归测试通常重新执行测试用例中的某个子集。回归测试很重要,因为对程序的改动和对错误的纠正要比原来的程序代码更容易出错(与报纸排版错误很相似,这些错误通常由于最后所做的编辑改动而引起的,而不是修改先前版本而引起的)。回归测试计划规定了测试人员、测试方法和测试时间,它也是必须的。
    • 最重要的

  1. 简要描述主要的软件可靠性参数
    软件质量保证与测试 问答题_第2张图片
    软件质量保证与测试 问答题_第3张图片
    软件质量保证与测试 问答题_第4张图片

  1. 简要描述提高软件可靠性的方法和技术(6条,每一点再略加说明)
    • 建立以可靠性为核心的质量标准。  确定划分的各开发过程的质量度量
    • 选择开发方法  目前的软件开发方法主要有Parnas方法、Yourdon方法、面向数据结构的Jackson方法和Warnier方法……
    • 软件重用  软件重用不仅仅是指软件本身,也可以是软件的开发思想方法、文档,甚至环境、数据等,包括三个方面内容的重用:开发过程重用、软件构件重用、知识重用。
    • 使用开发管理工具  开发一个大的软件系统,离不开开发管理工具,作为一个项目管理员,仅仅靠人来管理是不够的,需要有开发管理工具来辅助解决开发过程中遇到的各种各样的问题,以提高开发效率和产品质量
    • 加强测试  利用多种测试的规范及技术,加强测试的严密性。
    • 容错设计  容错技术的基本思想是使软件内潜在的差错对可靠性的影响缩小控制到最低程度。

  1. 简述影响软件质量的因素
    软件质量保证与测试 问答题_第5张图片

  1. 简述自动化测试的优点,并例举两种以上的自动化测试工具软件

    • 对程序的回归测试更方便。这可能是自动化测试最主要的任务,特别是在程序修改比较频繁时,效果是非常明显的。由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行,可以极大提高测试效率,缩短回归测试时间。
    • 可以运行更多更繁琐的测试。自动化的一个明显的好处是可以在较少的时间内运行更多的测试。
    • 可以执行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,从而达到测试的目的。(理解:性能测试中的工具,如:JEMETER,LR等)
    • 更好地利用资源 将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例。(把节省的人力投入到更有意义的用例设计上)将可自动测试的测试自动化后,可以让测试人员专注于手工测试部分,提高手工测试的效率。
    • 测试具有一致性和可重复性 由于测试是自动执行的,每次测试的结果和执行的内容的一致性是可以得到保障的,从而达到测试的可重复的效果。(脚本的复用性)
    • 测试的复用性。由于自动测试通常采用脚本技术,这样就有可能只需要做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。
    • 增加软件信任度 由于测试是自动执行的,所以不存在执行过程中的疏忽和错误,完全取决于测试的设计质量。一旦软件通过了强有力的自动测试后,软件的信任度自然会增加。
    • C++ test和Visual Unit

  1. 软件过程度量的目标、对象、方法和结果
    • 软件过程度量的目标是为了对软件过程的行为进行目标管理,并在度量的基础上对软件过程进行控制,评价和改善软件过程度量最终为项目管理和软件过程管理服务。
    • 对象主要包括三个:工作产品、软件项目和过程。
    • 软件过程度量的方法对软件过程度量的方法是过程性方法,软件过程行为是事件行为,对过程的度量也具有过程性,从制定度量目标到收集数据再到数据分析表示了典型的度量阶段。
    • 软件度量的结果通常是软件产品的复杂度模型和可靠性模型等。

  1. 简要描述软件配置管理过程
    1. 项目计划阶段
      2. CCB根据项目的开发计划确定各个里程碑和开发策略;
      3. CMO根据CCB的规划,制定详细的配置管理计划,交CCB审核;
      4. CCB通过配置管理计划后交项目经理批准,发布实施。
    2. 项目开发维护阶段
      6. 主要由CMO完成的管理和维护工作;
      7. 由SIO和DEV具体执行软件配置管理策略;
      8. 变更流程。

  1. 简述软件质量控制的基本概念并例举三种软件质量控制的基本方法
    • 基本概念 软件质量控制是一组由开发组织使用的程序和方法,使用它可在规定的资金投入和时间限制的条件下,提供满足客户质量要求的软件产品并持续不断地改善开发过程和开发组织本身,以提高将来生产高质量软件产品的能力。
    • 基本方法
      • 目标问题度量法
      • 风险管理法
      • PDCA质量控制法

  1. 简述软件质量控制的实施过程
    软件质量保证与测试 问答题_第6张图片

  1. 简要描述软件质量保证体系的目标
    软件质量保证的目标是以独立审查的方式,从第三方的角度监控软件开发任务的执行,就软件项目是否正确遵循已制定的计划、标准和规程给开发人员和管理层提供反映产品和过程质量的信息和数据,提高项目透明度,同时辅助软件工程取得高质量的软件产品。

  1. 软件测试要经过哪些阶段?这些测试阶段与软件开发各阶段之间由什么关系?
    单元测试(unit testing):对每个模块的考察、测试;
    集成测试(integration testing):组装测试,联调,考察模块间的接口和联系;
    系统测试(system testing):把计算机和其他部件联结起来,考察软件是否满足系统总的功能要求和性能要求;
    验收测试(acceptance testing):用户为主的测试。

  1. 简述软件配置管理的关键活动
    一个组织如何标识和管理程序(及其文档)的很多现存
    版本,以使得变化可以高效地进行?
    一个组织如何在软件被发布给客户之前和之后控制变化?
    谁负责批准变化,并给变化确定优先级?
    我们如何保证变化已经被恰当地进行?
    采用什么机制去告知其他人员已经实行的变化?


你可能感兴趣的:(我的学习之路)