软件测试方法
01软件测试概述
- 软件和软件测试
- 软件的分类
- 缺陷的由来和定义
- 软件未实现产品说明要求的功能
- 软件出现了产品说明书指明不应该出现的功能
- 软件实现了产品说明书中未提到的功能
- 软件未实现产品说明书虽未提及但应该实现的目标
- 软件难以理解,不易使用,运行缓慢或者最终用户用户体验不好
- 所有不满足需求或超出需求的都是缺陷
- 软件测试的由来和发展
- 软件测试的定义
- 正向思维的定义
- 出发点 : 使自己确信产品是能够正常工作的评价一个程序和系统特性或能力并确定是否能达到预期结果
- 反向思维的定义
- 出发点 : 测试是为了发现错误而执行一个程序或系统的过程
- 测试是为证明程序有错误,而不是证明程序五错误
- 一个好的测试用例在于它能发现以前未发现的错误
- 一个成功的测试是发现了以前未发现的错误的测试
- IEEE定义的软件测试
- 在规定条件下运行系统或构件的过程:观察和记录记过,并对系统或构件的某些方面给出评价
- 分析软件项目的过程 : 检查现有状况和所需状况之间的不同,并苹评估软件项目的特性
- 广义的软件测试
- 软件测试是对软件形成过程中的所有工作产品进行测试,而不仅仅是对程序的运行进行测试
- 验证 :通过检查和提供客观证据来证实指定的需要是否满足
- 确认 : 通过检查和提供客观证据来证实特定目的的功能或应用是否已经实现
- 软件测试的目的
- 测试和调试的区别
- 测试是从已知的条件开始,使用预先定义的过程,并且有预知的结果
- 调试是从未知的条件开始,结束的过程可能不可估计
- 测试是有计划的,可以预先制定测试用例和过程,工作进度可以度量
- 描述调试的过程或持续时间相对比较困难
- 测试对象包括软件开发过程中的文档,数据以及代码,
- 调试的对象一般是指代码
- 软件测试的对象
- 软件的定义
- 程序 = 数据+ 文档
- 软件测试贯穿于整个软件生命周期中
- 文档
- 单元测试
- 集成测试
- 确认测试
- 系统测试
- 验收测试
- 正向思维的定义
- 软件的典型错误
- 对软件测试的误解
02软件生命周期和测试过程模型
03软件测试分类
04测试需求及其获取
05评审
06用例和设计方法
-
测试用例概述
- 设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序锁设计的预期结果
- 若程序在这种情况下不能正常运行,而且这种问题重复发生,就表示已经册数软件有缺陷
- 软件测试工程师取得新的测试版本后,必须利用同一一个用例来测试这个问题,确保该问题已经修复完成
-
测试用例的特征
- 有效性 : 测试用例是测试人员测试过程中的重要参考依据
- 可重复性 :良好的测试用例具有重复使的特性,使得测试过程事半功倍,提高测试效率
- 易组织性:
- 可评估性:
- 可管理性:
-
测试用例模板和实战
测试需求分析(网易登录)
需求编号 功能点名称 需求描述 需求拆分 测试类型 测试要点 测试负责人 优先级 REQ_163_login_01 邮件地址 1.内容:字母、数字下划线
2.长度:[6,18]
3.约束: 字母开头,
不能为空输入字母
数字
下划线正向 考虑要点:
大小写字母
半全角字母
半全角数字REQ_163_login_02 输入
非数字
字母
下划线反向 如输入
特殊符号
中文等REQ_163_login_03 输入
[6,18]长度正向 REQ_163_login_04 小于6 反向 REQ_163_login_05 大于18 反向 REQ_163_login_06 字母开头 正向 REQ_163_login_07 非字母开头 反向 REQ_163_login_08 输入空 反向 测试用例
测试用例编号 需求编号 依赖用例 测试标题 测试步骤 输入数据 预期结果 测试结果 是否通过 CASE_163_login_01 REQ_163_login_01 无 邮件地址
有效值1.打开浏览器
输入地址:http://…
2.在邮件地址输入:A16648bsdff
3.鼠标释放焦点检查提示信息A16648bsdff 提示信息:
恭喜,该邮箱可注册CASE_163_login_02 REQ_163_login_02 无 邮箱地址无效值 1.打开浏览器
输入地址:http://…
2.在邮件地址输入:A%%16648bsdff
3.鼠标释放焦点检查提示信息A%%16648bsdff 提示信息:
邮箱地址由数字,字母,下划线… -
用例编写注意事项
-
黑盒测试用例设计方法
- 测试数据选择
- 等价类划分法
- 把程序的输入域划分成若干部分,然后从每个部分中选取少量代表性数据作为测试用例
- 每一类的代表性数据在测试中的作用等价于这一类中的其他值,若果某一类中的一个例子发现了错误.这一等价类中的其他例子也能发现同样的错误,反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误
- 确定等价类的原则
- 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类
- 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
- 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类
- 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
- 在确知已花费的等价类中,个元素在程序处理中的方式不同的情况下,则应再讲该等价类进一步的划分为更小的等价类
- 边界值分析法
- 等价类划分法
- 测试步骤设计
- 因果图法
- 判定表法
- 正交分析法
- 功能图法
- 场景法
- 测试数据选择
07Web测试
- Web功能测试
- Web概述
- 链接测试
- 测试重点
- 链接是否正确
- 链接页面是否存在
- 是否有孤立的页面(没有链接指向的页面)
- 测试工具
- 网站死链接查询工具(xenu)
- 不能检测由JS生成的链接只检查链接是否有效,不检查是否正确只支持Windows操作系统
- 网站死链接查询工具(xenu)
- 测试重点
- 表单测试
- 表单(Form)是指网页上用于输入和选择信息的文本框、列表框和其他值域元素的组合,实现用户和Web应用系统的交互,当用户给Web应用洗头工提交信息时,需要使用表单操作,如用户注册,登录,信息提交,查询等
- 测试重点
- 表单控件的正确性
- 提交信息的完整性正确性
- 是否有错误处理
- Cookie测试
- Cookie通常用户信息,记录用户状态
- 使用Cookie技术,当用户使用web应用系统时,能够在访问者的机器上创建一个叫Cookiede的文件,把部分信息(访问过的页面、登录用户名、密码等)写进去,来标识用户状态,如果该用户下次再访问这个Web应用系统,就能读出这个文件里面的内容,正确标识用户信息
- 如果Web应用系统使用了Cookie,必须检查Cookie是否能正常工作,是否按预定的时间进行保存内容
- 设计语言测试
- 在Web应用系统开发初始,根据软件工程的要求用文档的形式确定Web应用系统使用哪个版本的HTML标准,允许使用何种脚本语言及版本,允许使用何种控件,这样可以有效的避免Web应用系统开发过程中出现设计语言问题
- Web性能测试
- 速度测试
- 对于最终的Web应用系统用户而言,最关心的性能问题是访问Web应用系统页面时,多长时间才能显示出来所需要的页面
- 通常情况下,响应时间不超过5秒
- 有些Web应用系统有超时限制,如果响应时间太慢,用户可能还没来得及浏览内容,就需要重新登录了
- 影响响应时间的原因有很多
- 应用程序服务器需要从数据库的大量数据中检索信息
- 服务器硬件影响(cpu、内存)
- 访问页面的文件大小
- 网络带宽
- 负载测试
- 负载测试是为了测量Web应用系统在一定负载情况下的系统性能,通常得出的结论是Web应用系统在一定的硬件条件下可以支持的并发用户数目或者单位时间数据(或事物)的吞吐量
- 在进行负载测试前,需要定义标准用户(活动用户)的概念,定义执行典型的系统流程,定义负载测试执行总时间,定义抓取哪些事物的平均响应时间,定义用户可以接受的平均响应时间(通常为5秒)
- 测试时,增加用户数量,平均响应时间就会增加,当达到用户可以接受达的平均响应时间这个临界点,即是次系统可以支持的并发用户数
- 压力测试
- 对Web系统进程压力测试,类似于普通机械、电子产品进行定位破坏性试验,方法时实际破坏Web应用系统,测试系统的反应
- 压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃,崩溃以后会怎么样
- 在Web应用系统性能测试过程中,常常将压力测试和负载测试结合起来,在负载测试的基础上,增大负载量,直到系统崩溃
- 速度测试
- Web安全性测试
- 由于数据库安全性导致的Web应用系统安全性问题
- Access数据库文件被下载
- 用户重要信息没有经过加密而存在数据库中
- 确认操作系统安全性,避免因操作系统漏洞导致Web应用程序的安全性问题
- Web应用系统多采用登录的方式
- 确保应用系统实际应用中可修改默认管理账号和密码
- 用户名和密码设置要求 (长度、大小写敏感、复杂度)
- 允许错误登录的次数
- 是否可以不登录而直接浏览某个页面
- 保证日志文件记录了Web应用系统的主要操作过程,并可根据日志文案追查到系统使用情况;同时还需要保证日志文件本身的安全性、完整性,防止被入侵者获取,删除
- 当Web应用系统采用了SSL等加密技术后,需要确认加密、解密后信息传递的正确性和完整性
- 需要确认Web应用系统是否有超时设置,如有,则保证在超时设置时间内,如果未操作Web应用系统,当再次访问系统,需要重新登录
- 由于数据库安全性导致的Web应用系统安全性问题
- Web配置兼容性测试
- 服务器端配置和兼容性测试内容
- Web服务器
- 数据库服务器
- 防火墙
- 操作系统
- 硬件兼容性
- 客户端配置和兼容性测试内容
- 浏览器
- 小型防火墙
- 操作系统
- 硬件兼容性
- 服务器端配置和兼容性测试内容
- Web易用性测试
- 有效性 : 用户完成特定任务和达到特定目标时所具有的正确和完整程度
- 效率 : 用户完成任务的正确和完整程度与所使用资源(如时间)之间的比率
- 满意度 :用户在使用产品过程中所感受到的主管满意和接收程度
- 易用性测试可以从下面几个方面考虑
- 能否成功的完成一个任务
- 对于普通用户,完成典型任务需要多长时间
- 完成典型任务需要访问的页面数
- 系统是否提供了层次结构明确、表达清楚的导航功能
- 对整个系统同的感觉如何 (形式)
- 信息是否正确、精确 (内容)
- 帮助系统是否准确并且容易使用
- 系统是否提供搜素、网站地图等功能
- 页面下载时间用户能否接受
08缺陷和缺陷报告
-
缺陷概述
-
缺陷的定义
- 软件未实现产品说明书中要求的功能
- 软件出现了产品说明书中指明不应该出现的功能
- 软件实现了产品说明书中未提到的功能
- 软件未实现产品说明书虽未明确提及但应该实现的目标
- 软件难以理解、不易使用、运行缓慢或(从测试角度看)最终用户会认为不好
-
缺陷的属性
属性名称 描述 缺陷类型(type) 缺陷类型是根据缺陷的孜然属性划分的缺陷种类 缺陷严重程度(Severity) 缺陷严重程度是指因缺陷引起的故障对软件产品的影响程度 缺陷优先级(Priority) 缺陷的优先级指缺陷必须被修复的紧急程度 缺陷状态(Status) 缺陷状态指缺陷通过一个跟踪修复过程的进展情况 缺陷起源(Origin) 缺陷起源指引起的故障或事件第一次被检查到的阶段 缺陷原因(Source) 缺陷来源引起缺陷的原因 缺陷根源(Root Cause) 缺陷根源指发生错误的根本因素
-
-
缺陷的生命周期
-
缺陷的识别和描述
- 缺陷的识别
- 通过测试用例中的预期结果进行识别
- 通过需求规格说明书进行识别
- 通过用户手册及其他文档进行识别
- 通过同行业相类似成熟的商业软件来识别
- 通过和开发人员的沟通进行识别
- 通过和有经验的测试人员沟通进行识别
- 参照同行业隐式需需求进行识别
- 缺陷的记录
- 缺陷描述时的准则
- 缺陷的识别
-
缺陷报告
09测试计划
511751078)]
-
缺陷的识别和描述
- 缺陷的识别
- 通过测试用例中的预期结果进行识别
- 通过需求规格说明书进行识别
- 通过用户手册及其他文档进行识别
- 通过同行业相类似成熟的商业软件来识别
- 通过和开发人员的沟通进行识别
- 通过和有经验的测试人员沟通进行识别
- 参照同行业隐式需需求进行识别
- 缺陷的记录
- 缺陷描述时的准则
- 缺陷的识别
-
缺陷报告