软件测试的分类
一、测试设计技术
1、冒烟测试是在软件开发过程中的一种针对软件版本包的快速基本功能验证策略,是对软件 基本功能进行确认验证的手段,并非对软件版本包的深入测试
冒烟测试也是针对软件版 本包进行详细测试之前的预测试,执行冒烟测试的主要目的是快速验证软件基本功能是否 有缺陷
冒烟测试过程中,需要注意的是:开发协同 注重效率 评估用例
2、 回归测试:
①过一段时间以后再回过头来对以前修复过的缺陷重新进行测试,看该缺陷是否会重新出现
②修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误
③ 回归测试贯穿整个测试活动,且占据很大的工作量
④选择回归测试策略应该兼顾效率和有效性两个方面。
3、 常用的选择回归测试的方式包括:
再测试全部用例
基于风险选择测试:选择最重要、最常用、存在风险的功能进行测试
基于操作剖面选择测试:操作剖面是操作的集合以及各种使用方式的出现概率
再测试修改的部分
二、常见测试方法
1、功能测试:对产品的各功能进行验证,根据功能测试用例,逐项测试,检查 产品是否达到用户的要求
2、性能测试:观察系统在一个给定的环境和场景中的性能表现是否与预期目标 一致,评判系统是否存在性能缺陷,并根据测试结果识别性能瓶颈,改善系统性 能的完整的过程。
负载测试:在一定的软件、硬件及网络环境下,通过改变系统负载方式、增加负 载等来发现系统中所存在的性能问题。用于确定系统所能承载的最大用户数、最 佳用户数。关注不同用户数下的系统响应时间及服务器的资源利用率。
压力测试:在一定的软件、硬件及网络环境下,通过模拟大量的虚拟用户向服务 器产生负载,使服务器的资源处于极限状态下长时间连续运行。目的测试服务器 在高负载情况下是否能够稳定工作,挖掘系统最脆弱的位置。
稳定性测试(可靠性测试):在一定的软件、硬件及网络环境下,模拟一定数量 虚拟用户运行一种或多种业务,长时间的运行(7*24小时)系统。目的是检测系统 在长时间运行下的稳定性和性能相关指标是否符合预期。
3、易用性测试:指用户使用软件时是否感觉方便,也称为用户体验测试
①安装易用性 ② 功能易用性 ③ 界面易用性 https://baike.baidu.com/item/易用性测试 ④ 辅助系统易用性
4、界面测试:
测试用户界面的布局是否合理、整体风格是否一致、各个控件的 放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单 易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是 否美观,文字、图片组合是否完美等
优秀界面的7要素
符合标准和规范:最重要的用户界面要素是软件符合现行的标准和规范
苹果的标准在Addison-Wesley出版的《Macintosh Human Interface Guidelines》
微软的标准在Microsoft Press出版的《Microsoft Windows User Experience》
平台也可能没有标准,也许测试的软件就是平台本身。 在这种情况下, 设计小组可能成为软件易用性标准的创立者
① 直观性
用户界面是否洁净、不唐突、不拥挤
UI的组织和布局合理吗?
有多余功能吗?
帮助系统有效吗?
② 一致性
被测试的软件本身必须与其他软件保持一致性
同一个程序中的相同操作更要保持一致
如果软件或者平台有一个标准,就要遵守它。如果没有,就要注意软件的 特性,确保相似的操作以相似的方式进行(快捷键和菜单选项 术语和命名 )
③ 灵活性
用户喜欢灵活选择做什么和怎样做
为了在Word中插入文字,可以用键盘输入、粘贴、从文件中读入、作为对 象插入等方式,用户可以决定用哪种方式来操作
多种视图的选择
④舒适性
软件应该用起来舒适,而不应该为用户工作制造障碍和困难
严肃的商业软件使用绚丽的色彩和音效
删除文件之前没有给出警告信息
读取文件缓慢,没有提示用户正在操作或反馈操作时间
⑤正确性
测试正确性,就是测试界面是否做了该做的事:错别字 语义表达是否正确 WYSIWYG(所见即所得)
⑥实用性
优秀用户界面的最后一个要素是实用性
软件的某项特性是否实用?
该特性对软件是否具有实际价值?
它们有助于用户执行软件设计的功能吗?
测试目标:通过用户界面 (UI) 测试来核实用户与软件的交互。UI测试的目标在于确保用户 界面向用户提供了适当的访问和浏览测试对象功能的操作
5、安装测试
确保该软件在正常情况和异常情况的不同条件下都能进行安装。 https://baike.baidu.com/item/安装测试
①安装:首次安装、重复安装 ② 卸载 ③ 升级
6、文档测试:检验各种文档的完整性、正确性、一致性、易理解性、易浏览性
软件产品的文档分为三大类:①开发文档 ② 用户文档 ③管理文档
7、兼容性测试
指检查软件之间能否正确地进行交互和共享信息。软件兼容性 测试工作的目标是保证软件按照用户期望的方式进行交互
兼容性分类
向前兼容与向后兼容:向前兼容是指可以使用软件的未来版本,向后兼容是指可 以使用软件的以前版本
硬件兼容:与整机兼容、与外设兼容
软件兼容:操作系统/平台、应用软件之间的兼容、不同浏览器的兼容、数据库的 兼容、软硬件配合兼容
数据兼容:不同版本间的数据兼容、不同软件间的数据兼容
8、安全测试
指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程
安全性测试方法
功能验证:权限管理、加密、认证等
漏洞扫描:使用工具
模拟攻击试验:跨站攻击
侦听技术:在数据通信或数据交互过程中,对数据进行截取分析的过程
9、恢复测试
主要检查系统的容错能力。当系统出错时,能否在指定时间间隔 内修正错误并重新启动系统。
应该检验以下内容:
自动恢复:重新初始化、数据恢复以及重新启动是否正确
人工恢复:还需估测平均修复时间,确定其是否在可接受的范围内
三、软件测试计划
1、为什么要编写测试计划?
领导能够根据测试计划做宏观调控,进行相应资源配置等
测试人员能够了解整个项目测试情况,以及项目测试不同阶段所要进行的工作等
便于其他人员了解测试人员的工作内容,进行有关配合工作
2、什么时间开始编写测试计划?
测试需求分析前总体测试计划,测试需求分析后详细编写测试计划
3、测试计划编写六大要素?
Why -为什么要进行这些测试
What -测试哪些方面,不同阶段的工作内容
When -测试不同阶段的起始时间
Where-相应的文档、缺陷的存放位置、测试环境等
Who- 项目相关人员组成,安排哪些测试人员测试
How-如何去做,使用哪些测试工具以及测试方法进行测试
四、软件测试报告
1、什么是测试报告?
测试报告是测试阶段最后的文档产出物
测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进 行分析,为纠正软件中存在的质量问题提供依据,同时为软件验收和 交付打下基础
2、测试报告的元素?
引言(目的,背景,缩略语,参考文献);
测试概要(测试方法、范围、测试环境、工具);
测试结果与缺陷分析(功能、性能);
测试结论与建议(项目概况、测试时间、测试情况、结论性汇总);
附录(缺陷统计);
五、软件测试管理
1、软件测试管理及工具
配置管理:通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范 的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开 发者在软件生命周期中各个阶段都能得到精确的产品配置
配置管理工具是指支持完成配置项标识、版本控制、变化控制、审计和状 态统计等任务的工具,如cvs、vss、Harvest、ClearCase等
禅道的使用: 需求管理 用例管理 bug管理