概要(包含但不限于)

  1. 软件测试的基本概念、目的、意义、方式方法等基础概念

1.1基本概念:

  1. [IEEE]软件测试是使用人工或自动手段来运行或测定某个系统的过程,检验它是否满足规定的需求或者弄清预期结果与实际结果之间的差别。
  2. 测试是程序的执行过程
  3. 软件测试是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。

1.2目的:

*最终目的是建立一个高可靠性的软件系统的一部分。

测试是程序的执行过程,目的在于发现错误;

测试是为了证明程序有错,而不是证明程序无错误。

一个好的测试用例在于能发现至今未发现的错误;

一个成功的测试是发现了至今未发现的错误的测试。

  1. 站在不同的立场,软件测试的目的也不同。

从用户角度出发,希望通过软件测试暴露软件隐藏的错误和缺陷,从而考虑是否可接受该产品。

从软件开发者角度出发,希望表明软件产品不存在错误,验证该软件能正确地实现用户需求,确立人们对软件质量的信心。

从软件管理者角度出发,希望花费有限的资源达到该软件用户的质量要求

  1. 总目标是充分利用有限的人力和物力资源,高效率、高质量地进行测试。

1.3意义:

测试是程序的执行过程,目的在于发现错误(猜的)

1.4方式方法:

1. 静态方法和动态方法

2. 黑盒测试、白盒测试和灰盒测试

3. 基于软件开发阶段的测试方法:需求测试、单元测试、集成测试、性能测试、压力测试、容量测试、配置测试、回归测试、安装测试、安全性测试

4. 自动化:白盒测试工具、功能测试工具、负载压力测试工具、测试管理工具

1.5软件测试有哪些:

按测试技术

软件测试可分为白盒测试和黑盒测试两种。

按测试方式

软件测试可分为静态测试与动态测试两种。

按测试阶段

软件测试可以分为单元测试、集成测试、确认测试、系统测试和验收测试。

按测试内容

按照测试内容可以分为功能测试、压力测试、性能测试、可靠性测试、安全性测试、兼容性测试、安装测试、灾难性恢复测试、回归测试等。

2.1定义

定义1(ISO):

反映实体(可单独描述和研究的事物,如活动、过程、产品、组织、体系或人,以及它们各项的任何组合)满足明确和隐含需要能力的特性组合。

定义2(IEEE):

a)     系统、部件或者过程满足规定需求的程度。

b)     系统、部件或者过程满足顾客或者用户需要或期望的程度。

c)      该定义相对客观,强调了产品(或服务)和客户/社会需求的一致性。

2.2从不同的层面或角度对质量就有着不同的理解。

从用户出发的质量观:质量是产品满足使用目的的程度。

以产品为中心的质量观:质量是软件的内在特征。

生产者的质量观:质量是产品性能符合规格要求的程度。

以价值为基准的质量观:质量依赖于顾客愿意付给产品报酬的数量

质量核心是:满足用户需求

2.3影响软件质量的因素:人、过程和技术

2.4软件质量因素

功能性:软件实现的功能达到要求的和隐含的用户需求以及设计规范的程度,

可靠性:软件在指定条件和特定时间段内维持性能的能力程度,

易使用性:用户使用该软件所付出的学习精力,

效率:在指定条件下,软件功能与所占用资源之间的比值,

可维护性:当发现错误、运行环境改变或客户需求改变时,程序能修改的容易程度,

可移植性:将软件从一种环境移入另一种环境的容易程度。

2.5补充:

         外部用户是实际使用者,内部用户是下一道工序的接收者

  1. 软件质量保证的相关内容与定义、能力成熟度模型

3.1相关内容:

  1. 软件质量保证目的是使软件过程对于管理人员来说是可见的。
  2. 通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
  3. (2.1.2)(1)SQA过程;

(2)具体的质量保证和质量控制任务(包括技术评审和多层次测试策略);

(3)有效的软件工程实践(方法和工具);

(4)对所有软件工作产品及其变更的控制;

(5)保证符合软件开发标准的规程(当适用时);

(6)测量和报告机制。

在恰当的时间以正确的方式做正确的事情

3.2定义:

  1. 软件质量保证(SQA)是一种应用于整个软件过程的保护性活动,包括:一种质量管理方法、有效的软件工程技术(方法和工具)、在整个软件过程中采用的正式技术复审、一种多层次的测试策略、对软件文档及其修改的控制、保证软件遵从软件开发标准的规程、度量和报告机制。
  1. [IEEE]软件质量保证(SQA)是:

