软件质量保证
- 一、软件质量保证(SQA)概念
-
- 1.SQA是什么li>
- 2.软件质量保证4种手段:评审、审查、走查、审计
- 3. 如何保证和提高软件质量的两种途径
- 4.在软件开发全过程实施SQA:有哪些环节li>
- 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是什么h2>
软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。 它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
- SQA目标:为满足质量需求提供信任,从一开始避免缺陷。
2.软件质量保证4种手段:评审、审查、走查、审计
评审review、审查inspection、走查walkthrough、审计audit
- 评审:目的:实现我们想要的,有技术人员完成
- 审查:像静态测试(软件不运行进行软件测试),发现缺陷
- 走查:根据已经提出的测试用例,用人工的方法执行用例。人工按照代码的逻辑走一遍
对象:复杂的、不熟悉的、易疏忽的
方法:形成问题单
3. 如何保证和提高软件质量的两种途径
1.尽量在开发时期减少缺陷
2.通过分析和测试发现和纠正缺陷
好的开发方法和技术–关键+测试-不可缺少
4.在软件开发全过程实施SQA:有哪些环节h2>
需求评审:
需求规格说明审查:
设计评审:设计评审检查表进行审查……
设计审查
编程评审:程序可维护性、代码审查……
5.SQA面向软件开发过程
- 软件过程控制被提出:产品质量由其生产过程的质量决定
- iSO9000:SQA体系最低标准
- CMM:通过持续改进的过程说明什么是SQA
SQA其他知识:
-
SQA有更加广泛定义:
项目评审类型:
管理评审
同行评审:越正规形式化程度越高:审查>小组评审>走查
项目后评审
状态评审 -
SQA:
工作产品类型与审查人员
评审的度量
评审效率
审查所需的文档:审查勘误表、问题记录单…… -
SQA包括过程质量和产品质量
-
问题驱动的软件质量过程控制–以缺陷为导向进行软件过程控制,是一种特殊是过程控制方法
二、软件质量保证和软件测试的联系和区别
1.两者关系:
软件质量保证不是静态测试。SQA与软件测试两个属于两个范畴,没有包含关系
SQA是一系列活动,软件测试是一门技术一套方法,没有谁包含谁。
SQA一列活动中需要用到各种测试技术,主要方法是开展一系列的评审、审查等活动。代码走查、评审这些活动是静态测试的一种方法。
软件测试是SQA的一个措施。SQA的内容不讨论软件测试 软件测试这种技术在SQA的过程中一定会用到,但不互相包含。
2.SQA
SQA包括审计、评审,发布 告、问题反映处理。
关注点是全过程尽量预防软件缺陷发生。
在过程中采用各种措施:使用先进的软件工程方法技术,软件测试,进行正式的技术评审,标准的实施,控制变量,程序正确性证明,记录、保存、 告软件过程信息。
3.软件测试
软件测试:运行和检验系统的过程。使用人工或者工具。
软件测试是软件开发的一部分。是保证软件质量和可靠性的关键技术手段
目标:缺陷预防、降风险、保证和评估质量。
软件测试两种手段/两种分类:
静态测试(不需要运行软件):审查、走查,分析
动态测试(需要运行软件):功能测试/黑盒测试(不需要了解软件内部结构,依据需求进行测试)、结构测试/白盒测试(需要了解软件内部结构,并对结构进行分析,分析后根据分析结构设计测试)
静态测试和动态测试都有黑盒测试和白盒测试,区别是否需要分析软件内部的结构。
黑盒测试:提取需求说明产生的结果,设计测试用例,实际得到的结果与希望结果对比。
白盒测试:分析源程序,需要结构分析,设计测试用例。
测试用例 test case:错误性大的数据。是一个二元组或者一组二元组。
测试用例的期望和断言:断言:计算出的期望结果。
3.代码审查属于静态测试
- 测试与调试的区别:
新建项目: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中的要素或重要措施。
成功的测试在于发现缺陷
代码审查:静态白盒
非技术性文档测试:静态黑盒
-
白盒测试:静态和动态测试相结合–控制流技术、数据流技术
测试准则:语句覆盖、判定/分支覆盖、条件覆盖(eg:x!=0&&x>0,不关心判定)、判定条件覆盖、条件组合覆盖、路径覆盖(z路径覆盖) -
黑盒测试,是普适的测试方法。穷举所有可能的测试输入才有可能发现错误(测试用例设计的局限:当软件庞大,不可能完成;软件规格说明书的表达偏差)
基本测试策略:正常情况+非正常情况、边界情况(常用)、非法情况、强度情况、性能测试、非功能测试
测试准则:何时结束、覆盖度 -
ST其他手段:手工测试、自动测试
白盒测试:被测对象转化为图,如控制流图、数据流图。选择覆盖技术。
2.ST过程管理
2.1 ST活动
核心:测试用例的选择。尽可能覆盖整个测试。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!