一、软件测试质量
质量属性分为功能性和非功能性。
软件质量模型:一组特性及特性之间的关系,他提供规定质量需求和评价质量的基础
成熟性:软件本身
容错性:外部对软件
一、软件测试类型
1.功能测试:根据产品的需求规格说明书和测试需求列表,验证产品的功能实现是否符合产品的需求规格
目标:功能测试主要是为了发现以下几类错误:
ü 是否有不正确的或遗忘了的功能
ü 功能实现是否满足用户需求和系统设计的隐藏需求
ü 输入能否正确接收?能否正确输出结果?
2.性能测试
目标是度量系统相对于预定义目标的差距
性能测试必须要有工具支持,Loadrunner, Jmeter(测接口)
性能测试收集的信息
ü CPU使用情况
ü IO使用情况
ü 内存使用情况
ü 信道使用情况
ü 每个模块执行时间百分比
ü 一个模块等待IO完工的百分比
ü 指令随时间的跟踪路径
ü 每一组指令页换入换出的次数
ü 系统反应时间
ü 系统吞吐量
ü 所有主要指令的单元执行时间
3.负载测试(性能测试中的一种)
负载测试是超过被测对象标准性能负荷指标下,验证系统的负载承受能力。并要求超负荷情况下,依然正常实现业务功能。
通过不断对被测对象施加负荷,观察被测对象在不同负载下的性能表现。
4.压力测试(性能测试一种)关注how fast
目的是调查系统在其资源超负荷的情况下的表现
目标是通过极限测试方法,发现系统在极限或恶劣环境中自我保护能力。找出最大极限点。验证系统的可靠性,找到系统薄弱环节。
5.容量测试how many
目的是使系统承受超额的数据容量来发现它是否能够正确处理。关注多少大批量数据是否能够同时正确的处理。
6.安全性测试
验证集成在系统内的保护机制是否能够在实际中保护系统不受到非法侵入。用来保证系统本身数据的完整性和保密性。
安全性测试内容:
ü 系统登录
ü 用户管理
ü 防火墙
ü 系统数据
ü WEB安全性,如WEB的加密,解密,数字签名等
ü 数据库的安全性
ü 内部通信协议
ü 系统防病毒测试
7.GUI测试
针对软件系统GUI界面进行的测试
主要包括两方面:界面实现与界面设计的吻合情况;确认界面处理的正确性(不要跳转另外一个界面)。
测试工具:QTP, SilkTest.....
测试对象:
ü 简单界面元素:功能和属性相对比较单一的界面区域,即各种控件(文本框之类的)
ü 组合类界面元素:比如工具栏、组合框、表格、菜单栏等
ü 完整界面(窗口):包括各种对话框、单文档窗口等
8.可用性测试
9.安装卸载测试
测试范畴更多涉及跟用户有交互的所有功能和子系统
三、软件测试方法
1.白盒测试
依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体功能实现情况
是基于程序的逻辑驱动测试
白盒测试会用到静态分析和动态分析技术
静态分析:控制流分析、数据流分析、信息流分析(根据代码画出控制流程图)
动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等
逻辑覆盖方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。
2.黑盒测试:把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部实现。又可以称为基于规格的测试。
常见的黑盒测试类型:
ü 功能性测试
ü 容量测试
ü 负载测试
ü 恢复性测试
黑盒测试的特点:
ü 对于更大的代码单元来说,比白盒测试效率要高
ü 测试人员不需要了解实现的细节,包括特定的编程语言
ü 从用户的视角进行测试,容易被大家接受和理解
ü 有助于暴露任何规格不一致或有歧义的问题
四、软件测试流程
l 测试计划阶段 -- 测试计划(时间安排,哪个人负责哪个模块)生成测试计划文档
l 测试设计阶段 -- 测试方案(指导后续每个人如何测试工作,采用哪些测试方法,跟技术相关)
l 测试实现阶段 -- 测试用例、测试规程
l 测试执行阶段 -- 测试报告(以及缺陷报告输出)
主要的测试文档:
ü 测试计划
ü 测试方案
ü 测试用例
ü 测试规程
ü 测试报告
ü 测试日报
五、软件测试与QA的区别
1.从性质上看:测试属于技术的工作,QA属于管理的工作
2.从对象上看:测试的对象是软件研发产品,大多数工作是对研发领域的检验。QA的对象是整个软件过程,覆盖各个领域
3.从手段上看:测试以事后检查为主,QA强调的是缺陷预防(通过审计阶段检查工作成果是不是符合规范)
QA:quality assurance质量保证
QC:quality control质量控制
QM:quality manage质量管理