一种有计划的,系统化的行动模式,它是为项目或者产品符合己有技术需求提供充分信任所必需的。也可以说软件质量保证是设计用来评价开发或者制造产品过程的一组活动,这组活动贯穿于软件生产的各个阶段即整个生存周期。

设计用来评价开发或者制造产品的过程的一组活动,与质量控制有区别。

  1. 软件质量保证是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。
  2. 软件质量保证(Software Quality Assurance,SQA)和一般的质量保证一样,是确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。

3.3目的:

目的是使软件过程对于管理人员来说是可见的。

3.4CMM(能力成熟度模型):

3.4.1定义

是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述

3.4.2CMM的核心

是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。

  1. 软件度量与可靠性的概念,软件重用的概念

4.1软件度量相关概念:

4.1.1.定义

测量使得管理者和开发者能够改善软件过程;辅助软件项目的计划、跟踪及控制;评估产生的产品(软件)的质量。

4.1.2软件过程度量概念:

软件过程度量是对软件过程进行度量的定义、方法、活动和结果的集合。

软件过程度量不是单一的活动而是一组活动的集合,它本身也是一个系统的过程。

4.1.3软件度量作用:

通过软件度量增加理解;

通过软件度量管理软件项目,主要是计划和估算、跟踪和确认;

通过软件度量指导软件过程改善,主要是理解、评估和包装。软件度量对于不同的实施对象,具有不同的效用。

4.1.4软件过程度量活动:

选择和定义度量、制定度量计划、收集数据、执行度量分析、评估过程性能、根据评估结果采取相应措施

4.5可靠性相关概念:

4.5.1定义:

在规定的条件下,在规定的时间内,软件不引起系统失效的概率。该概率是系统输入和系统使用的函数,也是软件中存在的错误的函数;系统输入将确定是否会遇到已存在的错误(如果错误存在的话);

         注:

软件可靠性是指在规定的条件下和规定的时间内,软件不引起系统故障的能力。

软件可靠性不但与软件中存在的缺陷有关,而且与系统输入和系统使用有关。

软件可靠性是软件质量特性中重要的固有特性和关键因素。

软件可靠性反映了用户的质量观点。

4.6软件重用概念:

软件重用不仅仅是指软件本身,也可以是软件的开发思想方法、文档,甚至环境、数据等,包括三个方面内容的重用:

开发过程重用,指开发规范、各种开发方法、工具和标准等。

软件构件重用,指文档、程序和数据等。

知识重用,如相关领域专业知识的重用。

  1. 黑盒与白盒测试的基本概念、方法

5.1黑盒测试

5.1.1定义:

  1. 黑盒测试又称为数据驱动测试、基于规格的测试、输入/输出测试或者功能测试。
  2. 黑盒测试基于产品功能规格说明书,从用户角度针对产品特定的功能和特性进行验证活动,确认每个功能是否得到完整实现,用户能否正常使用这些功能。

5.1.2方法:

等价类的划分、边界值分析、因果图(鱼骨图)、决策表

5.2白盒测试

5.2.1定义:

  1. 白盒测试把测试对象看做一个透明的白盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序内部的变量状态、逻辑结构、执行路径进行测试。
  2. 白盒测试又称为结构测试、逻辑驱动测试或基于代码测试。

5.1.2方法:

各种逻辑覆盖、过程测试

  1. 软件测试中各阶段测试的基本概念、使用测试方法的原则

6.1基本概念

软件测试可以分为单元测试、集成测试、确认测试、系统测试和验收测试。

单元测试:单元测试就是验证软件单元的实现是否和该单元的说明完全一致的相关联的测试活动组成的。

集成测试:集成测试是在单元测试的基础上,将多个模块组合在一起进行测试的过程,主要检查各个软件单元之间的相互接口是否正确。

确认测试:又称为合格性测试,用来检验软件是否符合用户的需求。

系统测试:系统测试是指将通过集成测试的软件系统,作为计算机系统的一个重要组成部分,与计算机硬件、外设、某些支撑软件的系统等其他系统元素组合在一起所进行的测试,目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或矛盾的地方。

验收测试:验收测试主要根据用户的需求而建立,是整个测试过程中的最后一个阶段。

