软件质量保证

  • 一、软件质量保证(SQA)概念
    • 1.SQA是什么?
    • 2.软件质量保证4种手段:评审、审查、走查、审计
    • 3. 如何保证和提高软件质量的两种途径
    • 4.在软件开发全过程实施SQA:有哪些环节?
    • 5.SQA面向软件开发过程
    • SQA其他知识:
  • 二、软件质量保证和软件测试的联系和区别
    • 1.两者关系:
    • 2.SQA
    • 3.软件测试
    • 3.代码审查属于静态测试
  • 实验2:代码审查工作:代码走查(集中到小目标里)
  • 实验3:基于某种测试管理工具管理软件测试过程
  • 测试工具
  • 三、软件测试(ST)
    • 1.ST的基本思想与思维
      • 1.1 ST主要手段
      • 1.2 ST模型
    • 2.ST过程管理
      • 2.1 ST活动
    • 2.2 ST理论
    • 2.3 ST阶段
  • 三、单元测试

一、软件质量保证(SQA)概念

1.SQA是什么?

软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。 它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。

  • SQA目标:为满足质量需求提供信任,从一开始避免缺陷。

2.软件质量保证4种手段:评审、审查、走查、审计

评审review、审查inspection、走查walkthrough、审计audit

  • 评审:目的:实现我们想要的,有技术人员完成
  • 审查:像静态测试(软件不运行进行软件测试),发现缺陷
  • 走查:根据已经提出的测试用例,用人工的方法执行用例。人工按照代码的逻辑走一遍

对象:复杂的、不熟悉的、易疏忽的
方法:形成问题单

3. 如何保证和提高软件质量的两种途径

1.尽量在开发时期减少缺陷
2.通过分析和测试发现和纠正缺陷
好的开发方法和技术–关键+测试-不可缺少

4.在软件开发全过程实施SQA:有哪些环节?

需求评审:
需求规格说明审查:
设计评审:设计评审检查表进行审查……
设计审查
编程评审:程序可维护性、代码审查……

5.SQA面向软件开发过程

  • 软件过程控制被提出:产品质量由其生产过程的质量决定
  • iSO9000:SQA体系最低标准
  • CMM:通过持续改进的过程说明什么是SQA

SQA其他知识:

  • SQA有更加广泛定义:
    项目评审类型:
    管理评审
    同行评审:越正规形式化程度越高:审查>小组评审>走查
    项目后评审
    状态评审

  • SQA:
    工作产品类型与审查人员
    评审的度量
    评审效率
    审查所需的文档:审查勘误表、问题记录单……

  • SQA包括过程质量和产品质量

  • 问题驱动的软件质量过程控制–以缺陷为导向进行软件过程控制,是一种特殊是过程控制方法

二、软件质量保证和软件测试的联系和区别

1.两者关系:

软件质量保证不是静态测试。SQA与软件测试两个属于两个范畴,没有包含关系
SQA是一系列活动,软件测试是一门技术一套方法,没有谁包含谁。
SQA一列活动中需要用到各种测试技术,主要方法是开展一系列的评审、审查等活动。代码走查、评审这些活动是静态测试的一种方法。
软件测试是SQA的一个措施。SQA的内容不讨论软件测试 软件测试这种技术在SQA的过程中一定会用到,但不互相包含。

2.SQA

SQA包括审计、评审,发布报告、问题反映处理。
关注点是全过程尽量预防软件缺陷发生。
在过程中采用各种措施:使用先进的软件工程方法技术,软件测试,进行正式的技术评审,标准的实施,控制变量,程序正确性证明,记录、保存、报告软件过程信息。

3.软件测试

软件测试:运行和检验系统的过程。使用人工或者工具。
软件测试是软件开发的一部分。是保证软件质量和可靠性的关键技术手段
目标:缺陷预防、降风险、保证和评估质量。

软件测试两种手段/两种分类:
静态测试(不需要运行软件):审查、走查,分析
动态测试(需要运行软件):功能测试/黑盒测试(不需要了解软件内部结构,依据需求进行测试)、结构测试/白盒测试(需要了解软件内部结构,并对结构进行分析,分析后根据分析结构设计测试)

静态测试和动态测试都有黑盒测试和白盒测试,区别是否需要分析软件内部的结构。

