目录
一、软件测试的定义
二、测试的目的
三、软件测试的重要性
四、测试分类
1.按测试阶段
2.按对代码逻辑的关注程度
3.按测试种类
五、缺陷的定义
六、缺陷等级分类
七、测试管理过程
1.测试准备
2.测试计划
3.测试设计
4.测试执行
5.测试总结
八、完整的版本测试举例
九、测试流程
1.研发初期
2.研发中期
3.研发后期
十、测试阶段、类型和执行人员关系
十一、功能测试前的准备
十二、关于测试用例
十三、自由测试
十四、测试常见工具介绍
十五、测试人员需要具备的技能素质
一、软件测试的定义
(1)是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各个阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期结果),并利用这些测试用例去执行程序,以发现程序错误的过程。
(2)是验证程序正确并符合用户需求的过程。
二、测试的目的
(1)发现程序中的错误并进行修正,将软件不工作的风险程度降低到一个可以接受的程度。
(2)最大限度的促使程序满足客户的需求,实现客户的利益。
三、软件测试的重要性
如果没有测试,大量软件BUG、软件缺陷会流失到用户手中,流失进项目维护阶段。随之而来的,便是用户无休止的抱怨、维护人员无休止的救火、维护成本无休止的增加。这简直是软件人员的梦魇!
使用低质量的软件,在运行过程中可能会产生这样那样的问题,可能为使用单位带来造成延误工作或者造成生命财产的损失。而软件测试是为保证软件用户免于遭受损失的最重要的手段。
软件测试的正面重要性
(1)确认软件的质量;
(2)提供信息:比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。
(3)软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。 如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发 过程是高质量的。
四、测试分类
1.按测试阶段
单元测试——对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。(白盒)
集成测试——在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。(白盒+黑盒)
系统测试——对已经集成好的软件系统进行彻底的测试。(黑盒)
确认测试(验收测试)——旨在向软件的购买者展示该软件系统满足其用户的需求。(黑盒)
2.按对代码逻辑的关注程度
白盒测试——基于被测应用程序的内部逻辑的测试,通过语句、分支、路径和条件进行全面覆盖,类似于西医看病,通过X光、CT扫面等手段。主要测试依据是设计文档。
黑盒测试——不是基于内部代码和设计的知识,而是基于需求和功能。主要测试依据是需求文档。
3.按测试种类
功能测试
性能测试
压力测试
兼容性测试
、、、、、
五、缺陷的定义
符合下边 5 个规则之一的才能叫做软件缺陷
(1)软件未达到产品说明书标明的功能。
(2)软件出现了产品说明书指明不应该出现的错误 。
(3)软件功能超出产品说明书指明范围 。
(4)软件未实现产品说明书虽未明确指出但应该实现的目标 。
(5)软件测试员或最终用户认为软件难以理解、不易使用、运行速度缓慢。
六、缺陷等级分类
A类:最严重的
(1)死机、重启、内存泄漏、自动关机
(2)花屏、白屏现象;系统无响应并无法复位
(3)出现数据丢失、数据库被破坏或者损坏用户器件
(4)手机卡不能被识别
(5)按照国家或行业相关标准进行鉴定或认证不能通过的故障
(6)基本功能未实现
(7)客户需求未实现
(8)软件与文档不符
B类:
(1)特定或复杂条件下的概率问题
(2)通讯功能不能正常使用,有概率的出现问题
(3)应用程序自动退出或失效
(4)系统的兼容性不强
(5)屏显问题
(6)功能、效果未达到预期结果,一些设置失效
C类:
主要功能可以正常进行,但仍然存在影响用户其他使用的问题,例如界面错乱、墙纸铃声重复、LOGO显示错误等。
D类:不影响用户使用的问题,但是如果改善了会更完美
(1)界面POP提示时间有点短
(2)保存信息稍慢
(3)有些设置不是很合理
(4)操作流程复杂或者不合理,联系人、日程、T卡内容等数据统计结果不正确
(5)字符串或者提示信息不是很准确,模棱两可
(6)菜单、界面风格不统一
七、测试管理过程
1.测试准备
(1)准备资源,测试数据,搭建测试环境
(2)熟悉系统
(3)相关知识学习
(4)规范的规定
沟通方式
文档规范
组织、角色定义……
2.测试计划
(1)计划中的项目
测试策略制定
测试资源规划
工作量的估计
测试进度规划
风险预警
(2)计划评审
3.测试设计
(1)设计的内容
测试大纲
测试思路
测试用例
辅助工具的开发
(2)设计的评审
4.测试执行
(1)测试问题记录
(2)测试结果
(3)补充、改进测试用例
5.测试总结
八、完整的版本测试举例
软件发布版本后
(1)快速基本功能测试,确保无重大问题。
(2)ReleaseNote验证(对开发解决的问题进行验证)
(3)制定测试策略,发布测试计划
(4)测试人员根据测试计划执行测试用例
(5)测试人员发送测试结果给leader
(6)测试Leasder发送测试报告,报告版本状态给项目经理。
当项目满足无A类问题,B类问题在10个内,即达到量产PV标准测试要发送交管测试报告。
对于ODM项目,以客户确认为主。
九、测试流程
1.研发初期
(1)立项:产品定义书、项目计划书等
(2)制定测试计划、软件规格书
(3)编写软件测试用例、软件预测试
(4)督促软件开发人员完善软件所有功能
(5)执行全面测试并提交BUG进行管理和参考
2.研发中期
(1)软件部发布正式版本后按照测试用例执行软件全面测试
(2)测试人员进行模块交叉测试
(3)及时总结沟通测试中遇到的问题并分析原因
(4)软件稳定后应该及时安排本地和外地的场测
3.研发后期
(1)研发后期针对每个版本的测试都要严格按照测试流程进行测试、并且保证软件测试的全面性,考虑软件整个稳定性
(2)及时了解项目进度以及硬件结构存在的问题
(3)针对客户反馈过来的问题要及时正确的处理
(4)项目结束后做一些总结
十、测试阶段、类型和执行人员关系
十一、功能测试前的准备
(1)需求说明”及相关文档
(2)相关的设计说明(概要设计,详细设计等)
(3)与开发组交流对需求理解的记录(可以是开发人员的一个解释)
(4)已经基本成型的UI(可以有针对性地补充一些用例)
(5)功能说明文档(尽量详细)
简而言之,所有你能得到的项目文档,都尽量拿到。从所得到的资料中,分解出若干小的“功能点”,理解“功能点”,编写相应的测试用例。
十二、关于测试用例
1.测试用例
——测试用例是测试工作的指导,是软件测试必须遵守的准则。更是软件测试质量稳定的根本保障。
——一个测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。一个测试用例应当有完整的信息,如:测试用例ID号,测试用例名字,测试用例的目的,测试条件、输入数据需求、步骤和期望结果。
——测试用例就是将软件测试的行为活动,做一个科学化的组织归纳。
2.测试用例特点
根据系统规格说明书、系统设计文档、测试范围、技术特点、程序结构等设计用例。
测试用例需要有以下特点:
(1)可移植、重复利用
(2)有效性:穷举是不可行的
(3)可管理、扩展
(4)继承性、兼容性
(5)执行效率性
3.良好的测试用例的特征
(1)可以最大程度地找出软件隐藏的缺陷
(2)可以最高效率的找出软件缺陷
(3)可以最大程度地满足测试覆盖要求
(4)既不过分复杂、也不能过分简单
(5)使软件缺陷的表现可以清楚的判定
测试用例包含明确的期望结果
待查的输出结果尽量简单明了
(6)不包含重复、冗余的测试用例
(7)测试用例内容清晰、格式一致、分类组织明确
4.测试用例的作用
(1)作为测试执行的标准,指导测试执行
(2)测试量化管理的基础
(3)提高测试的透明度
(4)降低测试成本
(5)提高团队测试水平的重要条件之一
十三、自由测试
(1)根据对业务流程的熟悉、交易过程的理解进行非常规的操作
(2)经验的积累及总结提炼出具有指导性的测试要点
(3)关注别人提交的缺陷,改进自己的测试方法和思路
(4)针对开发人员的编码习惯,总结容易出错的地方
(5)缺陷回归时的扩展测试
(6)撇开现有的需求,扮演极端用户
(7)重点关注改动较大、缺陷较多的模块
(8)每人每天留1~2个小时做自由测试
十四、测试常用工具介绍
测试环境
JAVA JDK、ADB环境搭建、.Net Framework4.0
下载版本工具
目前针对不同的平台,厂商会给相应的下载工具
高通(Qcom)下载工具:QPST
bug库(缺陷管理工具)
常用的有:ClearQuest、JRIA、Redmine、Bugzilla等
抓取log工具
DDMS、ADB脚本、QXDM
十五、测试人员需要具备的技能素质
(1)熟练地使用QPST等下载工具对软件进行更新
(2)能够熟练地使用bug库,对缺陷进行搜索及生命周期的管理
(3)能够搭建安装测试工具、配置环境
(4)能够熟练地使用ADB抓取logcat、radio、Kernel的log,能够导出所需要的数据库的DB文件,能够使用ADB命令对手机文件在电脑与手机之间进行操作等
(5)能够使用QXDM抓取手机网络端的log
(6)提交bug清晰无歧义
(7)熟练地使用Excel编写测试结果或者测试报告
(8)要对bug有敏锐的洞察能力,不遗漏必现bug
(9)要有很好的沟通能力,能够与开发或者客户沟通