6.2原则:

  1. 在整个开发过程中要尽早地和不断地进行软件测试。
  2. 在开始测试时,不应默认程序中不存在错误。
  3. 设计测试用例时,要给出测试的预期结果。
  4. 测试工作应避免由系统开发人员或开发机构本身来承担。
  5. 对合理的和不合理的输入数据都要进行测试。
  6. 重点测试错误群集的程序区段(缺陷集群性)。
  7. 除检查程序功能是否完备外,还要检查程序功能是否有多余。
  8. 用穷举测试是不可能的。
  9. 长期完整保留所有的测试用例和测试文件,直至该软件产品被废弃为止。
  10. 杀虫剂悖论
  11. 测试依赖于测试背景
  12. 没有失效就是有用系统是一种谬论
  1. 全面质量管理的概念,方法,相关技术。

7.1相关概念:

全面质量管理(Total Quality Management,TQM)是一个组织以质量为中心,以全员参与为基础,目的在于通过让顾客满意和本组织所有成员及社会受益而达到长期成功的一种质量管理模式。

核心思想(全员性、全过程性、全面性)

7.2方法:

         全面质量管理最重要的方法是PDCA循环,最早由美国质量管理专家戴明提出来的,所以又称为“戴明环”。P(Plan)计划;D(Do)执行;C(Check)检查;A(Action)处理,它反映了质量工作过程的4个阶段,通过4个阶段循环不断地改善质量。

七种工具是指在质量管理中广泛应用的统计分析表、分层法、散布图、因果图、控制图、直方图、帕累托图。大多使用数理统计方法,以从生产中收集到的数据为依据,适于过程的分析和控制。

7.3相关技术:

软件质量控制技术是为解决软件的实际问题而产生的。列出一系列由买主或客户及开发者在软件质量控制过程中经常遇到的一些问题及解决问题涉及的质量控制技术。

1.全面软件质量控制技术

2.在此基础上,介绍了6σ管理和零缺陷,并介绍了6σ设计流程和主要设计工具。6σ管理法是一种统计评估法,核心是追求零缺陷生产,防范产品责任风险,降低成本,提高生产率和市场占有率,提高顾客满意度和忠诚度。

  1. 软件缺陷的定义,类型,管理方法等

8.1定义:

软件缺陷是指从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背(IEEE729)。

8.2类型:

  1. 功能错误:以需求说明书为参照,未达到或未完成需求说明书所描述的功能即为功能错误。
  2. 编码错误:在系统运行中出现各类系统报错以及死机、不能工作、没有反应的现象即为编码错误。
  3. 数据错误:系统中各类查询数据、插入数据、更新数据时出现的数据库中表结构、视图、索引等不正确引起的错误。
  4. 可操作性错误:可操作性、应用方面的错误。
  5. 界面问题:窗口个控件布局、字体显示等不美观,界面、信息提示不友好、不准确等。
  6. 组件错误:测试创建组件产生的错误。
  7. 其它错误:各类文档、帮助的错误。

8.3管理方法:

  1. 处于CMM一级(或称为初始级)的软件组织,对软件缺陷的管理无章可循。工程师们只是在发现缺陷后,修改相应的软件。而且,只有在下一轮测试中才有可能知道那些所谓己被纠正了的缺陷是否真的被纠正了,更重要的是纠正过程是否引入了新的缺陷。所以这样的软件组织的项目交货期表现出强烈的不可预测性。并且,为了获得一个高质量的软件产品(如果能够的话),通常要在测试上花费大量的人力。
  1. 在 CMM 二级(或称为可重复级)的软件组织中,软件项目会从自身的需要出发,制定本项目的缺陷管理过程。

一个完备软件缺陷管理过程通常会包括如下几个方面:提交缺陷、分析和定位缺陷;提请修改相应的软件;修改相应的软件;验证修改。

项目组会完整地记录开发过程中的缺陷,监控缺陷的修改过程,并验证修改缺陷的结果。

  1. CMM 三级(或称为己定义级)的软件组织会汇集组织内部以前项目的经验教训,制定组织级的缺陷管理过程。并且,要求项目根据组织级的缺陷管理过程定制本项目的缺陷管理过程。

    1. 从而,整个软件组织中的项目都遵循类似的过程来管理缺陷。
    2. 好的缺陷管理实践成为所有项目的实践,而教训也为所有项目所了解。

更重要的是,随着组织的不断发展完善,组织的过程会得到持续性的改进,所有项目的过程也都会相应的改进。

  1. 定量管理级
  2. 持续优化级
  3. 报告软件缺陷

一个完整的软件缺陷信息除了包含软件缺陷类型、等级和优先级外还需要其它一些属性,如缺陷标识、缺陷产生可能性、缺陷来源等。

  1. 软件配置管理的概念

9.1定义:

