-
软件测试的分类
瀑布模式、敏捷测试、基于脚本大的测试、基于风险的测试、探索式测试等
传统的瀑布模型(传统软件工程学的开发模式,最早出现,)
(1)瀑布模型
项目计划-->需求分析-->软件设计-->程序开发-->软件测试-->集成维护
(每一个阶段都是以上一个阶段的输出做为下一个阶段的输入)
项目计划:制定项目总体的研发计划,确定项目主要的里程碑节点;需要输出项目计划书。
需要分析:明确用户的需求定义,并对定义进行清晰的描述,是充分理解客户需求,详细描述产品功能的一个重要阶段;需要输出产品的需求规格书。
软件设计:根据产品的定义,确定产品的实现方案;包括定义软件与硬件的结构,组件模块的实现方法,接口、界面、数据如何组织,需要输出概要设计、详细设计在内的多份说明书。
程序开发:由开发团队根据需求和设计具体实现产品的功能,根据编程规范编写各类组件和模块,最后输出产品版本。
软件测试:通过独立的测试小组(QA团队)来评估产品是否满足需求的定义,需要输出测试结果、测试报告。
集成维护:产品经过测试后交付给用户,根据用户的使用情况,对产品进行维护,及必要的修改、升级的操作。
瀑布模式的有缺点
优点
1、强调需求、设计的作用
2、前一阶段完成后,只需要关注后续阶段
3、为项目提供了按阶段划分的检查点,里程碑清晰
4、文档规范
缺点
1、难以适应需求的频繁变化
2、项目周期后段才能看到成果
3、强制的里程碑、完成时间点
4、文档工作量大
(2)V模型(使用最广泛)
优点
描述了测试与软件开发过程的对应关系。
强调了软件开发的协作与速度,反应测试活动和分析设计的关系,并且将软件实现和验证有机的结合起来,明确界定测试过程存在不同阶段的,明确了不同测试阶段和研发过程每个阶段的对应关系。
缺点
把测试当做软件编码后的阶段,忽视了测试对需求的分析和验证,对需求与概要的验证要到后期才能进行,不符合软件测试需要尽早进行的感念。
(3)W模型
软件开发过程中,各个阶段测试都参与,测试伴随软件开发的整个开发周期
优点:能尽早的发现软件的缺陷;有利于尽早的发现软件的风险,及早的制定相应的应对方案,加快项目的进度
缺点:需求设计编码还是串行的关系,测试开发保持着一种线性的关系,在上一个阶段完成后才能进行以一个阶段,不能很好的支持迭代场景。
(4)X模型
解决交接与频繁集成周期的问题。
分片段进行测试。
(5)H模型
把软件测试当做一个独立的流程,贯穿在整个软件测试周期当中,与其他流程并发进行。
查看全部 -
一·软件测试的分类
软件测试手段
根据测试对象的可见度:黑盒测试、 白盒测试
根据状态:静态测试、动态测试
执行方式:手工测试、自动化测试
(1)黑盒测试:(系统测试阶段常用)
所谓黑盒测试就是把系统或者软件看成一个不能打开的盒子,在完全不考虑程序内部结构和内部特性下,通过相关暴露出的接口,对程序进行测试。只检查程序的功能是否按照需求规定,正常使用;程序是否能适当的接受输入数据,并产生正确的输出信息;着眼于程序外部结构,不考虑内部逻辑,一般针对软件外面的界面,可见的功能;更多从用户的视角,通过不同数据事件,来驱动我们的系统,通过输出结果进行判断;
优点:
1.容易实施,不需要关注内部的实现
2.更贴近用户的使用角度
缺点:
1.测试覆盖率较低,一般只能覆盖到代码量的不到40%(不可见不了解内部)
2.针对黑盒的自动化测试,复用率较低,维护成本较高。因:产品活动增/删(更新)针对功能,活动经常变
黑盒测试主要测试什么
1.是否有不正确或遗漏的功能?(软件的实现上有没有实现的不正确或者没有实现的功能)
2.在接口上,输入系统是否能正确的接受?系统能否输出正确的结果?(输入到输出系统是否能满足预期的要求)
3.是否有数据结构错误或外部信息(例如数据文件)访问错误?(系统对数据的处理和访问上有没有问题)
4.性能上是否能够满足要求?(黑盒测试重要的一方面)
黑盒测试的主要设计方法
1.等价类划分法:针对程序的输入条件进行分类,输入典型的数据
2.边界值分析法:特殊的边界数据,测试代码的边界状态
3.错误推测法:基于经验,直觉,判断错误的地方;特殊字符,文件不存在
4.因果图法:根据输入输出看做原因和结果,形成因果图。(因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。)
5.正交试验分析法:选出代表性的数据,作为输入数据
6.状态迁移图法:软件审批的过程,各种状态迁移
7.流程分析法:处理程序逻辑执行的路径来设计测试用例
(2)白盒测试:逻辑覆盖率来衡量完整性
测试人员对内部的结构非常了解,逻辑结构透明,白盒测试又称为结构化测试和透明盒测试,针对逻辑结构测试用例主要的逻辑单位:
语句覆盖:保证程序每条语句执行一次
分支(判定):保证每条分支至少执行一次
条件:条件表达式,至少计算一次
条件组合:覆盖所以不同条件下的组合情况
路径:程序中,每一条可能的路径至少执行一次
优点
1.迫使测试人员去仔细思考软件的实现,理解原理(应为透明,对系统深入了解)
2.可以检测代码中的每条分支和路径
3.揭示隐藏在代码中的错误
4.对代码的测试比较彻底
缺点
1.昂贵。(较高的覆盖率)
2.无法检测代码中遗漏的路径和数据敏感性错误(少写)
3.不能直接验证需求的正确性(根据代码来的)主要测试方法:
代码检测法:多面 代码审查
静态结构分析法:测试工具,源代码的内部结构分析
静态质量度量法:标准的度量模型如ios质量标准
逻辑覆盖法:6种逻辑,语句 ,分支,条件,条件组合,路径,判定
基本路径测试法:通过分析复杂度,选出基本可执行路径的集合。程序控制流图,描述程序控制流
(3)灰盒测试
介于黑、白盒测试之间的,关注输出对于输入的正确性,同时也关注内部表现(结合白黑盒测试,在系统组建这层来评价应用软件设计符合需求的情况)
(4)静态测试
定义:静态测试是指无须执行被测程序,而是通过评审软件文档或代码,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编写的程序的不足之处,减少错误出现的概率;(通过静态的审查代码或者文档来发现程序的不足)静态测试的方式 (不正式到正式)
1.互审 程序员相互检查对方的代码
2.走查 小组一起来集体来
3.会议
动态测试(黑盒设计的一些方法主要是动态测试的一些方法)
定义:动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等。举例(外观车漆又没划伤,轮胎胎压足不足,油量正常不正常属于静态测试,汽车发动听听引擎声音,开车感受乘车舒适度可操控性属于动态测试)
手工测试
由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适用针对深度的测试和强调主观判断的测试。(充分利用主观能动性)
众包测试,探索式测试
自动化测试
使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。
单元测试、接口测试、性能测试等查看全部 -
3-3 安全测试
安全测试:对软件产品进行测试以保证其符合产品安全需求和质量标准
渗透测试:通过模拟对软件系统的恶意攻击行为来评估系统安全性的一种测试
OWASP:Open Web Application Security Project 开放网络应用安全项目
下面博主演示了访问OWASP官网
OWASP Top Ten Project 2013
1.Injection 注入脚本漏洞使用户访问到不该访问的数据的目的
2.Broken Authentication and Session Management 失效的身份认证和会话管理 会话劫持漏洞
3.Cross—Site Scripting(XSS)跨站脚本
4.Insecure Direct Object References 不安全的对象直接引用 参数的保护
5.Security Misconfiguration 安全配置类错误
6.Sensitive Data Exposure 敏感信息泄露 信息传递没有对关键信息进行加密
7.Missing Function Level Access Control 功能级别访问控制缺失 比如访问网站可以访问到用户没有权限到达的地方
8.Cross-Site Function Level Access Control(CSRF) 跨站请求伪造
9.Using Components with Known Vulnerabilities 使用了已知有漏洞的组件
10.Unvalidated Redirects adn Forwards 未被验证的重定向和转发 (钓鱼网站)
安全测试工具各种针对的点:
Appscan,Webinspect,W3AF:web应用
Nessus:服务器,主机
Nmap:端口开放
MetaSploit:攻击软件,渗透测试
WebScarab:代理劫持
Fortify:针对白盒,源码中的安全问题
查看全部 -
软件测试的重要性,例举一些软件故障完成的损失惨重。例如千年虫,日本证券公司,AT-T公司断网
软件测试概要
介绍软件测试来源以及相关定义
软件测试不等于程序测试,他设计到方方面面。
重点讲述软件测试的五大要素,其中最重要的是质量,其他四大要素都是为质量服务跟铺垫的。其次人是人力。以及讲述软件测试必须遵守的七个原则。查看全部 -
软件测试概念思维导图
查看全部 -
A/B测试的主流工具
查看全部 -
A/B测试的基本概念
查看全部 -
软件上冒烟测试用来确认代码的更改会不会造成其他的错误,可与回归测试对比
查看全部 -
指在板卡开发完成后会通电进行测试,如果没有冒烟就是没有问题
查看全部 -
monkey测试的基本概念
查看全部 -
回归测试的基本概念,回归测试最适合自动化测试,应该成为自动化测试的第一优先级
查看全部 -
无障碍测试的基本概念
查看全部 -
部署测试的概念和测试逻辑 部署测试一般是软件测试的第一步操作
查看全部 -
本地化测试的基本概念和测试逻辑
查看全部 -
可靠性测试,软件方面主要是软件的功能,性能,硬件方面主要是硬件所处的环境等针对性测试
查看全部
举报