开发工具:
文件大小: 37kb
下载次数: 0
上传时间: 2019-01-11
详细说明:软件测试理论篇
一、为什么软件要做软件测试
纵观历史事件说明软件测试的重要性
二、软件测试的概念
1、测试是为了发现错误而执行程序的过程 ;
2、在规定条件下,对程序进行操作,以发现错误,以软件质量进行评估 ;
3、使用人工或者自动化手段,来运行或者测试某个子系统的过程,其目的在于检查它是否
存在满足规定需求或弄清预期结果与实际结果之间的差别( IEEE :美国电气和电子工程师
协会)应用程序管理工具
2、软件基础知识:软件工程,软件生命周期、测试理论和测试方式有较深的理解
3、软件测试技术,方法;流程,测试文档编写,能独立设计和执行测试用例,提交完整的
缺陷报告单,编写测试报告
4、计算机开发语言C,C++,java, Java Script, SCript, shell;
C面向过程
Java面向对象、跨平台
JavaScript VBScript python脚本语言
5、数据库 SQLServer, Oracle, MySQL等数据库知识
Oracle(甲骨文)、 MySQL、 SQLServer、DB2
6、操作系统inuX、 windows、UNX、MAC等
7、网络基础知识,能够独立完成测试环境的搭建;
8、测试工具,能够熟练使用至少一种功能性能自动化测试工具;
自动化工具:QTP(HP)QTP11.5改名为:UFT
WinRunner selenium:支持Java、perl、 python
性能工具: Loadrunner(LR)HP—c语言类C、 QAload、 Jmeter
9、质量管理知识,如CMM,CMM|以及|SO900
10、学好一门或者多门外语
八、测试工程师具备的素质
1、三心:责任心、耐心、细心
2、二力:沟通能力、洞察力
3、一个精神:团队精神
九、测试工程师的职责
、配置测试环境
2、编写测试计划
3、设计测试用例
4、执行软件测试
5、提交软件缺陷
6、编写缺陷报告
7、验证修正的缺陷
软件研发过程
软件硏发的模型
、瀑布模型:是一种线性的、顺序的软件的开发模型
三个阶段:定义阶段、开发阶段、维护阶段
瀑布模型的特点:1、线性化模型结构;2、各个阶段具有里程碑式特征
3、基于文档的驱动;4、严格的阶段评审机制
优点:提供了软件开发的基本框架,
缺点:初始阶段指出了全部需求,不方便修改;流程不可逆
l、∨模型
用户需求需求分析概要设计详细设计编码
单元测试集成测试系统测试验收测试
∨模型的优点:1、明确了测试过程中存在的不同级别
2、说明了测试和开发的对应关系;
3、ⅴ模型的测试策略包含了低层测试(代码测试)又包含了高层测
试(需求测试)
∨模型的缺点:1、它仅仅把测试过程作为需求分析,概要设计,详细设计编码之后
的一个阶段,容易让人理解为测试是软件开发的最后一个阶段
2、没有明确说明早期的测试,不符合尽早测试和不断地进行测试的
原则(用户需求对不对要到验收测试才能发现)。
3、和瀑布模型一样,流程单一不可逆;
Ⅲl、W模型
W模型的优点:1、符合尽早测试和不断测试的原则
2、符合实际工作中的测试要求
W模型的缺点:无法迭代不可逆
Ⅹ模型
Ⅹ模型提岀了探索测试的概念(边设计用例,边测试)。
H模型
螺旋模型:明确风险和化解风险
原型范型:问题:开发初期很难确定用户需求规格
解决:用户与开发者之间的鸿沟
敏捷开发:以人为核心,适应变化,迭代,循序渐进的开发方法
敏捷开发的理念:1、个体和交互,胜过过程和工具
2、可以工作的软件,胜过面面俱到的文档
3、客户合作,胜过合同谈判
4、响应变化,胜过遵循计划
软件的生命周期
需求设计编码测试维护升级废弃
sPEc产品需求规格说明书
三、软件的测试流程
需求分析测试计划测试用例测试执行测试报告
四、软件项目组的成员
项目经理:(PM)
架构师
程序员
测试工程师
资料工程师
配置管理员
质量监管员:(QA)
技术顾问:
数据库专家
软件测试分类
按阶段划分
单元测试( unit testing):是指对软件中最小可测试单元进行检查和验证
、对于单元测试中的单元的含义,一般来说,要根据实际情况去判断其具体含义
如c语言中单元指一个函数,Java里面指一个类,图形化软件中指一个窗口或者
菜单等
ll
总的来说,单元就是指人为规定的最小被测功能模块。单元测试是在软件开
发过程中要进行的最低级的测试活动,软件的独立单元将在与程序的其他部分相
隔离的情况下进行测试。
、单元测试包含的内容如下
入口和出口函数
输入和输出信息
错误处理信息
部分边界数值测试
集成测试( Integration testing),也叫组装测试或者联合测试。
在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成子系统
或者系统,进行集成测试(集成测试测的是接口)
实践表明,一些模块虽然能够单独地工作,但是并不能保证连接起来也能正常工作
程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现
集成测试的方法
非增量式集成(一次性集成)
优点:集成速度快
缺点:集成的难度大,同时一旦某个模块出现冋题。很难定位问题和修改
增量式集成:自顶而下增量式测试桩程序;
自底而上增量式测试驱动程序
确认测试:目的是向未来的用户表明系统能够像预期要求的那样工作
进过集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口
错误也已经基本排除了,接着就应该进一步验证软件的有效性这就是确认测试的
任务,即软件的功能和性能如同用户所合理期待的那样。
系统测试〔 System testing)将确认的软件、计算机硬件、外设、网络等其他元索结合在
一起,进行信息系统的各种组装测试和确认测试
系统测试是针对整个产品系统迸行测试
目地是验证系统是否符合满足了需求规格的定叉,找出与需求不符合或者与之矛
盾的地方,从而提出更加完善的方案
系统测试发现问题之后要经过调试找出错误的原因和位置,然后进行改正,是基
于系统整体需求说明书的黑盒测试,应该覆盖系统所有联合部件
测试对象不仅仅包括测试的软件还包括软件依赖的硬件、外设甚至包括某些数据、
某些支持软件及接口等
测试范围
功能测试( functional testing
验证软件是否符合《需求规格说明书》包含的
功能;
性能测试( performance testing):检査系统运行时的各项性能指标(CP内
存、网络、响应时间、点击率、吞吐量、用户并发数);
负载测试(| oad testing
性能测试的一种,不断给系统施加压力的过程,来
判断系统的承受能力
压力测试( stress testing):又称为强度测试,也是性能测试的一种,不断给
系统施加压力,在饱和的状态下,再持续一段时间,来测试系统的最大承受能力
稳定性测试( stability testing
):主要测试系统在一段时间内是否正常运行
(7*24H、3*24H)
兼容性测试( compatibility testing
):硬件兼容(整机謙容和外设兼容)、软
件兼容(操作系统兼容 Windows、∪ NIX LINUX MAO以不同版本之间的兼容性}、
浏览器兼容性、 Chrome、 FireFOx、 opera、 Safari}、数据库兼容{ Oracle、 MySQL
SQLServer、DB2}、与其他软件中间件的兼容)
容量测试( volume testing):面向数据的测试,测试系统最大限度处理数据的
能力
数据备份测试( backup testing):验证程序失效是,备份数据的能力,自动备
份和手工备份
失效恢复测试( recovery testing):系统从软件或者硬件中恢复的能力,强调
系统在发生失效时,必须在一定的时间范围内可以恢复成功,同时可以继续运行。
可用性测试( usability testing):主要测试用户在理解和使用系统的时候是否
方便
健壮性测试( robustness testing):又叫容错性测试,系统岀现故障时候可以
恢复,忽略故障是否可以继续运行;
安装测试( installation testing
):是否可以安装、是否可以选择正确路径来安
装、可以在不同系统上安装、安装过程中断后,是否可以继续安装、安装过程中
是否有良好的错误提示信息、再次安装、取消安装、卸载(有无残留文件)、更
新版本、修复
配置测试( configuration testing):主要针对硬件,测试软件在一定的硬件配
置下是否出现问题,大体包括:pc、组件、外设、接口、驱动;
文栏测试( documentation testing):《帮助文档》《使用手册》等,主要验
证用户使用文档是否正确、和保证操作手册的过程能欧冠正常工作;
在线帮助测试( online help testing):主要测试的是给用户提供的实时的资讯
服务的可操作性和准确性
GU测试( graphical user interface)图形用户接口测试,主要测试的是前端的
展示內容:莱单、按键、对话框
安全测试( security testing):主要测试具备非法或者非正常途径访问被测试
系统,系统可以提供的保护和防御的机制;
验收测试:确定产品是否能够满足合同或用户所规定需求的测试,
这是管理性和防御性控
制
主要确认软件是否按照合同要求进行工作,既满足软件需求规说明书中的要求。
验收测试的方法
、非正式的验收测试
a测试:软件开发公司组织内部人员模拟各类用户行为对即将上市的产品进
行测试
开发和测试人员在场,测试可控
?测试(Beta):软件开发公司组织各方面的的典型客户在日常工作中实际
使用,并要求用户报告异常情况、提出改进意见,然后公司再进行完善。
开发和测试人员不在场,测试不可控
I、正式的验收测试
有正规的测试过程,需要制定测试计划、定义测试方案、选择测试用例,迸行测试
结果提交。着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、
准确,人机界面和其他方面。
按照是否运行程序划分
静态测试
不运行被测试的软件,而只是静态地检查代码、界面或者文档
匚方式名称执行人员检查内容
检查过程
桌面检查
程序员
对源程序代码进行
分析、检验,并补
充相关的文档,发
现程序中的错误
代码审查程序员和测通过阅读、讨论和第一步:小组成员提前阅读设计
试员组成的争议,以程序进行规格书、程序文本等相关文档
检查小组
静态分析的过程第二步:召开程序审查会,开发
人员读程序,审查小组讨论、发
现、解决问题
走查
程序员和测通过逻辑运行程第一步:小组成员提前阅读设计
试员组成的
序,发现问题
规格书、程序文本等相关文档
审查小组
第二步:利用测试用例,使程序
逻辑运行,记录程序的踪迹,发
现、讨论、解决问题
动态测试
实际运行被测试的软件,输入相应的测试数据,检查实际的输出结果是否和预期结
果相—致的过程。
按照是否查看代码划分
黑盒测试:把软件看成—个黑盒子,不管内部逻辑和内部特性,只依据规格说明书
检查程序的功能是否符合功能说明,又称为功能洳试或数据驱动测试
白盒测试:又称为结枃测试或逻辑驱动测试。着重于程序内部结构和算法,不关心
功能和性能指标
灰盒测试:介于白盒和黑盒测试之间,基于程序运行时刻的外部表现同时又结合程
序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结
果的测试技术
四、其他划分
回归测试:对软件新版本测试时,重复执行上一版本使用过的测试用例
在项目周期很紧张的时候,如何开展回归测试?
第一:验证开发人员已经修复的缺陷
第二:测试用例优先级别高的测试用例;(主要的功能)
第三:验证有关联的模块
第四:验证经常岀现问题的模块;(2-8原则)
冒烟测试:冒烟测试的对象是每一个新编译需要正式测试的版本,目的是确认软件
的基本功能正常,可以进行后续的正式测试工作。
随机测试(猴子测试):测试数据是随机产生的,在测试用例之外,只能作为测试
的补充。
敏捷测试(敏捷开发引发)
TDD(测试驱动开发)
软件质量
软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力。
软件质量包括
内部质量:软件内部设计和结构
外部质量:软件外部功能和性能等的体现;
过程质量:软件生产流程是否合理
使用质量:在使用过程中的用户满意度和易用性的表现
软件质量的六大特性
功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力
明确的(显性的需求)隐含的(隐形的需求)
适合性:软件为指定任务和用户目标,提供了一组合适功能的能力
准确性:软件系统提倛给用户的功能是否满足用户对该玏能的精确度要求
互操作性:软件系统和一个或多个周边系统进行信息交互的能力
保密安全性:软件系统保护信息和数据的能力;
I、防止未得到授权的人或系统访问相关的信息或数据
Ⅱ、保证得到授权的人或系统能正常访问相关的信息或数据
不同的系统对于安全性的需求差别很大
常见的安全性测试
1、户验证:登录密码验证、|P地址访问限制等
2、用户权限管理:验证低级别用户是否具有了高级别用户的权限,各级别用户权限都得到了
实现。
3、统数据的保护:对例如系统文件、用户密码文件等进行隐藏、密码验证、内容加密、备份
4、防DOS攻击(拒绝服务)
5、加密、解密∶在计算机通讯中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输
出去,使信息在传输过程中即使被窃取或截获窃取者也不能了解信息的内容,从而保证信息
传输的安全
功能性的依从性遵循相关的标准(国际标准、国家标准、行业标准、企业内部规范等)
约定或法规以及类似规定的能力
可靠性:在特定条件下使用时,软件产品维持性能级别的能力;
成熟性:软件为避免由软件中的错误而导致软件失效的能力
容错性:软件岀现故障或者违反了制定接口的情况,软件规定了维护性能级别的能力
易恢复性:系统失效以后恢复原有功能和性能的能力
①原有能力恢复的程度
②原有能力恢复的速度
易用性:在指定条件下使用,软件产品被理解、学习、使用和吸引用户的能力
易理解∵用户在使用软件系统的过程中,系统交互给用户的信息是否准确、清晰、易懂,
能帮助,用户准确理解系统当前真实的状态,指导其进一步的操作。
易学性:软件系统提供相关的辅助手段,帮助用户学习使用它的能力。
易操作性∶软件使用户能操作和控制它的能力。
效率
时间效率:系统在各业务场景下完成用户指定的业务请求所需的响应时间
资源效率∶系统在各业务场景下完成用户指定的业务请求所消耗的系统资源。如
CPU
使用率、内存使用率、1O,通信带宽使用等
效率的依从性:
维护性
易分析性:是指软件产品诊断软件中的缺陷或失效原因,以及判定待修改的部分的能力。
易改变性:是指软件产品使指定的修改可以被实现的能力
稳定性:是指软件产品避免由于软件修改而造成意外结果的能力。
易测试性:是指软件产品使已修改软件能被确认的能力
可移植性
适应性:软件系统无需做仼何相应变动就能适应不同运行环境
易安装性:易安装性,是指软件产品在指定环境中被安装的能力
共存性:软件系统和在公共环境与其共亨资源的其他系统共存的能力
易替换性∶是指软件产品在环境相同、目的相同的情况下替代另一个指定软件产品的能
力。
可移植性的依从性:遵循相关的标准(国际标准、国家标准、行业标准、企业內部规范
等)约定或法规以及类似规定的能力。
QA即英文 QUALITY ASSURANC的简称,中文意思是质量保证
QC即英文 QUALITY CONTRO的简称,中文意义是质量控制
QC和QA的主要区别:前者是保证产品质量符合规定,后者是建立体系并确保体系按要求运
作,以提供内外部的信任
αC就是测试人员,职责是尽可能早地发现软件的缺陷,并确保缺陷得到修复
QA是流程的监督者,职责是创建和执
改进软件开发过程,并防止软件缺陷发生的标准
和方法
SO:国际标准化组织iso表示光盘的镜像文件
Osl:开放系统互联
IOs:苹果系统
CMMI: Capability Maturity Model Integration(
能力成熟度模型综合
5个成熟度等级分别为
第1级:初始级
第2级:受管理级
第3级:已定义级
第4级:定量管理级
第5级:持续优化级
需求分析
测试需求
测试需求主要解决“测什么”的问题,即指明被测试对象中什么需要测试
测试需求通常是以软件开发
测试需求的特征
1、制定的测试需求项必须是可核实的(可量化);
2、测试需求应指明满足需求的正常的前置条件,同时也要指明不满足需求的是的岀错条件
(包含差错条件
3、测试需求不涉及具体的测试数据(不涉及测试数据)
测试需求分析过程
需求采集:《需求规格说明书》
需求分析:测试要点分析、功能交互分析、质量特性分析、测试
需求评审
二、测试计划
1、为什么要编写测试计划?
避免测试的随意性
上:PMQA产品经理、开发经理、测试经理
中:测试组长、销售人员
下:开发人员、测试人员
2、什么时间编写测试计划
需求分析之后,在整个测试工作过程中,不断修改
3、由谁来编写测试计划
具有丰富经验的项目测试负责人
如何制定好测试计划
认真做好测试资料的搜集整理工作
《项目计划》、《版本计划》
明确测试目标,增强测试计划的实用性
坚持测试的“5w原则,明确内容和过程
5W
why:为什么要进行这些测试
What:测试哪些方面,不同阶段的工作内容
where:相关文档,缺陷的存在位置,测试环境等
When:测试不同阶段的起止时间
who:项目有关人员组成,安排哪些测试人员进行测试
测试的开始和结束条件
开始条件:软件测试在项目启动、需求分析开始时随之启动
结束条件:需求覆盖率(100%、用例执行率(100%)、缺陷遗留率(25%)
达到预期的质量目标
三、测试计划模板
DRAFT:初稿
MODIFY修改版
RELEASE终稿
测试用例设计 test case
软件测试用例包含哪些部分
用例编号(用例1D)
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.