黑盒测试:提取需求说明产生的结果,设计测试用例,实际得到的结果与希望结果对比。
白盒测试:分析源程序,需要结构分析,设计测试用例。

测试用例 test case:错误性大的数据。是一个二元组或者一组二元组。
测试用例的期望和断言:断言:计算出的期望结果。

3.代码审查属于静态测试

  1. 测试与调试的区别:
    新建项目:Console application
    编译问题
    调试:debug

实验2:代码审查工作:代码走查(集中到小目标里)

开发小组:完成软件项目。开发计划–编程–提供源代码
走查小组:评审开发小组的……+评审计划

静态测试工具:cppcheck eg:内存泄漏
代码格式不规范:source code formatter

实验3:基于某种测试管理工具管理软件测试过程

思考:测试用例及其关联性问题

测试工具

缺陷管理工具–mantis
静态分析工具–cppcheck
测试管理工具–TestLink(管理测试活动,有效管理测试任务)
单元测试工具–XUnit:JUnit、CPPUnit (找开源工具:SourceForge–https://sourceforge.net/projects/cppunit/)

单元测试工具:
VSTS 测试管理工具、软件开发全过程管理工具
Parasoft C++ Test(收费)

三、软件测试(ST)

ST是软件生命周期SR中的重要组件,是SQA中的要素或重要措施。
成功的测试在于发现缺陷

1.ST的基本思想与思维

1.1 ST主要手段

手段:静态、动态、白盒、黑盒测试,主要围绕:如何设计测试用例(核心)

静态、动态:是否运行软件
白盒、黑盒:是否需要了解内部结构

代码审查:静态白盒
非技术性文档测试:静态黑盒

  • 白盒测试:静态和动态测试相结合–控制流技术、数据流技术
    测试准则:语句覆盖、判定/分支覆盖、条件覆盖(eg:x!=0&&x>0,不关心判定)、判定条件覆盖、条件组合覆盖、路径覆盖(z路径覆盖)

  • 黑盒测试,是普适的测试方法。穷举所有可能的测试输入才有可能发现错误(测试用例设计的局限:当软件庞大,不可能完成;软件规格说明书的表达偏差)
    基本测试策略:正常情况+非正常情况、边界情况(常用)、非法情况、强度情况、性能测试、非功能测试
    测试准则:何时结束、覆盖度

  • ST其他手段:手工测试、自动测试

白盒测试:被测对象转化为图,如控制流图、数据流图。选择覆盖技术。

1.2 ST模型

ST分类:


V模型:软件测试中的瀑布模型

测试阶段的任务:V&V(验证和确认)verification:是否正确的做事请,validation:是否做了正确的事情
回归测试、确认测试

软件测试:验证+确认。
软件测试是软件开发的一个子阶段

  1. V模型的问题:
  2. 双V模型/W模型:测试与开发的并行但不独立,强调近早测试和全周期的测试。提前到需求阶段的需求审查

  3. X模型:探索性测试,不定计划,依赖经验
  4. H模型:将测试与研发独立;近早测试,贯穿全生命周期
  5. ISO
  6. 各种软件测试规范

2.ST过程管理

2.1 ST活动

核心:测试用例的选择。尽可能覆盖整个测试。

  1. 测试计划
  2. 测试需求–>编制大纲
  • 测试计划:做什么,测试策略:怎么做,技术定义范畴
  1. 用例设计
    用例管理工具:TestLink
  2. 软件测试实施:软件问题报告SQR
  3. 编写测试报告:国标、行业标准
    测试报告、

2.2 ST理论

  1. Goodenoug和Gerhart 理论 理想测试理论:理想测试、彻底测试,依赖于程序。谓词逻辑。致力于测试数据的方法选择,保证测试的正确性。
  2. Weyuker和Ostrand理论 一致理想测试理论:指出理想测试的不足。依赖规范,独立于程序。
  3. Gourlay理论:测试系统、测试方法

2.3 ST阶段

广义的阶段:


单元测试:测试、开发人员是单元测试的主体。主要技术:白盒测试
系统测试:主体:测试、开发。功能测试,黑盒测试。依据需求规格说明。
验收测试:主体:客户。功能测试,黑盒测试。依据需求规格说明。

维度1:

三、单元测试

主要技术:白盒测试

单元测试:独立的程序单元。独立的测试一段低层次上的独立代码
独立测试:不考虑依赖,仅限特定代码。

单元测试模式:
测试驱动:用例在代码产生之前
代码行测试:代码形成后测试

单元测试阶段:
静态单元测试
动态单元测试
两种测试交替进行

内容、任务:
模块接口测试

单元测试的管理:

白盒测试技术

单元测试工具:

软件质量保证SQA、软件测试ST相关推荐

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

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

  2. 软件工程软件产品质量要求与评价_软件质量保证(Quality Assurance)中常见的活动...

    质量保证QA关注在软件产品生成的整个过程,主要验证软件产品开发过程中相关实施过程的完整性.一致性和有效性,确保开发活动和测试活动等遵循正确的过程,为软件产品达到合适的质量级别提供信心.为了实现过程的可 ...

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

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

  4. 软件质量保证(SQA)

    什么是SQA? 软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准.步骤.实践和方法能够正确地被所有项目所采用. 软件质量保证的目的是使软件过程对于管理人员来说是可见的. ...

  5. 【软件质量保证与测试】2.4软件测试与软件开发的关系

    文章目录 1. 软件测试与软件开发过程关系概述 2. 软件测试在软件开发生命周期中的位置 2.1 软件开发生命周期 2.1.1 软件规划阶段测试 2.1.2 软件设计阶段测试 2.1.3 软件开发阶段 ...

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

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

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

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

  8. 《软件质量保证和管理》电子课件下载

    <软件质量保证和管理>        电子课件业已完成,可去"Kerry Zhu CSDN下载频道" 下载: <软件质量保证和管理>电子课件之一  < ...

  9. 软件质量保证与测试基础知识小计

    写在前面: 这是我再期末考试阶段根据老师的重点进行的知识总结(只涉及概念等基础内容,不涉及具体技术操作流程),现分享出来,欢迎大家批评指正. 目录 第一章 概述 第二章 软件质量工程体系 第三章 软件 ...

  10. 【课程总结】软件质量保证与测试知识点总结

    完整在gitee 1.简述软件测试的意义 随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点.而由于软件本身的特性,软件中的错误是不开避免的.不断改进的开发技术和 ...

最新文章

  1. mysql字段优化_MySQL优化(1):字段的设计
  2. Objective-C 入门(七)协议 protocol(JAVA中的接口)
  3. 喝不起奶茶,咱就为奶茶店开发个会员积分收银系统
  4. 申请鸿蒙选择应用程序是什么,申请鸿蒙系统有一个应用选择怎么选择呢
  5. 统计特定文件中的词频
  6. (chap9 基于HTTP的功能追加协议) WebSocket使用浏览器进行全双工通信
  7. python一个try块后接一个或多个finally块_Python *与*语句完全等同于一个try – (除了) – finally块?...
  8. Powershell管理系列(三十一)PowerShell操作之批量创建邮箱
  9. java 基本集合操作
  10. linux var run目录,PXE系列文章(16) - Linux /run 和 /var/run 目录介绍
  11. c++ 函数参数问题
  12. VS2010 + OpenCL 1.1 @ Windows 7 + AMD HD6870
  13. 在你的网站中使用 AdSense广告
  14. PMBOK(第六版) PMP笔记——《六》第六章(项目进度管理)
  15. 小米手机的专用计算机连接软件,详细教您小米手机怎么连接电脑
  16. JS一些常用证件信息的正则表达式
  17. 广工anyview数据结构第七章(2021.12)
  18. 《生命中不能承受之轻》读书笔记
  19. 复习笔记1-java基础
  20. 快速查询出中通快运物流信息,将信息导出EXCEL表格

热门文章

  1. 仿微信打飞机小游戏GamePlane(1)----概述
  2. 安装VS2012番茄助手
  3. 计算机的硬盘材料,电脑坏了把硬盘资料转移到新硬盘的方法
  4. Tensorflow深度学习入门(5)——优化训练MNIST数据和调用训练模型识别图片
  5. 安卓怎么搭建开发环境 安卓开发环境搭建教程
  6. C语言练习,求x的y次方的代码
  7. 应用搬家/应用迁移:c盘搬家哪个软件好?
  8. PN结是什么?PN结有什么特征?PN结的应用
  9. 网络视频嗅探的几种方法
  10. 强悍修改WIN7的文件夹背景(修改DLL)