软件质量保证测试

1.软件是计算机程序、规程以及可能的相关文档和运行计算机系统需要的数据。包含4个部分,即计算机程序、规程、文档和软件系统运行所必需的数据。软件与硬件完全不同的特征:1、软件是开发产生的,而不是用传统方法制造。2、软件不会像硬件一样有磨损。3、很多软件不能通过已有构件组装,只能自己定义。4、软件可以无限复制。

2.软件质量保证定义及包含内容P12:(1)

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

  1. 软件质量是:系统、部件或者过程满足规定需求的程度。系统、部件或者过程满足顾客或者用户需要或期望的程度。该定义相对客观,强调了产品(或服务)和客户/社会需求的一致性。从以下几个方面考虑软件质量:软件结构方面,功能与性能方面,开发标准与文档方面
  2. 全面质量管理通常都包括以下4个步骤:

第1步是指一个连续的过程改进系统,其目标在于开发一个看的见的、可重复的和可度量的软件过程。第二步将检查影响过程的其它因素,并优化这些因素对过程的影响。前面两个步骤关注的是过程,第3步关注软件产品的用户,它是通过检查用户使用产品的方式,而导致产品本身的改进和潜在地改进产品的生产过程。第4步将管理者的注意从当前的产品上移开并拓宽。

  1. 软件测试是使用人工或自动手段来运行或测定某个系统的过程,检验是否满足规定的需求,或者弄清预期结果与实际结果之间的差别。
  2. 软件测试方法:1)静态方法和动态方法2)黑盒白盒灰盒3)需求、单元、集成、压力,性能、回归、安装、配置,安全性测试
  3. 软件质量控制是一组由开发组织使用的程序和方法,使用它可在规定的资金投入和时间限制的条件下,提供满足客户质量要求的软件产品并持续不断地改善开发过程和开发组织本身,以提高来生产高质量软件产品的能力。基本方法:PDCA质量控制法目标问题度量法(通过确定软件质量目标并且连续监视这些目标是否达到来控制软件质量的一种方法)(具体做法:1)对一个项目的各个方面(产品、过程、资源规定具体的目标,这些表达应非常明确)2)对每一个目标要引出一系列能反映出这个目标是否达到要求的问题,并要求对这些问题进行回答。这些问题的回答有助于使目标定量化3)将回答这些问题的答案映射到对软件质量等级的度量上,根据度量得出软件目标是否达到的结论,或确认哪些做好了,哪些仍需改善4)收集数据,但要为收集和分析数据做出计划)和风险管理法(识别和控制软件开发中对成功地达到目标危害最大的那些因素的一个系统性方法)(具体做法:1)根据经验识别项目要素的有关风险2)评估风险发生的概率和发生的代价3)按发生概率和代价划分风险等级并排序4)在项目限定条件下选择控制风险的技术,并制定计划5)执行计划并监控进程6)持续评估风险状态,并采取正确的措施)(SEI总结的5个步骤:风险识别、风险分析、风险计划、风险控制、风险跟踪)
  4. 风险控制方法:风险避免,通过变更计划消除风险的触发条件,如采用成熟技术、增加资源、减少软件范围等。风险弱化,降低风险发生的概率,如简化流程、更多测试、开发原型系统等。风险承担,制定应急方案,随机应变。风险转移,将风险发生的结果连同应对权利转移给有承受能力的第三方。

 

 

  1. 软件质量保证(SQA)是建立一套有计划、有系统的方法向管理层保证拟定出的标准、步骤、实践、方法能够正确地被所有项目采用。SQA(软件质量保证)是CMM(软件能力成熟度)2级中的一个重要关键过程区域,它是贯穿于整个软件过程的第三方独立审查活动,在CMM的过程中充当重要角色;软件质量保证的目标是以独立审查的方式监控软件生产任务的执行,给开发人员和管理层提供反映产品质量的信息和数据,辅助软件工程组得到高质量的软件产品,主要工作包括以下3个方面:1)通过监控软件的开发过程来保证产品的质量2)保证生产出的软件和软件开发过程符合相应的标准与规程3)保证软件产品、软件过程中存在的不符合问题得到处理,必要时将问题反映给高级管理者。目的是向管理者提供对软件过程进行全面监控的手段,包括评审和审计软件产品和活动,验证它们是否符合相应的规程和标准,同时给项目管理者提供这些评审和审计的结果。
  2. 软件过程成熟度模型CMM:是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。包括5个等级,共计18个过程域,52个目标,300多个关键实践。实施CMM是改进软件质量的有效方法:控制软件生产过程、提高软件生产者组织性和软件生产者个人能力的有效合理的方法(初始级可重复级已定义级已管理级优化级
  3. 质量保证模型:McCall模型Boehm模型FURPS模型ISO9126
  4. 缺陷排除效率(1)缺陷排除效率(DRE),E=软件交付给最终用户之前所发现的错取数,D=软件交付之后所发现的缺陷数       公式DRE=E/(E+D)
  5. 软件过程度量常见问题①度量得太多、太频繁②度量得太少、太迟③度量了不正确的事物或属性④度量的定义不精确⑤收集了数据却没有利用⑥错误地解释度量数据⑦自动化工具欠缺
  6. 软件配置管理(SCM)是一种标识、组织、控制修改的技术,贯穿在整个软件生命周期中建立和维护项目产品的完整性。SCM 活动的目标软件配置管理的各项工作是有计划进行的。被选择的项目产品得到识别,控制并且可以被相关人员获取。已识别出的项目产品的更改得到控制。使相关组别和个人及时了解软件基准的状态和内容。
  7. 配置审计:制定项目的配置计划、对配置项进行标识、对配置项进行版本控制、对配置项进行变更控制、定期进行配置审计、向相关人员报告配置的状态。
  8. 软件可靠性:在规定的条件下,在规定的时间内,软件不引起系统失效的概率,该概率是系统输入和系统使用的函数,也是软件中存在的错误的函数,系统输入将确定是否会遇到已存在的错误(如果错误存在);在规定的时间周期内,在所述条件下,程序执行所要求的功能的能力。
  9. 异常。偏离期望的状态(或期望值)的任何情形都可称为异常.缺陷。不符合使用要求或与技术规格说明不一致的任何状态常称为缺陷。差错:计算的、观测的或测量的值与真实的、规定的或理论上正确的值或条件之间的差别。一个不正确的步骤、过程或数据定义。一个不正确的结果。一次产生不正确的结果的人的活动。故障。在一个计算机程序中出现的不正确的步骤、过程或数据定义常称为故障。上述“差错”中的第二项属于故障。失效。一个程序运行的外部结果与软件产品的要求出现不一致时称为失效。软件失效证明了软件中存在着故障。
  10. 软件可靠性模型:指为预计或估算软件的可靠性所建立的可靠性框图和数学模型。评价准则:①模型拟合性:模型拟合度是指模型估计出的失效数据与实际失效数据的吻合程度。②模型的预计有效性:模型的拟合性是从历史角度来反映模型评估的有效性,模型的预计有效性是从预测的角度反应模型评估的有效性,用序列似然度检验来比较模型在预计有效性方面的优劣③模型偏差④模型的偏差趋势⑤模型噪声:是指模型本身给模型预测引入噪声的程度。
  11. 提高软件可靠性的方法和技术:建立以可靠性为核心的质量标准、选择开发方法、软件重用、使用开发管理工具、加强测试、容错设计。
  12. 软件评审:评审是一些用于开发过程早期检查和纠正缺陷的有效方法,他们可以用来检查未成形执行代码的文档的缺陷用评审发现缺陷的成本与用测试相比较是相当低的,但是作为缺陷检测技术评审也不能完全代替代码的运行测试。
  13. 为什么进行软件评审:提高项目地生产率、改善软件的质量、在评估过程中使用使开发团队的其他成员更熟悉产品和开发过程、通过评审标志着软件开发的一个阶段的完成、生产更容易维护的软件。
  14. 评审的方法:特别检查:不正式的评审方法,通常应用与平常的小组合作;轮查:作者作简要介绍,但不参与评审,评审者独立进行评审,并记录发现的结果,准备报告;走查:是一种非正式的评审方法,但作者占主导地位,描述产品的情况;让评审者了解产品,并合理做出评审;团队评审:是有计划和结构化的,非常接近于正式的评审技术

检视:比团队评审更严格,是最系统化、最严密的评审方法

  1. 软件评审内容①管理评审:是最高管理者未评价管理体系的适宜性、充分性、有效性所进行的活动②技术评审:是一种同行审查技术,主要特点是由一组评审者按照规范的步骤对软件需求、设计、代码或其他技术文档进行仔细的检查,以找出和消除其中的缺陷③文档评审:尽早发现问题,并及时采取措施予以解决,确保文档的内容准确④过程评审:对软件开发过程的评审。
  2. 软件评审会议流程(1)①准备评审会议:评审组长发出评审通知,并且将待评审的相关资料发送给参加会议的评委②召开评审会议③跟踪和分析评审结果:评审会议的重要输出是缺陷列表,需要修改和加工
  3. 全面质量管理是一种由顾客的需要和期望驱动的管理哲学,是以质量为中心,建立在全员参与基础上的一种管理方法,其目的在于长期获得顾客满意、组织成员和社会的利益。包括:强烈关注顾客,精确度量,坚持不断的改进,向员工授权,改进组织中每项工作的质量
  4. ISO9000和全面质量管理的异同点:相同:①两者的理论管理和统计理论基础一致,都认为产品质量形成于产品全过程,要求质量体系贯穿于质量形成的全过程;实现方法都是PDCA质量环运行模式;都要求对质量实施系统化的管理,都强调一把手对质量的管理。③两者的最终目的一致,都是为了提高产品产量,满足顾客的需要,都强调任何一个过程都是可以不断改进和完善的。

不同:①两者的期间目标不一致,全面质量管理为了改变现状,作业只限于一次,目标实现后管理活动就结束②两者的工作中心不同,全面质量管理以人为中心,ISO9000以标准为中心③两者的执行标准及检查方式不同。全面质量管理的标准是企业结合其自身特点制定的自我约束的管理体制,检查方主要是企业内部人员,检查方法是考核和评价。ISO9000标准是国际公认的质量管理体系标准,强调的是由公正的第三方对质量体系进行认证并接受认证机构的监督和检查。

20.6\管理的特征:以顾客为关注焦点,通过提高顾客满意度和降低资源成本来促使组织的业绩提升,注重数据和事实,使管理成为基于数字的科学,以项目为驱动,实现对产品和流程的突破性质量改进,有预见地积极管理,无边界合作,追求完美并容忍失误,强调骨干队伍的建设,遵循DMAIC的改进方法;优点:提升企业管理的能力,节约企业运营成本,增加顾客价值,改进服务水平,形成积极向上的企业文化

20.

21.质量功能展开QFD是指在制造过程中,用系统配置需求和特征关系的方法将顾客需求转变成“质量特性”并展开质量设计,最终得到满足质量要求的产品

22.软件度量是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化的过程;加以理解评估控制和改善

22.软件测试的目的:为了保证软件质量、提高软件可靠性的重要手段,在软件开发中起着不可代替的作用,其关键和核心是测试数据生成。

23.软件测试原则:①在整个开发过程中要尽早地和不断地进行软件测试②在开始测试时不应默认程序中不存在错误③在设计测试用例时要给出测试的预期结果④测试工作应避免由系统开发人员或开发机构本身来承担⑤对合理的和不合理的输入数据都要进行测试⑥重点测试错误群集的程序区段⑦除检查程序功能是否完备外还要检查程序功能是否有多余⑧用穷举测试是不可能的⑨长期完整地保留所有的测试用例和测试文件,直到该软件产品被废弃为止

24.几种集成测试实施方案的比较:非增量式集成测试模式是先分散测试,然后集中起来再一次完成集成测试,自顶向下测试的主要优点在于它可以自然地做到逐步求精能让测试看到系统的架构。自顶向上的优点在于由于驱动模块儿模拟了索赔共调用参数,即便数据流并未构成有像的环状图生成测试数据也没有困难,三明治集成测试,采用自顶向下自顶向上结合的方式,并采取持续集成的策略,有助于尽早发现缺陷也有利于提高工作效率;核心系统先行集成测试能保证一些重要功能和服务的实现,对于快速开发很有效果,一般来讲,在集成测试中采用自顶向下和自顶向上集成测试方案在软件项目集成过程中极为常见。

24.软件缺陷产生的原因:程序编写错误,编写程序未按照规定,软件越来越复杂,开发人员的态度,沟通上的问题,需求变更太过频繁,进度上的压力,管理上的失误

21.软件缺陷的特征:①缺陷的发生都是有原因的:缺陷产生的原因是客观存在的②缺陷的重现性:一个缺陷不能重现就无法进行修复。③缺陷的积累性、放大性:软件缺陷发现的越晚,要改正的缺陷所做的工作就越多,所需的成本就越高④缺陷的修复可能又引进新的缺陷:在修复完一个缺陷的时候要仔细检查这个修复会不会带来新的问题,

22.缺陷分析指标:①缺陷发现率②缺陷潜伏期③软件缺陷密度④缺陷清除率③缺陷密度=软件缺陷数量/代码行或功能点的数量④F为描述软件规模用的功能点,D1为软件开发过程中发现的所有软件缺陷数,D2为软件分布后发现的软件缺陷数,D为发现的总软件缺陷数,由此可得到D=D1+D2的关系:质量(每个功能点的缺陷数)=D2/F

软件缺陷注入率=D/F;软件清除率=D1/D

24.集成测试过程①计划阶段:完成集成测试计划,制定集成测试策略②设计实现阶段,建立集成测试环境,完成集成测试设计和开发③执行评估阶段:执行集成测试用例,记录和评估测试结果。

25.测试文档的撰写①提高易读性:产品易用性大多与软件文档有关②提高可靠性:可靠性是指软件稳定和坚固的程度③降低支持费用:客户发现问题比早在产品开发期发现并修复的费用要高10-100倍,其原因是用户有麻烦或者遇到意外情况就会请示公司的帮助

26.调试方法:①蛮力法:进行内存映像,激活运行时的跟踪,在程序中到处插入write语句②回溯法:该方法是小程序经常使用并能奏效的常用调试方法,从发现症状的地方开始手工的反向跟踪源代码,直到发现错误原因③原因排除法:这种方法是通过演绎和归纳,以及二分法来实现的,该方法对和错误相关的数据进行分析,并寻找潜在的原因

27.测试过程

代码会审:代码会审是由一组人通过阅读讨论和争议过程进行静态分析的过程

单元测试:单元测试集中在软件设计的最小单位模块上通过测试发现实现该模块的实际功能与定义该模块儿的功能明确不符的情况以及编写的错误

集成测试:集成测试将模块按照设计要求组装起来同时进行测试主要目标在于发现与接口相关的问题

验收测试:验收测试的目的是向用户表明系统能够像预定那样工作

  1. 软件6个主要特征:功能性可靠性易使用性可维护护性可移植性
  2. 软件项目追踪和控制正式的技术复审;软件质量保证;软件配置管理;文档的准备和产生可复用管理;测试;风险管理

猜你喜欢

转载自blog.csdn.net/nanaz11/article/details/85937754