赞
踩
软件测试是软件生命周期中的一个独立阶段,并且在软件开发的每个阶段都有相关等测试活动。
早期等软件测试 等于 “调试”
软件质量保证 : 标准,规范,体系,管理
规范,约束等测试定义 :
* 在特定等条件下运行系统或者构件,观察或记录结果,对系统等某方面做出评价
分析某个软件项已发现和现存等,以及要求的条件之别(即错误)并评价此软件项等特性
1 : 最少的人力,物力,时间
2 : 为软件可靠性分析提供相关数据
3 :对软件质量进行度量和评估
成功的测试是发现了迄今尚未发现的错误的测试
软件质量保证 是贯穿软件项目整个生命周期等有计划和有系统的活动
确保软件项目的过程遵循了对应的标准和规范要求且产生力合适的文档和精确反应项目情况等报告,目的是:提供评价项目质量建立项目达到质量要求的信心
软件测试上获取度量值等一种重要手段
在执行软件产品评价时,确立评价需求的质量模型就要采用度量
软件测试系统 :
制定测试计划 ; 测试设计 ;
实施测试 ; 建立和更新测试文档
软件质量保证 :
制定软件质量要求 ; 组织正式度量 ;
软件测试管理 ; 对软件等变更进行控制;
对软件质量进行度量; 对软件质量情况及时记录和报告
tips:
调试应该由 编制该源程序的程序员 完成
最后使通过确认测试的软件与其他系统成分组合在一起,并使其在实际运行环境中进行,进行系统测试
软件配置项 是为了配置管理而设计的并且能够满足最终用户功能的软件,在配置管理过程中作为单个实体对待
软件部件 是构成软件配置项或系统等部分之一,在功能上或逻辑上具有一定等独立性,且可以进一步划分为其他部件
tips :
静态测试 ; 动态测试(白盒测试 ; 黑盒测试)
在软件开发过程中,不同阶段等测试对应了不同软件对象的测试
在不同等测试解读那,由于测试 目标,对象,要求等不同而采用不同等测试技术。
一般情况下不同测试对象中采用的测试技术
在不同等阶段对不同对象测试包含不同的测试项目
一个实体等所有特性,基于这些特性可以满足明显等或隐含等需求
就是 实体基于这些特性满足需求的程度
实体 + 特性集合 + 需求
软件与明确的和隐含等定义需求相一致等过程
【1】 静态质量特性:
静态质量特性包括结构化的,可维护的,可维护的,可测试的代码,正确且完整的文档
【2】动态质量特性:
软件动态质量特性 : 正确性,可靠性,完整性,一致性,易用性,性能
流程,技术,组织 是影响软件质量的主要因素。提高软件需求需要从每个方面进行修改,同时还需要兼顾 成本和进度
思想方式 : 从计划到策略的实现
来源 : 成功的经验
优点 : 提高软件质量,有利于项目的成本和进度控制
包括分析技术,设计技术,编码技术,测试技术。
需求是项目的灵魂
软件质量是设计出来的
编码技术产生正确高效的代码;测试是保证软件的最后一道防线
有效促进流程实施,提供员工发展通道以吸引更多人(技术载体)
评价质量优劣途径:
制定极高的目标,收集数据以分析结果,以减少陈皮和服务缺陷
软件质量保证、度量和测试
SQA (软件质量保证) 和 测试 的关系
SQA工作范围:
度量:对事物属性量化表示
软件度量:对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程
提高软件生成率,缩短产品研发周期,降低研发成本和维护成本
提高软件产品质量,提高用户满意度
为组织持续改进提供变量化的指标和反馈
【1】识别目标 : 根据管理者的不同要求,分析度量的工作目标,并根据其优先级和可行性,得到度量活动中的工作列表,并由管理者审核批准
【2】根据度量目标,定义度量过程: 收集要素,收集过程,分析/反馈过程,IT支持体系
【3】 数据收集
【4】数据分析与反馈
【5】过程改进
1:软件在所有的(或足够多的)测试数据上是正确的;
2:数据是充分的,即软件在测试数据上的表现能够充分反映软件的总体表现
测试软件在测试数据上行为的正确性称为测试的“先知者问题”。判断一个测试数据集合是否充分称为充分性问题
软件测试通过有限测试数据来测试软件,以发现软件的缺陷
软件的实际运行空间是非常大的,有时甚至是无限的。
在有限的测试输入数据空间上的软件行为是否能够充分反映而无限的软件运行空间的行为,这就是软件测试的充分性问题
[1] 谓词 : 用于判断一个测试数据集是否充分 ex : 程序中的语句是否都经过测试
[2] 度量函数: 赋予测试数据集一个充分度 ex : 程序中已测试的语句所占的百分比
将公里系统应用到软件测试的研究当中:
【1】 非外延公理 : 功能相同实现不同,其中一个充分测试数据集另一个不一定是
【2】 多重修改公理 : 相同语言结构,对一个是充分的,另一个不一定
【3】 不可分解公理 : 对一个程序进行了充分的测试,不表示对其成分都进行了充分测试
【4】 非复合公理 : 对程序各单元是充分的,对整个集成后的程序不一定
从用户,开发者出发,软件测试会派生两种不同的测试原则:
【1】 用户 希望通过软件测试能充分暴漏软件中存在的问题和故障
【2】 开发者 希望测试能表明软件产品正确实现了用户的需求,没有软件故障存在
使有限的测试投资获得最大收益(以有限的测试用例检查出尽可能多的软件故障)
不能保证软件故障全部被找到,无法报告隐藏的软件故障
1:程序员自己作 ; 2 :犯同样的错误 (还是自己作); 3:可能是极其严重的原因造成
根据不同的测试方法开发测试用例,对程序的不同部分进行测试,找到更多软件故障
不能修复原因 :
【没有足够时间】 【不值得修复】 【修复风险太大】【不算真正的软件故障】
除非确实没有用,一般不要丢弃测试用例
由别人操作会更有效更成功,不是说程序员不考研测试自己的程序
生产低质软件的代价太大了,软件行业也发展为强制使用软件测试人员的时代
软件开发过程 是软件开发与维护的 工作流程和工艺流程,是软件工程的重要组成部分
设计软件的功能和实现的算法和方法,软件的总体结构设计和模块设计,编程和调试,程序联调和测试以及编写,提交程序
软件需求类型:
可行性研究 -->需求分析 -->概要设计-->详细设计-->实现-->集成测试-->确认测试-->使用维护
软件开发模型则描述阶段如何组合在一起,是软件开发活动以及它们之间关系的结构框架
瀑布模型,原型模型,快速原型模型,增量模型,螺旋模型,V字模型,W模型,X模型,H模型,喷泉模型 ,XP模型
【1】:项目分解为独立的不同阶段
【2】:项目之间有顺序性和依赖性,每个阶段通过预先定义的输出和下一阶段发生联系
【3】:若发现错误,返回上一阶段,一次跳一个阶段,直到在某个较早阶段改正
适用于 : 1 : 开发者不了解的应用领域 ; 2:客户不清楚所开发的软件项目的最终目的
适用于:技术风险较大,用户需求较为稳定的软件系统
适用于:需求不能完全确定,同时又存在技术,资金或开发时间的大型开发项目
螺旋模型开发的成败,很大程度上依赖于风险评估的成败,需要开发人员具有相当丰富的评估经验和专门知识
按阶段进行测试是一种基本的测试策略
单元测试是对软件基本组成单元进行的测试
一般在代码完成后由开发人员完成,QA人员辅助
对象
类,模块,组件,单元
依据
软件的详细设计描述,源程序清单,编码标准
单元测试是在编码过程中进行的,在所有测试前进行
效益更优秀
单元测试的实施应遵循一定步骤:力争有计划,可重用
在单元测试时,单元测试一般为编码步骤的附属部分,模块不是独立的程序,模块不是独立的程序,自己不能运行,要靠其他部分来调用和驱动,要为每个单元测试开发两个软件 :
局部数据结构测试
assertion 是调用方式,较多语言支持这种机制
assertion 是程序中的一条语句
assertion 保证程序最基本,关键的正确性
assertion 在开发和测试时开启,在软件发布后关闭
目的:
作用:
在单元测试的基础上,将所有模块按照概要设计要求组装成子系统或系统,进行集中测试(组装测试,联合测试,子系统测试或部件测试)
时机:
单元测试完成后便进入集成测试阶段
模块间的接口,接口之间的关系
非增试测试 ; 增试测试
自顶向下
集成测试作用
分析软件规格说明书等资料,由划分等价类等原则,列出等价类表(包括有效类和无效类),由确定测试用例等具体过程,学出某种(标准或者健壮)
划分等价类首先考虑输入和输出条件 :有效的限定,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。