软件配置管理是贯穿于整个软件过程中的保护性活动,它被设计来:

标识变化;

控制变化;

保证变化被适当地实现;

向其他可能有兴趣的人员报告变化。

软件配置管理是在贯穿整个软件生命周期中建立和维护项目产品的完整性。

9.2基本目标

软件配置管理的各项工作是有计划进行的。

被选择的项目产品得到识别,控制并且可以被相关人员获取。

已识别出的项目产品的更改得到控制。

使相关组别和个人及时了解软件基准的状态和内容。

  1. 评审的几种形式(静态测试技术)

10.1定义:

评审(Review)是指对产品或产品状态进行评估,以确定与计划的结果所存在的误差,并提供改进建议。

10.2软件评审的主要好处

尽早发现和修改软件缺陷、改善开发能力、缩短开发时间、缩减测试成本和时间、减少产品生命周期成本、减少软件缺陷以及改善和开发人员之间的沟通等。评审可以在工作产品中发现一些遗漏的、冗长的内容,这在动态测试中是很难发现的。

10.3评审的几种形式:

按照评审过程的正式程度、严格程度可以将评审分为非正式评审和正式评审。

非正式评审包括桌面审查、走廊聊天、伙伴测试或者结对编程等;

正式评审又可以分为管理评审、技术评审、审查、走查和审计等

  1. 等价类、边界值、决策表与因果图

11.1等价类

  1. 等价类划分法是一种黒盒测试的技术,不考虑程序的内部结构,是把所有可能的输入数据,即程序的输入域划分成尽可能少的若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
  2. 该方法是一种重要的,常用的黑盒测试用例设计方法。
  3. 每个子域构成输入域的一个划分,每个子域称为一个等价类

11.2边界值

11.3决策表

决策表又称为判定表,用于分析多种逻辑条件下执行不同操作的技术。

11.4因果图

因果图,也称作依赖关系模型,主要用于描述软件输入条件(即“原因”)与软件输出结果(即“结果”)之间的依赖关系。因果图可以直观地表示各种依赖关系。

  1. 各种逻辑覆盖,路径测试

12.1逻辑覆盖

语句覆盖:在测试时首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。这里所谓“若干个”,自然是越少越好。

判定覆盖:设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足

条件覆盖:设计若干测试用例,执行被测程序后,使每个判定中每个条件的可能取值至少满足一次。

判定-条件覆盖:要求设计足够的测试用例,使得判定中的每个条件的所有可能的结果至少出现一次,并且每个判定的所有可能的结果至少执行一次

条件组合覆盖(多重条件覆盖):设计足够多的测试用例,使得判定中每个条件的所有可能组合至少出现一次。要求这些结果的所有可能组合都至少出现一次。

路径覆盖:设计足够多的测试用例要求覆盖程序中所有可能的路径。

从底向上由弱到强:

12.2路径测试

