系统测试(System Testing)是将已经集成好的软件系统,做为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其余元素结合在一块儿,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。数据库
系统测试的目的在于经过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方,以验证软件系统的功能和性能知足指定的要求。缓存
一、真实环境:测出的结果比较真实,可是成本高。安全
二、仿真环境:成本低,可重复使用;可是结果不真实。服务器
针对必定的质量特性,采用必定的测试方法,叫测试类型。测试类型能够分为如下几种:微信
范例:测试手机是否有打电话,发短信功能。
功能测试主要是根据需求规格说明书和测试需求列表,验证产品的功能实现是否符合产品的需求规格。网络
功能测试的质量特性是:功能特性。工具
功能测试的目标就是发现如下四类错误:性能
(1)是否有不正确或遗漏的功能。 (2)功能实现是否知足用户需求和系统设计的隐藏需求。 (3)可否正确的接受输入,可否正确的输出结果。 (4)功能是否有冗余。
功能测试的要点:学习
(1)考虑用户是在什么状况下如何使用该功能的,好比网络断掉的时候访问网站。 (2)考虑用户对多个功能的组合应用。 (3)对于服务器软件,要考虑多用户同时访问、操做的状况,须要检查用户的同时使用是否会致使功能的失效。
功能测试的过程:执行、比较。测试
范例:手机发短信的功能是否正确,对方可否成功接收短信,短信发送的时间效率,短信功能占用的内存空间大小等等。
性能测试是用来测试软件在集成系统中的运行性能的,性能测试能够发生在测试过程的全部步骤中,即便是在单元层,一个单独的模块的性能也可使用白盒测试开进行评估,可是,只有当整个系统的全部成分都集成到一块儿以后,才能检查一个系统的真正性能。
性能测试的质量特性是:效率特性、稳定特性、可靠特性。
性能指标:
(1)硬件指标。
CPU的占用率,硬盘
(2)软件指标。
系统的缓存、主要内存使用状况,系统吞吐量...
(3)时间指标。
咱们的目标是在10M带宽下,QQ登陆的时间为5秒(效率的时间特性),对CPU的占用不能超过200M(效率的资源利用性)
(4)成功率指标。
性能测试的要点:
(1)验证系统实现的性能是否与性能需求彻底一致。 (2)检测系统实现的具体性能到底怎样。
性能测试的过程:
(1)设定性能指标。 (2)执行。 (3)分析。 (4)优化。
压力测试的目的是调查系统在其资源超负荷的状况下的表现,尤为感兴趣的是这些对系统的处理时间有什么影响。
压力测试能够分为两种:一种是稳定性压力测试;另一种是破坏性压力测试。
(1)稳定性压力测试:长时间运行,系统是否还能知足客户的需求。
例如:咱们将电脑连续一周不关机,检查系统的稳定性会不会变弱,效率会不会降低。 例如:手机保持通话一天,检查手机会不会死机,是否还能进行正常通话。
(2)破坏性压力测试:在远超过客户需求的状况下,测试极限状况下,有无不能容忍的错误。
例如:客户要求,能够容许20000我的在同一时间内在微信上使用发红包功能,咱们就能够测试在同一时间内50000我的可否发红包,能够发送不成功,可是绝对不能容许,在从银行卡里扣除钱以后,对方没有收到红包,可是钱却没有返回。
压力测试的要点:要想作到压力测试,必须将极限状况模拟出来,而后再在该极限状况下进行测试,看系统性能如何。
范例:手机ROOT后,在手机后天运行不一样的软件数量,来比较手机性能的差别。
承载的压力在不一样负载状况下的一个对比。
范例:手机和电脑链接,进行数据传输,检查手机可以存储数据的最大值,以及此时性能的表现。 范例:不停的拍照片,直到手机相册不能存储为止,检验相册的最大容量。
容量测试的目的是使系统承受超额的数据容量来发现它是否可以处理的数据容量。
容量测试的要点:容量测试关键是在于测试一个最大值,能打开的最大文件大小,能保存的最大数据量等等,只要是系统中对于用户而言很是重要的最大值均可以做为容量测试的对象。
范例:锁屏界面,若是屡次解锁不正确,应该锁定15分钟或者固定时间。 范例:登陆手机QQ,输入错误密码,检查是否依然能够登陆成功,若是能够成功登陆,则安全性存在问题。
质量特性:安全性。
目的:经过模拟攻击来寻找安全缺陷,以提升安全性质量。
指标:
(1)环境安全
好比:对硬件系统进行的破坏性测试:植入木马、病毒等,检查系统系统是否可以启用安全机制,消除这些隐患。
(2)产品安全
好比被测产品会不会被破解。
(3)权限安全
*有用户名和密码,则能够作该权限指定的事情。 *没有用户名和密码,则不能够作该权限指定的事情。 *权限指定是否分配正确。
(4)信息安全
当咱们打开网页时:检查是否由http转向https,也就是是否进行了加密处理。
范例:使用各个控件的功能,是否易用,GUI界面是否美观。
质量特性:易用性。
缺陷:可优化缺陷。
被测对象:
(1)界面中的简单元素。 (2)元素的组合。 (3)窗口。
测试点:
(1)总体性。例如:界面的显示。 (2)文字。 (3)窗口。 (4)窗口中的元素。例如:控件的功能。 (5)视觉、各类感知方式。
范例:运行手机微信,打开发红包功能,是否很容易学习和操做,运行过程是否复杂繁琐,帮助文档是否清晰易懂,提示信息是否正确。
可用性测试(Usability Testing)和可操做性测试(Operate Testing)有很大类似性,它们都是检验用户在理解和使用系统方面到底有多好,这包括系统功能,帮助文本和过程等等,以保证用户可以温馨的和系统进行交互,在实际测试过程当中,每每把这二者放到一块儿进行考虑,不多严格区别这二者之间的关系。
测试对象:
(1)产品功能。 (2)安装包。 (3)帮助文档。
测试点:
(1)过度复杂的功能或指令。 (2)困难的安装过程。 (3)帮助是否准确易懂。 (4)提示是否准确易懂。
范例:在手机上安装微信软件,安装包文件是否齐全,安装过程是否正确,若是须要取消,点击相应按钮是否能够成功取消,安装完软件以后,点击进入微信,检查各个功能可否正常运行。
质量特性:功能特性;可用性特性。
对象:
(1)安装包。 (2)安装手册。
测试过程:
(1)多台相同的符合条件的干净的系统。 (2)辅助工具。 (3)执行安装过程。 (4)做对比(文件、注册表、配置文件、安装顺序、共享文件、冲突文件、安装过程的可逆可恢复性)。
测试点:
(1)安装前测试:检查安装包文件是否齐全。 (2)安装中测试:主要是对安装流程的测试以及安装时文件、注册表、数据库的变更,所谓安装流程的测试就是检查用户按照不一样的顺序点击back、next、cancle是否能安装成功或者放弃安装。 (3)安装人员如何知道系统已经被正确的安装了。例如:是否有一个适当的安装测试过程。 (4)安装后测试:主要是检查安装好的软件是否能运行,基本功能可否使用。
范例:检查手机自身的配置,进入设置功能里面,看看配置是否正常。
配置测试主要测试系统在各类软硬件配置,不一样的参数配置下具备的功能和性能。
质量特性:所有的特性。
目的:
(1)检验该配置是否知足要求。 (2)在必定条件下寻找最佳配置。
软件产品配置测试常见配置项:
(1)硬件配置(例如:CPU、网卡等等) (2)操做系统配置。 (3)基础软件。 (4)产品自身(例如:“设置”里面就是产品自身的配置)
范例:手机QQ正在传输文件,忽然断网,在网络恢复以后,文件可否自动从新发送。
系统异常测试又叫系统容错和可恢复性测试,它是经过人工干预手段使系统产生软、硬件异常,经过验证系统异常先后的功能和运行状态。
质量特性:可靠性。
目的:验证产品容错、排错、恢复能力,提升可靠性。
异常测试过程:
(1)人为制造异常。 (2)实施和检查容错、排错、恢复过程。 (3)检查产品先后变化状况。
异常测试要点:
(1)系统断电。 (2)系统断网。 (3)系统死掉。 (4)系统数据丢失。
范例:打开word文档,写入文字以后,在没有保存的状况下,忽然断电,检查在系统恢复以后,有无word备份文件,备份文件的格式是否正确。
质量特性:恢复性。备份测试时恢复性测试的一个补充,而且应当是恢复性测试的一个部分。
备份测试的目的:验证系统在软件或者硬件失败的状况下备份数据的能力。
备份测试要点:
(1)备份出来的格式如何。
(2)备份是否成功,还须要经过数据的导入来进行检查。
范例:下载一个手机APP,若是该APP不符合手机的版本,自动显示提示信息,回避这个问题。
健壮性测试(Robustness Testing)有时也叫容错性测试(Fault Tolerance),主要用于测试系统在出现故障的时候,是否可以自动恢复或者忽略故障继续运行。
一个健壮性的系统是设计出来的,而不是测试出来的。
范例:手机安装一个APP,有时会有一些安装和使用的手册,按照手册进行操做,验证手册流程是否正确。
这里的文档测试不一样于评审和检视工做,主要是针对系统提交给用户的文档的验证。
文档测试的目的:验证用户文档是正确的而且保证操做手册的过程可以正确工做。
文档测试的优势:改进系统的可用性、可靠性、可维护性和安装性。
范例:打开微信,在关于微信里面有帮助和反馈,这个就属于在线帮助,咱们打开在新帮助,按照帮助进行操做,验证是否和事实相吻合。
用户在使用系统的时候,若是出现问题,首先求助的就是在线帮助,一个糟糕的在线帮助会很大的打击用户对系统的信心,所以一个好的系统,必需要有完备的帮助体系,包括用户操做手册,实时在线帮助。
在线帮助测试(Online Help Testing):主要用于验证明时在线帮助的可用性和正确性。
范例:在网络链接正常的状况下,检查是否能正常打开网页,打开网页的时间快慢。
网络测试是在网络环境下和其余设备对接,进行系统功能、性能与指标方面的测试,保证设备对接正常。