系统测试知识点总结
.jpg)
作者:北大青鸟南京中博新街口-王昕 教学及项目经验丰富,熟悉通信协议方面相关测试技术。
系统测试概念
将通过确认测试的软件,作为整个基于计算机的一个元素,与计算机硬件、某些支持软件、数据和人员等其他元素结合在一起,(模拟)在实际运行环境下对系统进行全面的功能覆盖。
采用方法和测试过程
使用黑盒测试方法,系统测试是产品提交用户前最后的测试。
系统测试过程:系统测试主要遵循需求说明书,兼考虑概要、详细设计说明书,同时也要经历测试计划、测试设计、测试执行和测试总结提交的过程。
系统测试的主要测试策略包括:功能测试、性能测试(压力测试、负载测试)、容量测试、安全性测试、配置测试、兼容性测试、本地化测试、安装和卸载测试、易用性测试、健壮性测试。
功能测试
功能测试又称正确性测试,主要根据需求规格说明书和功能说明来验证产品是否符合需求规格。功能测试的基本方法是构造一些合理输入,检查是否得到期望的输出。
功能测试采用黑盒测试技术,通过和GUI的交互对其交互的输入和结果进行分析来核实系统。包括:
1.是否有不正确和遗漏的功能 2.功能实现是否满足用户需求和系统设计 3.能否正确接收输入条件,能否正确输出结果
功能测试方法包括:等价类划分、边界值分析、因果图法、错误推测法和功能图法等
性能测试
检查系统是否满足在需求说明书中规定的性能,主要测试软件处理事务的速度,包括:用户响应时间,系统响应时间,外部接口响应时间,CPU的使用,内存的使用。性能测试通常要使用自动化工具来进行。
性能测试时应该注意以下几点:
1.计算机的运行速度很快,所以人工计时就显得不切实际,需要使用专门的程序或工具进行计时。 2.应该分别测试软件在标准配置和最低配置情况下的性能。 3.不仅要记录软件的硬件环境,还要记录多用户的并发情况。 4.为了排除干扰,应当关闭其他不必要的软件,尤其是比较消耗资源的程序,比如杀毒软件等。 5.系统要测试的性能的种类可能比较多,应该分别赋予唯一的名称,不可笼统地使用“性能”两个字。例如,文档管理项目的性能就包括“文件上载速度”、“文件下载速度”等多个性能参数。 6.不同的输入情况会得到不同的性能数据,应当分档记录。例如,传输文件的容量从100KB到1MB就可以分几个等级。 7.由于环境的波动,同一种输入情况在不同的时间可能得到不同的性能数据,可以取平均值。
压力测试
压力测试的主要任务就是获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力。例如,对服务器做压力测试时就可以增加并发操作的用户数量;或者不停的向服务器发送请求;或一次性向服务器发送特别大的数据等。检验服务器保持正常运行所能达到的最大状态。
压力测试可以回答如下问题:
1.当容量超出时,服务器是否停机,事务会丢失吗,数据的完整性如何 2.服务器软件会给出“服务器不可用”这样的信息吗 3.当系统达到80%或90%时,系统某些功能是否会被停止
负载测试
用于检查系统在使用大量数据的时候正确工作的能力,即检验系统的能力最高能达到什么限度。例如:对于信息检索系统,使它使用频率达到最大;对于多个终端的分时系统,让它所有的终端都运行。在使整个系统的资源到达“满负荷”的情形下,测试系统的承受能力。
安全性测试
检查系统对非法入侵的防范能力,检验系统中已经存在的系统安全性、保密性措施是否发挥作用,有无漏洞。在进行安全性测试时,测试人员假扮非法入侵者,采用各种方法试图突破防线。系统安全设计的准则是,使非法入侵的代价超过被保护信息的价值。
常用的攻击方法有:
1.截取或破解系统口令 2.开发软件来破坏系统的保护机制(木马、恶意程序) 3.故意导致系统失败,在恢复系统时机进行非法侵入
两种级别的安全性:
1.应用级别的安全性:对数据或业务功能的访问,核实操作者只能访问其所属的用户类型已被授权访问的那些功能或数据。在预期的安全性情况下,主角只能访问特定的功能或用例或者只能访问有限的数据 2.系统级别的安全性测试:只有具备系统访问权限的用户才能访问程序,如输入管理员账户,检查其密码是否容易猜取,或者可以从数据库中获得
配置测试
主要检查计算机系统内各设备或各种资源之间的相互连接和功能分配中的错误。主要包括:验证全部配置命令的可操作性,软件配置,硬件配置,利用手动或自动的方式进行配置状态间的转换。
兼容性测试
主要验证软件产品在不同版本间的兼容性。包括向下兼容和交错兼容,向下兼容是测试软件新版本保留它早期版本的功能的情况;交错兼容是验证共同存在的两个相关但不相同的产品之间的兼容性。
包括: 1.浏览器兼容性 2.操作系统兼容性 3.硬件兼容性 4.软件版本兼容性 5.分辨率兼容性
本地化测试
是将一个软件产品按特定国家或语言市场的需要进行全面定制的过程,包括:翻译、重新设计、功能调整及功能测试、是否符合当地的习俗、文化背景、语言和方言的验证等
本地化测试内容:
1.功能性测试--所有基本功能、安装、升级等测试 2.翻译测试--包括语言完整性、术语准确性等 3.可用性测试--包括用户界面、度量衡或时区等 4.兼容性测试--硬件软件兼容性、版本兼容性等 5.文化、宗教、喜欢等适用性测试 6.手册测试--包括联机帮助、在线帮助、pdf帮助文件等
安装和卸载测试
指被测软件的安装、卸载或升级过程的测试 安装测试有两个目的:1.确保安装软件在正常情况和异常情况的不同条件下的安装情况。如:进行首次安装、升级、完整的或自定义的安装都能进行,异常情况包括磁盘空间不足、缺少目录创建权限等 2.核实软件在安装后可正常运行,卸载程序验证是否删除由安装程序安装的所有数据文件。
卸载测试主要测以下内容:
1.删除目录 2.删除应用程序文件 3.删除应用程序的exe文件和私有的dll文件 4.如果其他应用程序不需要,应删除共享文件 5.删除注册表项 6.验证恢复原有的注册表项 7.通过连接和命令执行卸载 8.通过添加/删除卸载
易用性测试
包括针对应用程序的测试和用户手册系统文档的测试
包括如下的测试
1.易理解性2.易学性3.易操作性4.易吸引性5.易用的依从性
容错性测试
系统在异常条件下自身是否具有防护性的措施或某种灾难性恢复方法,具体说就是能否在指定时间内修正错误和重新启动系统且不会造成数据的丢失。容错性测试首先要通过各种手段,让软件强制性的发生故障,然后验证相同能否尽快恢复。对于自动恢复,需要验证重新初始化、检查点、数据恢复和重新启动等机制的正确性;对于人工干预的恢复系统,还需要评估平均修复时间,确定其是否在可接受的范围内。
验收测试
1.被测软件完成系统测试后,在发布前进行的测试 2.此阶段为软件最终用户完成测试 3.目的是保证用户需求的满足程度
验收测试是软件产品交付用户正式使用前的最后一道工序。它是以用户为主的测试,软件开发和质量保证人员也应参加。有用户参加测试用例设计,使用用户界面输入测试数据,并分析测试的输出结果,一般使用生产中的实际数据进行测试。在测试过程中,除了考虑软件的功能和性能以外,还应对软件的可移植性、兼容性、可维护性、错误的恢复能力等进行确认。
α和β测试
α测试由一个用户在开发环境下测试,也可以是公司内部的用户在模拟实际操作环境下进行测试,注重产品的界面和特色,可以从产品编码结束时开始,或在模块测试完后开始。
β测试由软件的多个用户在实际使用环境下的测试,是在开发者无法控制的环境下进行的软件现场应用,主要着重产品的支持性,包括文档、客户培训和支持产品生产能力,只有在α测试达到一定的可靠程度时才能开始β测试。
回归测试
就是验证发现的缺陷是否真正的被开发人员修复,同时测试是否由于代码的修改而引入新的缺陷。
测试目标:1.所做的修改达到预期的目的,错误得到修改,新功能正常实现,能在新环境下运行2.不影响软件原有功能的正确性
测试策略:1.再次测试全部用例2.基于风险选择测试。先运行最重要的,关键的和可疑的测试,跳过次要的 、额外的、稳定的测试3.测试修改的部分。 |