12.2.1 DD路径(Decision to Decision Paths是决策到决策的路径。所谓决策,是指一个序列语句,其开始位置是一个判定(决策)语句的开始,结束位置是下一个判定(决策)语句的开始,并且序列语句没有分支。

12.2.2基路径测试

基路径是指将所有程序的路径作为一个集合。在这些路径当中必然存在一个最小路径的集合

详细步骤

步骤1:以详细设计或源代码作为基础,画出标准的流程图,然后导出程序的控制流图。

步骤2:计算控制流图G的圈复杂度V(G)。

步骤3:确定基(独立)路径的集合,即确定线性无关的路径的基本集。

步骤4:生成测试用例,确保基本路径集中每条路径的执行。

控制流图G的圈复杂度V( G)定义为:

方法1:V(G) =E -N+2,其中,E是控制流图G中边的数量,N是控制流图G中节点的数量。

方法2:将圈复杂度定义为控制流图G中的区域数。

方法3:V(G)=P+1,P是流图G中判定(谓词)节点的数量。

软件质量保证与测试期末复习整理相关推荐

  1. 山东大学软件质量保证与测试技术复习纲要

    考纲 目录:https://blog.csdn.net/dkbnull/article/details/87933295 软件质量保证与测试技术复习提纲 1.3  1.5   2.1 2.3 2.5 ...

  2. 软件质量保证划重点期末复习总结

    软件质量保证复习总结大纲及问题 Module1 <软件工程实践> 1.软件工程实践通过解决问题的根源来指导软件开发. 2.软件工程实践之间相辅相成. 3.过程指导一个团队在什么时候做什么以 ...

  3. 软件质量保证与测试文档怎么写,软件质量保证与测试整理版.pdf

    软件质量保证与测试整理版.pdf 还剩 16页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 把不可能变成可能才 ...

  4. 复习资料:软件质量保证与测试

    复习资料:软件质量保证与测试 第一章 绪论 解答题 第二章 软件测试策略 解答题 第三章 黑盒测试 解答题 第四章 白盒测试 解答题 第五章 软件测试过程 第六章 面向对象测试 解答题: 第七章 自动 ...

  5. 软件工程导论期末复习整理

    软件工程导论 第1章 软件工程学概述 复习小结 1.识记概念:软件,程序.数据,文档.软件危机.软件工程,软件过程, 软件生命周期 2.理解软件工程的本质特性6个和基本原理7条 3.掌握软件工程的三个 ...

  6. 软件质量保证与测试笔记——江湖救急版

    软件质量保证与测试笔记--江湖救急版 Powered by DZY 以下部分图片来源于老师课件,仅供学习交流使用,侵权致删! Ch1 软件质量与测试概念 软件质量的定义 软件质量是"反映实体 ...

  7. 软件质量保证与测试技术习题

    软件质量保证与测试技术习题 第一章 引论 第二章 软件质量与软件缺陷 第三章 软件测试基础 第4章 软件测试的方法 第五章单元测试.第六章集成测试作业 第七章系统测试作业 第八章验收测试作业 第一章 ...

  8. 软件项目管理知识点(期末复习)

    软件项目管理知识点(期末复习) 第一章:软件项目管理概述 1.项目的定义 项目,就是在既定的资源和要求下,为实现某种目标而相互联系的一次性工作任务. 此外,美国项目管理协会(Project manag ...

  9. 慕课软件质量保证与测试(第九章.程序中隐藏错误数量估计)

    慕课金陵科技学院.软件质量保证与测试.第九章.软件质量与质量保证.程序中隐藏错误数量估计 0 目录 9 软件质量与质量保证 9.2 程序中隐藏错误数量估计 9.2.1 课堂重点 9.2.2 测试与作业 ...

  10. 软件质量保证与测试实验(实验三.逻辑覆盖测试用例设计)

    软件质量保证与测试.实验三.逻辑覆盖测试用例设计 0 目录 1 逻辑覆盖测试用例设计 1.1 逻辑覆盖测试用例设计 1.1.1 实验目的 1.1.2 实验预习 1.1.3 实验内容及要求 1.1.4 ...

最新文章

  1. java并发集合有哪些_java中常见并发集合有哪些?详细解析
  2. Paired Joint Coordinates
  3. java emma_java-使用emmarun(找不到主要方法)
  4. C#打开文件对话框和文件夹对话框
  5. 高等数学上-赵立军-北京大学出版社-题解-练习2.4
  6. JavaScript基础三
  7. java并发LockSupport
  8. Node爬虫,爬取传播客新闻列表
  9. 窄脉冲matlab实现,[求助]如何获得与50Hz工频同步的窄脉冲信号
  10. matlab能不能求不定积分,matlab求不定积分定积分
  11. 前端安全: 如何防止 XSS 攻击?
  12. SAP 入门学习途径——官方工具使用
  13. 弹性地基梁板法计算原理_地基计算模型
  14. 微信网页分享无需公众号php,php版微信公众号自定义分享内容实现方法
  15. 使用unbound在RHEL7上搭建DNS服务
  16. 基于博客系统的访客日志记录
  17. linux 命令:cut 详解
  18. mysql 递归 性能_MySQL优化总结+自定义函数之递归
  19. Java面试题日积月累(JavaSE40道)
  20. MySQL mysql性能调优

热门文章

  1. java c 语言之父_Java之父评价C语言之父:我用尽了形容词
  2. sql server 数据库设计实例
  3. xp系统下如何安装windows phone 7的软件xap文件
  4. NDS –无法加载数据(解决方案)–如何更新R4内核
  5. 五笔字根表识别码图_怎么学五笔 五笔字根表键盘图 【详细介绍】
  6. win8修复计算机u盘,Win8系统U盘里的文件不见了怎么办?
  7. 概率论--Z=X+Y概率密度的推导
  8. matlab 函数怎么写,MATLAB怎样定义函数(入门) 有一函数 f(x,y)=x^2+sinxy+2y , 写一程序, 输入自变量的值,输出函数值....
  9. FeedingBottle——体积小巧的 Aircrack-ng GUI
  10. 为什么边缘概率密度是联合概率密度的积分_5.27005柏林联合VS美因茨