导图社区 软件开发测试执行方案汇报
软件开发测试执行方案汇报、手机和PC都连接到同一个WiFi,在电脑上开启代理软件,然后修改手机上的网络设置,将代理指向电脑上对应的代理的IP和端口,然后再用第三方工具对电脑上该代理软件进行网络的限制。
编辑于2022-11-17 09:12:45 广东软件开发测试执行方案汇报
软件需求
需求分类
功能性需求(产品必须完成的那些事,要求一定的功能和品质)
非功能性需求(产品必须具备的属性或品质。诸如观感、可用性、安全性和法律限制等)
限制条件(全局性的需求,可以是对项目本身的限制,或是对产品最终设计的限制)
需求分析不充分带来的后果
浪费时间和资源来满足用户并不需要的需求(过度实现一些功能)
开发出来的产品技术上先进,但不满足用户需求
总是需要比较长的时间来达成对产品设计的共识
在产品设计时,开发和测试工作中对于用户需求的解释不一致
员工厌倦需求不断被重新解释而导致的返工
未说明或不正确的需求会导致员工与用户间的不满
不稳定的产品,用户的不满意对我们未来的市场造成损失
浪费时间、增加成本,使得在一些投标的项目中不能低价
为什么要分析需求
决策性(要不要做这个产品,通过对市场需求的分析来决策项目是否需要立项)
方向性(良好的需求分析可以对项目人员明确方向,让项目成员知道下面应该如何实施)
策略性(知道了为什么要做需求分析,从而需要了解什么是需求分析,及如何进行需求分析)
如何进行需求分析
“需求分析”不代表“用户要求什么就做什么”
“需求分析”也不代表“我们能做什么就做什么”
充分理解用户需求,再加上自己的分析处理过程
知道哪些我们现在能做,哪些我们做不了,哪些我们咬咬牙能做
不能一味成为客户的传话筒,要有自己的分析
功能性需求---产品应该完成哪些功能,即向用户提供的功能,这是个硬性标准
非功能性需求---用户可能不明确告知的需求,需要需求分析人员自己去挖掘,比如:可靠性方面、响应时间、扩展性、性能等方面的潜在需求
限制条件---在需求分析中需要考虑一些条件约束、规则等,比如:客户的约束、行业的约束、法律的约束以及自身条件的约束等
需求分析的步骤
熟悉需求背景及商业目标
了解清楚项目发起的原因,是为了解决用户的什么问题
当前的解决方案是不是最优的,为什么会这么做
业务模型法
考虑本项目与外部系统的交互,划分系统边界(除了本项目的需求中要求做的事情,其他的都可以是外部系统,本系统和外部系统之间的交互称为系统的边界)
确定测试范围和关注点,系统的边界是测试的重点,特别需要关注边界交互时的数据交互
业务场景
考虑用例的调用者;考虑每一个用例提供的服务是供哪些外部用例或者系统调用,找出所有的调用者。调用的前提、约束等。每一个调用都可以考虑成一个大的业务流程(一般和外部有交互的用例出错的概率比较大,需要重点关注)
考虑系统内部各个用例之间的交互,形成内部业务流程图。需要分析每个用例之间的约束关系、执行条件,组织出各种业务流程图
功能分解法
业务功能:与用户实际业务直接相关的功能或细节
辅助功能:辅助完成业务功能的一些功能或者是细节,比如:设置过滤条件
数据约束:功能的细节,主要是用于控制在执行功能时,数据的显示范围、数据之间的关系等
易用性需求:功能的细节,产品中必须提供便于功能操作使用的一些细节,比如:快捷键
编辑约束:功能的细节,在功能执行时,对输入数据项目的一些约束性条件,比如:只能输入数字
参数需求:功能的细节,在功能中,需要根据参数设置不同,进行不同处理的细节
权限需求:功能的细节,这里的权限是指在功能的执行过程中,根据不同的权限进行不同的处理,不包括直接限制某个功能的权限
系统性能需求:
客户明确提出的性能需求
参考历史的性能分析数据
参考历史项目或同行业的其他项目性能数据
参考其他性能分析资料数据
系统安全需求:
软件需求安全性分析——对分配给软件的系统级安全性需求进行分析
软件结构设计安全性分析——评价结构设计的安全性,以保证软件安全功能的完整性
软件编程安全性分析——选择合适的编程语言
软件详细设计安全性分析——设计实现是否符合安全性要求
软件编码安全性分析——完成安全相关软件的编码活动
软件测试安全性分析——保证软件安全性
软件变更安全性分析——应对可能出现的软件变更
需求收集
What---应该收集什么信息
Where---从什么地方收集
How---用什么机制或技术来收集
如何挖掘需求
功能需求---输入方面
输入来源
输入数据数量
错误输入时的响应
对非法输入、无效输入的定义
功能需求---处理方面
输入数据的有效性检测流程
操作的确切次序,包括各事件的时序
对异常情况的响应,如:溢出、通信失败、错误处理
功能需求---结果输出方面
输出到何处(如浏览器,打印机,文件)
输出的数量是多少
输出的时序
对非法值的处理
功能需求---性能需求方面
静态量化:可支持的终端数目,支持同时使用的用户数量,处理的文件和记录的数目,表和文件的大
动态量化:在正常或峰值工作量情况下一个特定时间段处理事务或任务的数量及数据量。在正常或峰值工作量情况下处理某个事务或任务所占用系统资源的数量
功能需求---安全需求方面
客户明确提出的安全性需求
系统潜在的安全性问题
防攻击措施
数据安全性需求
数据库安全性需求
抵御病毒入侵的能力
功能需求---用户接口方面
系统用户显示时要求的屏幕格式
页面规划及报告或菜单的内容
输入和输出的相关时序
一些组合功能键的用法
功能需求---硬件接口方面
描述软件产品和系统组件之间接口的逻辑特征
该功能运行支持哪些设备?怎样支持这些设备和协议?
需求评审
参与评审人员
软件开发项目经理
带领项目组与系统工程师进行需求交流并进行分析和文档化
组织SRS文档评审
软件开发工程师
参与需求评审
如果是完成SRS作者,则是需求评审发起人
根据需求评审专家意见,修改SRS文档
参加系统测试计划的评审
质量保证人员(QA)
监督项目组遵循需求管理流程
参加相关文档评审
保证相关组参加文档评审
软件测试项目经理
参与开发人员的软件需求分析,提出可测试性需求
组织人员参与SRS的评审工作
软件系统测试计划写作
需求变更跟踪
软件测试工程师
参与需求评审工作
协助软件测试项目经理完成软件系统测试计划
将需求转化为测试需求
评审要点
是否在SRS中说明了每个输出项是如何输出的,并且描述了每个输出的属性
是否在SRS中说明了软件所有的性能要求
是否在SRS中描述了系统中与其他子系统、模块或硬件设备的相关接口
是否在SRS中描述了与操作系统的接口
每个需求是否切实可行、可测试、彼此不冲突
是否在SRS中说明了对每个输入的验证措施,并描述了每个输入的属性
是否在SRS中说明了对每个输入的处理
SRS中是否存在描述不清晰的功能点
SRS中是否存在根据目前情况无法实现的功能点
评审输出
输出评审表格
输出软件需求规格说明书
组织需求评审原则
预留足够的评审时间
评审会议时间一般不超过2小时
评审前,作者根据公司评审要点自检
需求管理
管理方法
确定需求变更控制的过程
组织变更控制委员会
进行需求变更波及分析
跟踪所有受需求变更影响的工作产品
建立需求基准版和需求控制版本文档
维护需求变更的历史记录
追踪每项需求的状态并建立数据库
衡量需求的稳定性
使用需求管理工具进行需求管理
管理工具
IBM Rational RequisitePro
强大、易用、集成的需求管理产品
通过与Rational系列软件产品的广泛集成,大大扩展了RequisitePro及其他产品的功能
为软件工程生命周期内的各个阶段都提供了强大、方便的信息查询、跟踪、管理等功能
促进更好的团队沟通、帮助管理变更和评估变更的风险
IBM Rational DOORS
前身是Telelogic DOORS,被IBM公司收购后更名为IBM Rational DOORS
DOORS是最老牌的企业需求管理套件,通过使用DOORS/ERS,可以帮助企业更有效地进行沟通并加强写作与验证,从而降低失败的风险
通过对整个组织实施多种需求管理的方法
使项目的管理更加透明,可以使企业跨越地域与组织的边界来按国际化的方式运行
Borland CaliberRM
基于Web和用于协作的需求定义和管理工具
帮助分布式的开发团队平滑协作,从而加速交付应用系统
CaliberRM辅助团队成员沟通,减少错误和提升项目质量
有助于更好地理解和控制项目,能够帮助团队领先于竞争对手
提供集中式存储库,帮助团队在早期及时澄清项目的需求,全体成员能保持同步,工作内容很容易具有明确的重点
和领先的对象建模工具、软件配置管理工具、项目规划工具、分析设计工具以及测试管理工具良好地集成,这种有效的集成有助于更好的理解需求变更对项目规模、预算和进度的影响
Cloudtopo Topo
提供了完整的需求管理解决方案
包括需求管理,规格管理以及需求跟踪,功能相当完善
在Topo系统中,需求管理划分为:需求和规格两部分
提供了从需求到开发到测试的完整研发过程管理解决方案
测试计划
测试计划概述
描述用于验证软件是否符合产品说明书和客户需求的整体方案
有计划、有组织和有系统的软件质量保证活动,而非随意地、松散地、杂乱地实施过程
创建在项目启动初期,规范软件测试内容、方法和过程
让整个测试活动有依据、有条不紊地进行,是整个软件测试工作的依赖的基础
测试计划包含的内容
产品概述
测试策略
测试方法
测试区域
测试配置
测试周期
测试资源
测试交流
风险分析
测试计划的必要性
明确测试任务和测试方法
保持测试实施过程中的顺畅沟通、跟踪和控制测试进度,应对测试过程中的各种变更
确认了测试项、被测特征、测试任务、人员安排,以及任何偶发事件的风险
如何编写测试计划
避免“大而全”,无所不包,篇幅冗长,长篇大论,重点不突出等
把详细的测试技术指标包含到独立创建的测试详细规格文档中
把用于指导测试小组执行测试过程中的测试用例放到独立创建的测试用例文档或测试用例管理数据库中
测试计划和测试详细规格、测试用例之间是战略和战术的关系
测试计划从宏观上规划测试活动的范围、方法和资源配置等
测试详细规格、测试用例是完成测试任务的具体战术
测试设计(技术领域)
功能测试
手工测试
测试用例设计方法
黑盒测试(应用于集成、系统、验收测试)
等价类划分法
边界值分析法
因果图法
流程分析法
场景法
正交试验法
状态迁移图法
判定表法
错误推测法
白盒测试(应用于单元、集成测试)
路径覆盖
条件组合覆盖
判定条件覆盖
条件覆盖
判定覆盖
语句覆盖
测试用例管理工具
HP Quality Center (TestDirector)
Mercury公司原主打产品TestDirector于2003年开始迁移到J2EE平台,重构了整个软件的开发,因融入了Mercury BTO理念,继而重新命名为Quality Center,它是Mercury BAC平台的重要组成部分。2006年后是HP Quality Center。时至今日,仍然为业内最强大、使用最广泛的测试管理工具之一,可与QTP、Winrunner、Loadrunner等集成,也与MS Office、IBM Rational等产品集成。
IBM Rational TestManager
原Rational产品中专业对软件测试资源进行管理的强大工具。包括测试用例管理、测试执行管理、测试脚本和报告管理等。另外可与Robot结合做性能测试,更可以和RFT、RFP、CC、CQ等集成使用
IBM Rational Quality Manager
IBM2008年推出的新产品,是完全可以与HP Quality Center媲美的软件测试管理工具。包括测试计划、工作流、任务跟踪和统计分析等功能
TestCenter(国产)
上海泽众软件自主研发的一款功能强大的测试管理工具,它可以帮助您:实现测试用例的过程管理,对测试需求过程、测试用例设计过程、业务组件设计实现过程等整个测试过程进行管理
TestLink
这是一款免费的TestLink,因其功能强大,使用广泛;可对测试需求跟踪、测试计划、测试用例、测试执行、缺陷报告等进行完整管理
Micro Focus QADirector
原Compuware公司产品,是业内强大的软件测试资源和过程管理工具,虽然市场不大,但是可以和IBM Rational TestManager比较,与原Compuware产品集成紧密
Micro Focus SilkCentral Test Manager
原Segue产品,被Borland收购后又被Micro Focus收购。是业内强大的软件测试资源和过程管理工具,可以和IBM Rational TestManager比较,与原Segue产品集成紧密
Parasoft ConcerTo
Parasoft公司新出品的面向软件开发生命周期的管理工具。包括Policy Center、Process Center、Project Center、Test Center、Report Center五大模块,其中Test Center有对测试过程和测试资源的管理
Empirix E-Manager
E-Manager 是原E-Test Suite套件里的测试管理工具,后单独抽取出来做成Enterprise版本,可与E-Tester、E-Load集成使用。目前归属问题不详
RadView TestView Manager
RadView公司2006年推出的TestView工具套件,里边包括WebLoad,WebFT以及TestView Manager三个产品,如今TestView工具套件不再升级。其中TestView Manager是和WebFT、WebLoad集成的全方位测试管理平台
Seapine TestTrack TCM
Seapine公司出品的测试管理工具,它不像HP QualityCenter具有那么多的功能模块,而类似于IBM Rational TestManager,只侧重测试用例、测试执行、测试结果分析的功能
Seapine TestTrack Studio
它是将TestTrack TCM和TestTrack Pro结合的集成环境
RedStone TestPlanet’s Integrated Test Appliance
RedStone公司出品的测试管理工具,与EggPlant集成,实现对其测试用例和测试脚本的构建、存储、执行、分析等功能
AimWare Product Manager
AimWare公司出品的项目管理软件,集需求规格定义、测试计划定义、测试进度跟踪、版本发布管理、文档报告管理等于一身的大型商业工具
T-Plan Professional
英国T-Plan公司出品的测试过程管理工具T-Plan Professional,对软件测试过程的需求、计划、分析、用例、执行、缺陷报告、版本控制实现完全的管理,并符合V模型,将单元测试、集成测试、系 统测试、验收测试四个阶段严格划分,是一款看上去神乎其神的大型商业测试平台
TechExcel DevTest Studio
TechExcel公司推出的软件开发生命周期系列工具之一DevTest Studio,是一款测试管理工具,从测试用例的创建、计划到执行、到缺陷提交和跟踪的全过程统一起来。它由DevTrack、DevTest、 TestLink整合而成。另外TechExcel公司还有DevSuite这套开发过程管理和Project Studio这套项目管理、人员管理、任务管理的工作平台
功能自动化测试工具
QTP(HP QuickTest Professional software)
全名HP QuickTest Professional software,主要是用于回归测试和测试同一软件的新版本
Selenuim
Selenium (SeleniumHQ) 是 thoughtworks公司的一个集成测试的强大工具
WinRunner
是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行
RationalRobot
是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试
AdventNetQEngine
一个应用广泛且独立于平台的自动化软件测试工具,可用于Web功能测试、web性能测试、Java应用功能测试、Java API测试、SOAP测试、回归测试和Java应用性能测试
SilkTest
是业界领先的、用于对企业级应用进行功能测试的产品,可用于测试Web、Java或是传统的C/S结构
QARun
QARun的测试实现方式是通过鼠标移动、键盘点击操作被测应用,即而得到相应的测试脚本,对该脚本可以进行编辑和调试
TestPartner
专为测试基于微软、Java和Web技术的复杂应用而设计。它使测试人员和开发人员都可以使用可视的脚本编制和自动向导来生成可重复的测试,用户可以调用VBA的所有功能,并进行任何水平层次和细节的测试
Holodeck
强大的故障植入软件测试工具
TelelogicTAU
TAU第二代包含三个最新的、最强大的技术用来加速大规模软件开发和测试:统一建模语言(UML)及它的许多最新修订版本中的特性
性能测试
性能测试分类
负载测试
通过在被测系统上不断加压,直到性能指标达到极限,如“响应时间”超过预定指标或某种资源已经达到饱和状态
主要目的是找到系统处理能力的极限
需要在给定的测试环境下进行,通常也需要考虑被测试系统的业务压力量和典型场景,使得测试结果具有业务上的意义
一般用来了解系统的性能容量,或是配合性能调优来使用
这种方法是对一个系统持续不段的加压,看系统在什么时候已经超出某个特定的要求或系统崩溃
压力(强度)测试
测试系统在一定饱和状态下,例如cpu、内存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误
主要目的是检查系统处于压力性能下时,应用的表现
一般通过模拟负载等方法,使得系统的资源使用达到较高的水平
一般用于测试系统的稳定性
这种测试是让系统处在很大强度的压力之下,看系统是否稳定,哪里会出问题
并发测试
通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其者他性能问题
主要目的是发现系统中可能隐藏的并发访问时的问题
主要关注系统可能存在的并发问题,例如系统中的内存泄漏、线程锁和资源争用方面的问题
可以在开发的各个阶段使用需要相关的测试工具的配合和支持
这种测试关注点是多个用户同时(并发)对一个模块或操作进行加压
配置测试
通过对被测系统的软\硬件环境的调整,了解各种不同对系统的性能影响的程度,从而找到系统各项资源的最优分配原则
主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行的调优操作
在对系统性能状况有初步了解后进行
一般用于性能调优和规划能力
这种测试关注点是“微调”,通过对软硬件的不段调整,找出这他们的最佳状态,使系统达到一个最强的状态
容量测试
在一定的软、硬件条件下,在数据库中构造不同数量级的记录数量,通过运行一种或多种业务场景,在一定虚拟用户数量的情况下,获取不同数量级别的性能指标,从而得到数据库能够处理的最大会话能力、最大容量等
系统可处理同时在线的最大用户数,通常和数据库有关
可靠(稳定)性测试
在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定
主要目的是验证是否支持长期稳定的运行
需要在压力下持续一段时间的运行
测试过程中需要关注系统的运行状况
这种测试的关注点是“稳定”,不需要给系统太大的压力,只要系统能够长期处于一个稳定的状态
失效性测试
系统局部发生问题时,其它模块是否可以正常的运行
性能测试工具
Web Bench
Web Bench是一个简单的web或者web代理服务的基准测试工具,(它)使用fork()模拟多个客户端并且可以发起HTTP/0/9-HTTP/1.1的请求
LoadRunner
是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner , 企业能最大限度地缩短测试时间, 优化性能和加速应用系统的发布周期。LoadRunner 的测试对象是整个企业的系统, 它通过模拟实际用户的操作行为和实行实时性能监测, 来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术, 为您的特殊环境提供特殊的解决方案
Apache JMeter
Apache JMeter是一个专门为运行和服务器装载测试而设计的、100%的纯Java桌面运行程序。原先它是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况
kylinpet(国产商业工具)
kylinPET(performance emulation tool,麒麟宠物)是一款功能强大的性能测试工具;界面友好、操作方便,资源占用率低;自带TCP/IP协议栈,支持虚拟大量IP;支持IPv4、IPv6的多种业务测试;支持WEB/WebService业务与Flex(HTTP)、IMS业务(SIP)、IPTV业务(RTSP/IGMP/MLD)、XMPP、Socket业务、数据库、JMS、FTP/SFTP、WEB视频(包括FLV/MP4/HTTP Live Streaming/HTTP Smooth Streaming/HTTP Dynamic Streaming)、WebSocket、JAVA;支持多种协议组合
ab - Apache HTTP server benchmarking tool
ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力
Siege
Siege(英文意思是围攻)是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。 Siege 支持基本的认证,cookies, HTTP 和 HTTPS 协议
Web Polygraph
用于测试WEB性能的工具,这个工具是很多公司的标准测试工具,包括微软在分析其软件性能的时候,也是使用这个工具做为基准工具的
Grinder
Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提供了便利。 支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行管理
系统(Linux)性能监控及调优工具
top:提供运行系统的动态实视图。显示系统摘要信息以及任务列表
uptime:显示系统平均负载
ps、pstree:提供当前进程列表
free:显示系统中空闲内存和已使用内存的数量
mpstat:报告处理器相关的统计数据
vmstat:报告进程、内存、磁盘、系统、CPU的统计信息
iostat:报告CPU统计数据,还有设备和分区的输入/输出统计数据
netstat、ss:显示相关网络统计信息
sar:收集、报告系统活动信息
numastat:显示每个NUMA节点的内存统计信息
pmap:报告一个进程的内存映射
iptraf:交互式局域网监控程序
tcpdump、wireshark:用来捕捉和分析网络数据、流量等信息
strace、ltrace:系统调用和库调用跟踪程序
gnuplot:命令行绘图工具,分析系统性能时用到
Gnome System Monitor:Gnome桌面环境的图形性能分析工具
KDE System Guard:KDE任务管理器和性能监控器
系统(Windows)性能监控及调优工具
Performance Monitor
Windows服务器中自带的性能监控工具,在开始-运行中输入‘perfmon’,然后回车即可运行,这个工具在帮助管理员判断系统性能瓶颈时非常有用
WSRM
WSRM可用于向应用程序、用户、远程桌面服务(RDS)会话和因特网信息服务(IIS)应用程序池(application pools)分配处理器和内存资源,WSRM只有在处理器负载利用率超过70%时才会获取相关的信息,此时的管理员可以创建自定义的资源政策、程序和工作优先级
Xperf:Xperf是Windows Server 2008中解决系统使用率、磁盘I/O占用太高等问题的最佳选择
CPUMon v2.0:CPU性能监视工具。可以获取CPU计数器信息。该版本集成了Perfmon
DebugView v4.31:截取Win32设备驱动程序发出的消 息,允许通过本机或网络查看和录制调试信息而不打开一个活动的调试器
Diskmon v2.01:显示硬盘的活动信息
Filemon v6.12:实时监视操作系统中活动的文件
Handle v2.20:显示进程及其打开的文件等信息
ListDLLs v2.23:列出当前系统加载的所有dll文件、调用它的执行程序及dll版本路径等详细信息
NTFSInfo v1.0:查看NTFS卷的详细信息,包括大小、文件分配表的大小起止位置,还有元数据文件的大小等
PMon v1.0:监视进程的创建、删除,也包括显示多CPU机器或checked kernel 机器上的上下文交换信息
Portmon v3.02:端口监视工具,监视端口收发的信息等
Process Explorer v8.52:查看进程所打开的文件,注册表和其他对象,并显示加载了那些dll
PsTools v2.1:包含一套命令行工具,包括显示本机或远程机器上运行的进程,在远程机器上运行进程,重启机器,记录日志等
Regmon v6.12:实时监视注册表的活动
TCPView v2.34:监视本机TCP和UDP协议的活动情况,并显示使用该协议的进程,包括了dos版本
TDImon v1.01:通过网络API实时监视TCP和UDP协议的活动情况
Tokenmon v1.01:令牌监视器,监视与信息安全相关的活动,比如登录,退出等
Winobj v2.13:对象命令空间管理器。增强了用户界面,显示更多对象类型,并集成了NT的本地安全设置
CacheSet v1.0:缓存设置器。设置NT使用的缓存空间大小
Contig v1.51:可以使文件变的连续,提高访问速度
Frob v1.6a:设置优先相应前台程序还是后台服务
PageDefrag v2.3:磁盘文件和注册表整理
安全测试
互联网安全(本质:信任的问题)
安全三要素
机密性
完整性
可用性
如何实施安全评估
资产等级划分
互联网安全的核心问题,是数据安全的问题
根据业务部门所看重的数据进行等级划分
划分信任域和信任边界,如:比较重要的数据放在数据库里,那么把数据库服务器圈起来;Web应用可以从数据库中读/写数据,并对外服务,那再把Web服务器圈起来;最外面是不可信任的Internet
威胁分析
STRIDE模型
Spoofing(伪装):冒充他人身份(认证)
Tampering(篡改):修改数据或代码(完整性)
Repudiation(抵赖):否认做过的事情(不可抵赖性)
InformationDisclosure(信息泄露):机密信息泄露(机密性)
Denial of Service(拒绝服务):拒绝服务,如:DOS攻击(可用性)
Elevation of Privilege(提升权限):未经授权获得许可(授权)
风险分析
DREAD模型
Damage Potential
获取完全验证权限;执行管理员操作;非法上传文件
泄露敏感信息
泄露其他信息
Reproducibility
攻击者可以随意再次攻击
攻击者可以重复攻击,但有时间限制
攻击者很难重复攻击过程
Exploitability
初学者在短期内能掌握攻击方法
熟练的攻击者才能完成这次攻击
漏洞利用条件非常苛刻
Affected users
所有用户,默认配置,关键用户
部分用户,非默认配置
极少数用户,匿名用户
Discoverability
漏洞很明显,攻击条件很容易获得
在私有区域,部分人能看到,需要深入挖掘漏洞
发现该漏洞及其困难
Risk(风险) = D(对应等级)+ R(对应等级)+E(对应等级)+A(对应等级)+D(对应等级)
风险高低定义
高危:12~15分
中危:8~11分
低危:0~7分
设计安全方案
安全方案应具备的特点
能够有效解决问题
用户体验好
高性能
低耦合
易于扩展与升级
设计安全方案遵循的原则
Secure By Default 原则
黑名单、白名单
最小权限原则
纵深防御原则
数据与代码分离原则(适用于由于“注入”而引发的安全问题,如:XSS(由HTML注入、JavaScript注入引起)、SQL注入、CRLF注入(回车换行)、X-Path注入等)
不可预测性原则:能有效对抗基于篡改、伪造的攻击,如:CSRF(跨站请求伪造)攻击
安全测试包含的工作
验证软件在软件需求规格说明书中规定的防止危险状态措施的有效性和在每一个危险状态下的反应
对软件设计中用户提高安全性的结构、算法、容错、冗余、中断处理等方案,进行针对行测试
在异常条件下测试软件,以表明不会因可能的单个或多个输入错误而导致不安全状态
对安全性关键的软件单元和软件部件,要单独进行加强的测试,以确认其满足安全性需求
安全性测试方法
功能验证
漏洞扫描
模拟攻击
安全测试分类
Web应用安全
包括对数据或业务功能的访问,在于其的安全性情况下,操作者只能访问应用程序的特定功能、有限的数据
核实操作者只能访问其所属用户类型已授权访问的功能或数据
测试时,确定有不同权限的用户类型,创建各用户类型并用用户类型所特有的事务来核实其权限,最后修改用户类型并为相同的用户重新运行测试
功能验证
有效的密码是否接受,无效的密码是否拒绝
系统对于无效的用户或密码登录是否有提示
用户是否会自动超时退出,超时的时间是否合理
各级用户权限划分是否合理
SQL注入漏洞测试
表单漏洞测试
Cookie欺骗漏洞测试
用户身份验证测试
Session测试
跨网站脚本(XSS)漏洞测试
命令注射漏洞测试
日志文件测试
访问控制策略测试
OS(服务器)安全
账号和口令
对主机或域上用户强制进行口令复杂度
检查系统是否使用默认管理员账号
检查系统中是否存在可疑或域系统无关的账号
检查系统用户是否有口令最短和口令长度要求
检查系统用户是否有密码过期策略
网络与服务
查看主机开放的共享,关掉不必要的共享和系统默认的共享服务
查看主机进程信息(不允许系统中安装有与应用服务无关的应用进程)
查看系统启动服务列表
查看系统启用的端口号
查看系统是否制定操作系统的备份恢复策略服务
防火墙测试
采用有效性的攻击手段(如DoS攻击)
从多个层面上的攻击(如网络层的DOS攻击、应用层的脚本攻击和P2P通信控制等)
验证防火墙支持动态协议的种类和准确性(如对VoIP的支持力度)
攻击测试时最好添加一定的背景流量(观察防火墙的某项防御功能是否会引起正常流量的异常反应)
多种攻击手段结合(如在防DoS攻击情况下防火墙过滤HTTP蠕虫的成功率有多大)
文件系统
rados bench工具
FIO测试工具
dd测试工具
IOzone测试工具
日志审核
应用程序日志
安全日志(用户登录系统的日志)
系统日志
其他安全设置
系统补丁漏洞
登录系统操作的用户的权限
病毒防治
系统日志是否有备份功能
数据的备份与恢复
系统上卸载无关组件或应用程序
数据库安全
身份认证(Authentication)
新增用户的测试
设置用户名、密码为边界长度
设置用户名、密码为有效用户信息
设置用户名、密码为空
设置用户名、密码长度不在边界长度范围内
用户名、密码是不符合要求的字符串,包括空格、特殊字符等
添加用户时两次密码输入不一致(如果添加时需要密码输入两次)
添加已存在的用户
密码是否可以复制黏贴
密码是否是明文显示
新增用户名是否使用sys或system
修改用户的测试
不输入旧密码,直接改密码
输入错误的旧密码
不输入确认新密码
新密码和确认新密码不一致
设置的新密码与旧密码相同
修改后的用户与已存在的用户信息相同
修改后的用户与已存在的用户信息不同
用户登录的测试
输入无效用户信息(包括非注册用户、特殊字符输入等)进行登录
输入不正确的密码进行登录
输入空用户名、密码进行登录
输入有效用户信息进行登录
注销的用户登录系统
变更用户再次登录
访问控制(Access Control)
使用不同权限登录系统,覆盖系统所有设定的权限
是否能够使用操作系统认证方式登录数据库
使用同一权限用户登录同一系统
使用不同权限用户登录同一系统
管理员能否增删改自己或同级别用户的权限
普通用户能否增删改自己、管理员或其他同级别用户的权限
删除或修改已经登录系统并正在进行操作的人员的权限
改变某些设置时,是否会影响上级别及相同级别用户的设置
系统管理员修改数据库后,其他用户登录时数据是否改变
系统管理员在修改数据库过程中,其他用户是否能登录
用户能否同时属于多个组
重新添加已删除用户,是否具有以前设置的权限
数据的机密性(Confidentialty)
数据文件是否加密
数据解密的难易程度,是否容易被破解
数据库信息密码是否为明文显示
加密文件是否以密文、密码代码的形式显示
加密文件解密后是否以原文件显示
数据库中的机密信息是否以密文或密码形式显示
数据完整性(Integrity)
备份与恢复内容的正确性
数据库运行在归档模式下,进行备份,实现数据库的物理备份
对数据库的应用账户进行导出备份,实现数据库的逻辑备份
备份到不同介质上,并考虑介质空间的容量情况
在原始机、非原始机、裸机上的恢复
大数据量数据的备份与恢复
数据库备份,恢复后能否正常工作
集中备份恢复与普通备份恢复结果是否一致
备份与恢复过程中对异常情况的处理(掉电、网络不通、介质损坏等)
在一台机器上进行若干次的备份与恢复
在数据库操作过程中,进行备份和恢复
部分备份、全部备份、部分恢复、全部恢复有选择的进行备份和恢复
备份和恢复操作是否有权限限制,不同权限进行备份和恢复
多用户同时进行备份和恢复
可用性(Availability)
合法用户在需要时能否访问并取得相关数据
合法用户是否能登录
合法用户是否能检索数据
合法用户是否能查看日志
合法用户是否能做导出、保存、删除等操作
审计能力(Auditing)
数据库日志记录显示是否正确
数据库日志工作是否正常
数据库日志是否记录了所有的事务处理
数据库日志是否记录失败的错误信息
数据库日志是否在每次事务完成的时候都进行保存
数据库日志是否记录IP地址及登录信息
数据库日志进行删除、导出是否正确
能否通过数据库日志恢复数据库
数据库日志存储占用全部存储空间的处理
数据库安全测试工具(AppDetectivePro)
渗透性测试
从内往外扫描
网络环境安全
备份和升级情况
访问控制情况
网络服务情况
网络协议的选择
路由协议情况
日志审核情况
网络攻击防护情况
登录标志
安全管理
硬件安全
CPU核数、频率
内存大小、读取速度
显存大小、读取速度
磁盘大小、读取速度
网卡的数量、缓存大小
是否有磁盘阵列
硬件周围环境(如:干燥、散热、备用电源等)
分布式存储、备份
发生自然灾害时是否可恢复数据
测试设计(测试领域)
APP(Client)
APP安装测试
App在系统不同版本下安装是否正常
App安装后是否能正常运行,安装后的文件加及文件是否写到指定的目录
App安装向导的UI测试
App安装过程中是否可以取消,取消后,软件是否正常退出安装
App安装过程中发生意外情况的处理是否符合需求(如重启、断电、来电中断、消息中断)
App安装空间不足时是否有相应的提示信息
App安装后是否生成多余的目录结构和文件
验证在断网的情况下App的反应
对安装手册进行测试,依照安装手册是否能顺利安装
安装过程中是否有安装状态进度条提示
APP运行测试
APP安装完成后的试运行,可以正常打开App
APP打开测试,是否有加载状态进度提示
APP打开速度测试,速度是否可观、合理
APP页面间的切换是否流畅,逻辑是否正确
APP卸载测试
测试系统直接卸载App是否有信息提示
测试卸载后文件是否全部删除所有的安装文件
卸载过程中出现的意外情况的测试(如:死机、断电、重启、来电中断、消息中断)
卸载是否支持取消功能,单击取消后程序卸载的情况
App直接卸载UI测试,是否有卸载状态进度条提示
APP升级测试
正常情况
升级后的功能是否与需求说明保持一致
与升级模块相关的模块的功能是否与需求保持一致
升级界面的UI测试
不同版本间App的升级测试
对于不同旧版本的App,升级程序能否自动检测旧版本,并对不同版本的升级有不同的策略
当App有更新时,是否有提示信息,并对新增的部分作出说明,提示用户升级
当版本为非强制升级时,用户可以取消升级,旧版本依旧能正常使用,用户在下次启动App时,仍然出现升级提示
当版本为强制升级版本时,当给出强制升级提示后用户没有做升级操作,退出App,下次启动App时,仍出现强制升级提示
当客户端有新版本时,在本地不卸载App的情况下,检查升级后的App功能是否是新版本所具备的功能
在进行升级安装时,是否有安装状态进度条提示
App升级是否能正常完成
App升级后能否正常使用
异常情况
升级安装意外情况的测试(死机、断电、断网、重启、来电中断、消息中断)
对已经升级的版本再次升级是否能自动识别并给出相应的提示信息
升级完成之后,用户的数据是否跟升级前保持一致
在存储空间不足的情况下进行升级,App是否能给出相应的提示信息
APP导航测试
按钮、对话框、列表和窗口等;或在不同的链接页面之间需要导航
是否易于导航,导航是否直观
导航帮助是否准确直观
导航与页面结构、菜单、链接页面的风格是否一致
APP图形测试
横向比较,各控件操作方式统一
自适应界面设计,内容根据窗口大小自适应
页面标签风格是否同一
页面是否美观
页面的图片应尤其实际意义且要求整体有序美观
图片质量要求高且图片尺寸在设计符合要求的情况下应尽量小
界面整体使用的颜色不宜过多
APP内容测试
输入框说明文字的内容与系统功能是否一致
文字长度是否加以限制
文字内容是否表意不明
是否有错别字
信息是否为中文显示
是否有敏感性词汇、关键词
是否有敏感性图片,如:设计版权、专利、隐私等图片
APP用户体验测试
是否滥用用户引导
是否有不可点击的效果,如:某个按钮此时处于不可用状态,一定要置灰或者直接拿掉按钮,避免误导用户
菜单层次是否太深
相关的选项是否离得太远
一次是否载入太多的数据
界面中按钮可点击范围是否适中
标签页面是否跟内容没有从属关系,当切换标签时,内容跟着切换
操作应该有主次从属关系
是否定义Back的逻辑,涉及软硬件交互时,Back键应具体定义
是否有横屏模式的设计,应用一般需要支持横屏模式,及自适应设计
APP前后台切换测试
切换到后台,再回到APP,检查是否停留在上一次的操作界面
检查功能及应用状态是否正常
注意程序是否崩溃,功能状态是否正常
当App使用过程中有电话进来中断后再切换到App,功能状态是否正常
当Kill掉App进程后,再开启App,App能否正常启动
出现必须处理的提示框后,切换到后台,再切换回来,检查提示框是否还存在,有时候会出现应用自动跳过提示框的缺陷
对于有数据交换的页面,每个页面都必须进行前后台切换、锁屏的测试,这两种页面最容易出现崩溃
冲突测试
APP冲突测试
多款App同时运行是否影响其各自正常功能
App运行时拨打/接听电话
App运行时发送/接收信息
App运行时查看信息
App运行时发送/接收邮件
App运行时查看邮件
App运行时响闹是否正常
App运行时切换网络(2G、3G、4G、WiFi)
App运行时浏览网页
App运行时使用蓝牙发送/接收数据
App运行时使用相机、计算器等手机自带设备
手机充电冲突测试
插座充电时有电话呼入时界面显示是否正常
插座充电时有电话呼入接听与拒接是否正常
插座充电时收到短信界面显示是否正常
插座充电时收到短信读取消息是否正常
插座充电时有响闹时界面显示是否正常
插座充电时有响闹时停止与延后响闹是否正常
USB充电时有电话呼入时界面显示是否正常
USB充电时有电话呼入接听与拒接是否正常
USB充电时收到短信界面显示是否正常
USB充电时收到短信读取消息是否正常
USB充电时有响闹时界面显示是否正常
USB充电时有响闹时停止与延后响闹是否正常
通话冲突测试
在聊天界面有电话呼入时接听与拒接正常
在拍照界面有电话呼入接听与拒接正常
在录像界面有电话呼入接听与拒接正常
通话过程中录音正常
在玩游戏过程中有电话呼入接听与拒接正常
在浏览网页过程中有电话呼入接听与拒接正常
APP功耗测试
手机充电测试
开机充电
开机通过插座充电
开机USB充电
充电画面显示
关机充电
关机通过插座充电
关机USB充电
充电画面显示
冲突测试
插座充电时有电话呼入时界面显示是否正常
插座充电时有电话呼入接听与拒接是否正常
插座充电时收到短信界面显示是否正常
插座充电时收到短信读取消息是否正常
插座充电时有响闹时界面显示是否正常
插座充电时有响闹时停止与延后响闹是否正常
USB充电时有电话呼入时界面显示是否正常
USB充电时有电话呼入接听与拒接是否正常
USB充电时收到短信界面显示是否正常
USB充电时收到短信读取消息是否正常
USB充电时有响闹时界面显示是否正常
USB充电时有响闹时停止与延后响闹是否正常
APP耗电量测试
基于硬件设备
将电池拿掉,并将电流表串联在手机和外部电源之间
开启被测APP,测试手机电量消耗和没开启该APP的情况下的电量消耗进行比较
这种方式有缺陷,测得的数据不准确,不常用
基于软件
Gsam Battery Monitor Pro
查看电池状态和时间
显示详细的电池使用内容
允许排序清单显示应用程序使用CPU的使用率,感应器的使用,如:唤醒锁定,唤醒时间等
可以自订时间观看时间内的统计资讯
APP弱网络测试
测试点
测试在网络环境良好的情况下App的运行情况,操作是否流畅
测试在网络环境较差的情况下App的运行情况,操作是否流畅
测试在网络环境极差的情况下App的运行情况,是否给出相应提示信息
测试在没有网络环境下App的运行情况,部分不需要网络的数据是否能查看
测试在网络环境逐渐变好的过程中App的运行状况
测试在网络环境逐渐变差的过程中App的运行情况
测试从无网络到有网络的状态切换时,App的运行情况,能否自动连接网络
测试从有网络到无网络的状态切换时,App的运行情况,能否给出要求连接网络的提示信息
测试思路
手机和PC都连接到同一个WiFi,在电脑上开启代理软件,然后修改手机上的网络设置,将代理指向电脑上对应的代理的IP和端口,然后再用第三方工具对电脑上该代理软件进行网络的限制
直接在手机上安装第三方网络监控App软件,对手机的网络进行限制
测试工具
PC端
Fiddler(代理软件)
Netbalancer(网络监控软件)
手机端
使用EasyTest(淘宝易测)工具中的弱网络环境功能
APP兼容性测试
测试点
与本地及主流App是否兼容
基于开发环境和生产环境的不同,检验在各种网络(WiFi、GSM、GPRS、EDGE、WCDMA、CDMAIx、CDMA2000、HSPDA等)连接下,App的数据和运用是否正确
不同版本操作系统的兼容性,是否适配
不同手机屏幕分辨率的兼容性
不同手机品牌的兼容性
测试工具
Testin网站
爱内测网站
Easy Test(淘宝易测) APP
APP极限测试
内存满时安装App
内存满时升级App
在手机电量极低时运行App
运行App时手机断电
运行App时切换到极差的网络环境,App能否给出相应提示
运行App时断开网络,App能否给出相应提示
APP响应能力测试
测试App安装、升级、卸载的响应时间
测试App的各类功能性操作的响应时间
APP稳定性测试
测试点
App反复进行安装卸载,查看系统资源是否正常
其他功能反复进行操作,检查系统资源是否正常
测试工具
Monkey工具
EasyTest(淘宝易测)工具中的Monkey
APP安全测试
App是否支持给自身设计密码,需要密码才能打开App
App是否支持给自身某个比较重要的功能进行加密,需要密码才能使用该功能
App是否能调用手机指纹模块进行解锁App
App是否能调用手机摄像头功能进行人脸识别解锁App
第三方加密工具是否能对该App进行加密的操作
密码设置是否做相应的复杂度限制
App与服务器进行数据交互时,数据内容是否被加密
APP性能综合评估--EasyTest工具
评估典型用户应用场景下,系统资源的使用情况
Benchmark测试(基线测试):与竞争产品的Benchmark,产品演变对比测试等
通话功能测试点
从电话本中调用本地固定/移动电话号码拨打电话
从通话记录中调用本地/移动电话号码拨打电话
从速拨中调用本地固定/移动电话号码拨打电话
接收本地固定/移动电话
在写信息界面有电话呼入时来电名称/大头贴显示正常
通话过程中查看电话本记录正常
通话过程中在短信息中操作正常
通话过程中调整音量有效
WEB(Browser)
WEB服务器
WEB服务器(只能处理HTML页面)
Apache httpd
Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面
Microsoft IIS
Microsoft的Web服务器产品为Internet Information Server (IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务
WEB应用服务器(处理JSP文件,生成动态WEB页面)
IBM WebSphere
WebSphere软件平台能够帮助客户在Web上创建自己的业务或将自己的业务扩展到Web上,为客户提供了一个可靠、可扩展、跨平台的解决方案。作为IBM电子商务应用框架的一个关键组成部分,WebSphere软件平台为客户提供了一个使其能够充分利用Internet的集成解决方案
BEA WebLogic
BEA WebLogic Server 是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库,还是提交服务、跨 Internet 协作,起始点都是 BEA WebLogic Server。由于 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用
IPlanet Application Server
作为Sun与Netscape联盟产物的iPlanet公司生产的iPlanet Application Server 满足最新J2EE规范的要求。它是一种完整的WEB服务器应用解决方案,它允许企业以便捷的方式,开发、部署和管理关键任务 Internet 应用。该解决方案集高性能、高度可伸缩和高度可用性于一体,可以支持大量的具有多种客户机类型与数据源的事务
Oracle IAS
Oracle iAS的英文全称是Oracle Internet Application Server,即Internet应用服务器,Oracle iAS是基于Java的应用服务器,通过与Oracle 数据库等产品的结合,Oracle iAS能够满足Internet应用对可靠性、可用性和可伸缩性的要求
Apache Tomcat
Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好
WEB测试分类
Web UI超链接测试
测试点
测试所有链接是否按照指示的那样确实链接到了该链接的页面
测试所链接的页面是否存在
确保Web应用系统上没有孤立的页面存在
测试工具
Xenu
HTML Link Validator
Web Link Validator
Web表单测试
数据添加功能测试测试点
添加按钮可用,测试点击添加按钮,能否进入相应的添加页面
进入添加页面,验证输入字段和需求描述一致
所有输入字段输入合法数据,点击保存按钮,系统应该有保存成功提示信息,在数据库中有新保存的数据,通过查询页面,也可以查询到添加的数据并且添加的数据正确
重新进入添加页面,所有字段输入有效数据,然后从第一个字段开始,按如下几项依次验证每个输入字段。这样可以保证不遗漏任何字段,同时也可以节省测试时间
重复提交信息,验证系统是否做了相应的处理
在同一款软件的不同界面切换时,每打开一个界面是否总要切换输入法
根据测试用例中设计的非法测试数据,验证对每个非法测试数据程序都能控制,保证不出现报错页面
根据测试用例中设计的编辑测试数据,验证对每个编辑测试数据程序都能控制,保证不出现报错页面
如果需求规定输入字段不能为空,验证程序对非空数据有明显标识或说明,对非空输入字段输入空数据是否有控制
如果需求规定输入字段输入字段不能输入重复数据,验证程序对重复数据是否有控制
如果需求规定字段需要选择输入,验证程序对选择数据是否有控制
数据修改功能测试测试点
修改按钮可用,测试点击修改按钮,能够进入相应的修改页面
修改个字段信息时,验证方法同添加;但还需要验证添加和修改的一致
保存修改内容,重新查询修改后的内容
一条数据引用另一条数据,修改被引用数据后,引用数据中是否跟随变化
数据删除功能测试测试点
可能造成严重后果的删除操作,系统是否支持执行可逆,或给出警告,删除前是否要求确认
删除操作是否正确执行,若删除的内容在文件或数据库中,应该实际校验
删除记录后,再添加一条相同的信息,检查是否能成功添加(如:删除用户后再创建相同登录名的用户)
对可批量删除记录的系统,删除一个或多个记录,检查能否正确执行
如一条数据引用另一条数据后,删除被引用数据,是否提示
删除正在使用的信息,系统能否正确处理
删除级联记录的上游或下游记录,系统能否正确处理
记录中包含的缺省系统信息能否删除
不选择任何记录,直接执行删除,检查系统如何处理,是否会出错
重新使用已删除的数据
关闭删除确认对话框后,记录是否被删除
数据查询和统计测试点
对非法的时间范围系统能否正确处理
查询统计语句包含多个与或非条件时,系统能否正确处理
条件逻辑混乱,系统能否正确处理
多表查询统计及单表查询统计功能是否正确实现
分类查询、精确查询、模糊查询、无条件查询和组合查询能否完整列出满足条件的记录
能否按系统默认的条件进行查询
当系统时间为当日、跨日、跨月、跨季、跨年度时,查询统计结果是否正确
当某些操作被别人取消后,设置条件段为取消前、取消后、包含取消操作的一段时间
以不同的权限登录时,查询、统计是否正确
在查询或统计大数据量时,系统是否允许终止操作
查询、统计按钮是否允许双击或更多的点击,系统做和反应
查询出的数据是否允许修改
查询出的数据是否允许删除
根据数据来源验证查询统计结果的正确性
查询统计结果大于每页默认条数时,翻页查看结果是否正确
导出文件与查询统计结果是否一致
输入非法的查询关键字进行查询,如:输入特殊字符或数据库通配符,查询结果是否正确,是否有正确的提示信息
查询/统计字段是否在数据源中存在,统计报表样式是否符合需求规格
验证码测试点
输入正确的验证码能否正确通过
重新进入验证码输入页面,检查验证码内容是否有变化
刷新页面,检查验证码是否有变化
输入错误的验证码,是否提示有误
将大写的验证码改小写输入,能否正确通过
检查验证码内容,是否显示完整
检查验证码显示速度,是否符合业界标准或用户需求
能否成功更换验证码,以及更换速度是否符合业界标准或需求
表单测试要点总结
文本框测试点
密码框测试点
日期输入框测试点
电话号码输入框测试点
邮件地址测试点
必填字段测试点
单选框测试点
复选框测试点
下拉列表测试点
搜索、排序、分页测试点
共用页面Session测试点
Web Cookies测试
测试点
检查Cookies是否能正常工作
是否按照预定的时间进行保存
刷新对Cookies有什么影响
Cookies查看工具
在火狐浏览器中安装Firebug插件
Cookie Editor:主要针对IE浏览器的一款Cookies查看工具
IECookiesVies:可以帮助搜寻并显示出计算机中的所有Cookies档案的数据,包括是哪一个网站写入Cookis的,有什么内容,写入的时间日期及此Cookies的有效期限等信息
Cookies Manager:主要是对Cookies进行管理的一款工具,删除不想留的Cookies,只保留希望保留的Cookies
My Cookie:可以实时查看、修改IE内Cookies的软件,并且可以设置Cookie值的生命周期
Web UI导航测试
Web应用系统是否易于导航,导航是否直观
Web应用系统的主要部分是否可以主页进行访问
Web应用系统导航是否准确
Web应用系统的页面结构、导航、菜单、链接的风格是否一致
对广告图片的点击是否正常,点击后给出的页面是否正确
检查页面链接是否可以正常点击,点击后链接到的位置是否正确
链接点击后是否正常的发生颜色变化(若特殊处理也需要相应的检查)
链接的打开方式是否合理(在当前窗口中打开、打开新窗口),是否符合产品设计
Web UI图片测试
确保图片有明确的用途
Web应用系统的图片尺寸要尽量地小,并且能清楚地说明某件事,一般都链接到某个具体的页面
验证所有页面字体的风格是否一致
背景颜色应该与字体颜色和前景颜色相搭配
检查图片的尺寸、位置是否符合需求
对广告图片的点击是否正常,点击后给出的图片是否正确
页面上具有相同意义的图标应该保持一致
对于链接其他网站的图片,无法显示时是否有容错性处理
Web UI整体页面测试
调整页面大小,检查页面的布局是否被压缩,重叠,覆盖等
检查需要滚动条的页面是否提供了滚动条,并可有效滚动
页面内容被拉长,拉宽后,检查页面的文字是否还能正确显示,对齐方式,格式都保持一致、正常
对外文和繁体的显示,需要支持,不允许出现乱码
页面中的tab翻页可以正常切换、支持tab按键切换的要检验使用的正确性
多个tab页面间的数据交换更新要检验正确性
页面推荐的内容要保持有结果,可以正常使用
Web UI内容测试
在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷
信息的准确性是否有语法或拼写错误
信息的相关是指是否在当前页面可以找到与当前浏览器信息相关的信息列表或入口,也就是一般Web站点中的所谓“相关文章列表”
Web UI静态文字测试
检查一个页面或者一组中多个页面的字体、size、颜色、位置等因素是否符合需求
检查页面文字图标的间距、行距是否同一,对齐方式是否同一
静态文字的含义是否符合需求
静态文字中是否存在拼写错误
Web系统兼容性测试
平台兼容性
Windows
WinXP(32位)
Win2008(32/64位)
Vista(32/64位)
Win7(32/64位)
Win8(32/64位)
Win10(32/64位)
Linux
Ubuntu(32/64位)
Redhat(32/64位)
CentOS(32/64位)
Fedora(32/64位)
OpenSUSE(32/64位)
Macintosh
Unix
IBM-AIX
HP-UX
Solaris
浏览器兼容性
IE
Firefox
Chrome
Opera
360浏览器
搜狗浏览器
平台兼容性测试点
程序运行界面测试
在跨平台测试时,程序运行界是测试的重点,不同平台呈现出来的界面风格是不同的
在不同平台显示的颜色不一样,而且某些功能在界面上摆放的位置也不同
程序功能测试
需要验证某个功能在不同平台上是否都可以正常运行
在做功能测试时,不同的平台功能上可能有差别
在做功能测试时,要注意功能的变化,会不会影响程序操作界面的显示
浏览器兼容性测试点
界面
在不同的浏览器上运行,所展示的界面是否相符
字体显示是否有错位、重叠、或者显示不全
窗体是否有异常拉伸或缩小
窗体上的按钮是否在指定的位置显示
有些程序在不同的浏览器上运行,界面不一样,但都可以实现相同的功能,这也是符合要求的,不是产品的缺陷,因为不同的浏览器所使用的渲染引擎不一样
控件
对于Web应用程序上某个控件,在不同的浏览器上,是否都能正常运行
窗体上的按钮在不同的浏览器上是否都可以点击
输入框里是否可以正常输入字符
输入字符长度在不同的浏览器上是否相同
在输入字符界面值的保护上,每个浏览器是否相同
图片
比较页面上显示的图片在不同浏览器上大小是否相同
比较页面上显示的图片质量在不同的浏览器上是否有差异
比较页面上的图片在不同的浏览器上是否被拉伸或者被压缩
动画
Web应用程序里设计出来的图片动画,Java applet动画或者Flash动画,在不同的浏览器是否都能正常播放
有些动画,比如Java,Flash需要安装相应的插件支持的,比较安装插件前后播放动画显示的效果
相应时间
点击Web程序里的某一个功能项,在不同的浏览器里相应时间是否有差异,如果相应时间太长,应该就是bug,需要处理
链接
在Web页面或者窗口上有链接的地址,测试在不同的浏览器点击这些链接是否都能正常打开,页面是否都能正常跳转
点击链接之后,有没有造成页面冻结或者奔溃的现象
其他
在不同的浏览器上测试,还要注意浏览器的吞吐量,里面嵌入的脚本是否可以正常运行
Web系统兼容性测试工具
MultiBrowser
MultiBrowser能够同时检查同一页面在Chrome、Firefox、IE等浏览器中的显示是否正常
完整的网页浏览器功能,带多个浏览器的所有功能
自带文本编辑器
输入一个网址,既可同时查看Chrome、Firefox、IE至少三个浏览器的渲染情况
带有标尺缩放等开发工具,通过拖动标尺,能够比较出网页在每个浏览器中最小的差异
能够查看html源代码
优秀、友好的用户界面
刷新页面时清理缓存
能够模拟各种尺寸的显示器
通过“compare”页面,可以实现多网页横向之间的比较功能
Web系统性能测试
Web系统性能指标
并发用户
严格意义:所有的用户在同一时刻做同一件事情或者操作,这种操作一般指同一类型的业务
广义范围:尽管多个用户对系统发出来请求或者进行了操作,但是这些请求或者操作可以是相同的,也可以是不同的。对于整个系统而言,然后是有很多用户同时对系统进行操作
实际上,广义范围的并发更接近用户的实际使用情况,对于大多数的系统,只有数量很少的用户进行“严格意义上的并发”
并发用户数量
在同一时刻,对系统进行同一种业务的操作的用户数量
请求响应时间
客户端发起请求到得到相应的整个过程的时间
事务响应时间
事务可能由一系列请求组成,事务的相应时间主要是针对用户而言,属于宏观上的概念,是为了响用户说明业务相应时间而提出的
吞吐量
在一次性能测试过程中网络上传输的数据量的总和
吞吐率
吞吐量/传输时间
TPS
每秒钟系统能处理的交易或者事务的数量,它是衡量系统处理能力的重要指标
点击率
每秒钟用户想Web服务器提交的HTTP请求数
资源利用率
对不同的系统资源的使用程度,如:服务器的CPU使用率、内存使用率、网络带宽、磁盘占用率等
PV
PV(访问量):即Page View,即页面浏览量或点击量,用户每次刷新即被计算一次
UV
UV(独立访客):即Unique Visitor,访问网站的一台电脑客户端为一个访客。00:00-23:59内相同的客户端只被计算一次
IP
IP(独立IP):指独立IP数,00:00-23:59内相同的IP地址只被计算一次
Web系统性能测试工具
Apache ab
Apache Jmeter
LoadRunner
更多详细工具请参考“测试设计(技术领域)”中的性能测试工具
Web系统安全性测试
SQL注入(使用Scrawlr工具进行扫描)
跨站点脚本漏洞
测试XSS漏洞
更多关于系统安全性测试的内容请参考“测试设计(技术领域)”中的“安全测试”
Web UI测试典型错误
文字或图片重叠、剪裁、没对齐
重复菜单或链接
提示信息错误、Tooltip不显示
JS错误问题
页面链接错误
页面访问资源不可用
出现“404页面错误”
按钮不工作、功能没有实现
错误信息提示不合理
文档无法下载
WEB测试方法
Web测试的常用的检查点
页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确
相关性检查:删除/增加一项是否会对其他项产生影响,如果产生影响,这些影响都是正确
按钮:检查按钮的功能是否正确,如:update,cancel,delete,save等功能是否正确
字符长度检查:输入超过需求说明说的字符长度的内容,查看系统是否检查字符串长度,会不会出错
字符串类型检查:在应该输入指定类型的内容的地方输入其他类型的内容,看系统是否检查字符类型,是否报错
标点符号检查:输入内容包含各种标点符号,特别是空格,各种引号,回车键,看系统是否处理正确
中文字符处理:在可以输入中文的系统输入中文(简体或繁体),看是否会出现乱码或出错
检查带出信息的完整性:在查看信息和update信息时,查看所填写的信息是否全部带出,带出信息和添加的是否一致
信息重复检查:在一些需要命名,且名字应该唯一的信息输入重复的文字或id,看系统有没有处理,是否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否做出正确处理
检查删除功能在一些可以一次删除多个信息的地方,不选择任何信息,按“delete”,看系统如何处理,是否报错,然后选择一个或多个信息,进行删除,看是否做正确处理
检查添加和修改信息的要求是否一致
检查修改重名,修改时把不能重名的项改为已存在的内容看是否会处理
重复提交表单一条已经成功提交的记录,back后再提交,看系统会如何处理
在有back的地方,回到原来的页面,再back,重复几次,看是否会报错
在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确,如果可以输入多个search条件,可以同时添加合理和不合理的条件,看系统处理是否正确
输入信息时,光标和所输入信息是否会跳到别的地方
检查上传和下载文件的功能是否实现,上传是否能打开,对上传文件的格式有什么固定,系统是否有解释信息,并检查系统是否能做到,并检查是否能正常下载
必须填写的项在没有填写的情况下就提交,看系统是否给出提示信息,对必填项是否在前面加*
检查是否支持快捷键,如Ctrl+C,Ctrl+V,BackSpace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否做了限制
输入结束后直接按回车键,查看系统如何处理,是否会报错
登录功能测试方法
快捷键的使用是否正常
TAB键的使用是否正常
上下左右键是否正常
界面如果支持ESC键看是否能正常工作
按ENTER键是否能正常切换到登录状态
输入框测试点
输入合法的用户名和密码
输入合法的用户名和不合法的密码
输入不合法的用户名和合法的密码
输入不合法的用户名和不合法的密码
对于有链接的界面,测试界面上的所有链接都正常或者给出合理的提示
补充输入框是否支持复制和黏贴和移动
用户及权限管理功能常规测试方法
赋予一个人员相应的权限后,在界面上看此人员是否具有此权限,并以此人员身份登录,验证权限设置是否正确
删除或修改已经登录系统并正在进行操作的人员的权限,程序能否正确处理
重新注册系统变更登录身份后再登录,看程序是否能正常执行,具有权限是否正确
在有工作组或者角色管理的情况下,删除包含用户的工作组或角色,程序能否正确处理
不同权限用户登录同一个系统,权限范围是否正确
覆盖系统所有权限的设定
能否添加信息为空的用户(包括空用户名及空口令、空用户名非空口令、非空用户名及空口令)
能否添加长用户名及长口令,如果允许,新用户能否正确登录
系统是否允许删除系统管理员这一特殊用户或修改系统管理员口令,删除或修改后系统的实际情况
登录用户能否修改自己的权限
添加用户(有标识或编号):标识相同,用户名不同;标识相同,用户名相同;标识不同,用户名相同;标识不同,用户名不同
登录用户能否修改本人(或其他人)的信息,删除本人(或其他人)
修改用户的信息(包括权限,口令,基本信息等),对其他模块的影响
修改用户信息:修改后的用户信息和已存在的用户信息相同;修改后的用户信息和已经存在的用户信息不同
不给用户授权,是否允许登录
修改某些设置时,是否会影响到具有上级权限及相同权限人员的设置
系统管理员修改了某些数据,以其他人员身份登录时数据是否改变
用户能否同时属于多个组,各个组的权限能否交叉;删除后重新添加的用户是否具有以前的权限;更改用户各项属性(包括权限)看对权限是否有影响
搜索功能测方法
页面检查
默认条件搜索
修改可选条件搜索
修改输入条件搜索
修改区间条件搜索
组合可选、输入条件搜索
操作后检查搜索条件及查询结果
错误、空记录搜索
输入框的测试方法
验证输入与输出的信息是否一致
输入框之前的标题是否正确
对特殊字符的处理,尤其是输入信息需要发送到数据库的
对输入框输入超过限制的字符的处理,一般没有做出限制的在255byte左右
输入框本身的大小、长度
对空格、TAB字符的处理机制
字符本身显示的颜色
密码输入窗口转换成星号或其他字符
密码输入框对其中的信息进行加密,防止采用破解星号的方法破解
按下Ctrl和Alt键对输入框的影响
对于新增、修改、注册时用的输入框,有限制的,应该输入时作出提示,支出不允许的或者标出允许的
对于有约束条件要求的输入框应当在条件满足时输入框的状态发生相应的改变
根据前面的栏位标题判断该输入框应该输入哪些内容算是合理的
数据库字段有长度定义,当输入过长时,提交数据是否会出错
当处于某种状态下,输入框是否处于可写或非可写状态
如果是会进行数据库操作的输入框,还可以考虑输入SQL中一些特殊符号如单引号等,有时会有意想不到的错误出现
输入长度是否允许复制黏贴、为空的情况、空格、半角全角
先了解要测试的输入框在软件的某个功能中所扮演的角色,然后了解其具体的输入条件,再将输入条件按照有效等价类、无效等价类、边界值等方法进行测试用例的设计
关键字有大小写混合的情况
关键字中含有一个或多个空格的情况,包括前空格、中间空格、后空格
关键字中是否支持通配符的情况
关键字的长度分别为9、10、11个字符时的情况
关键字是有效的,但是没有匹配搜索结果的情况
输入html的标签会出现哪些问题?输入<;html>;会出现什么问题
安全测试方面:给出一些特别的关键字,比如 or 1=1,这样的关键字如果不被处理就直接用到数据库查询中去,后果很严重
PC(Client)
安装测试
正常情况
软件在不同操作系统(版本)下安装
软件安装后是否能正常运行,安装后的文件夹及文件是否写到了指定的目录里
软件安装过程中各个选项的组合是否符合需求/设计说明
软件安装过程中向导的UI测试
软件安装过程中是否支持快捷键,快捷键的设置是否符合用户需求
对安装手册进行测试,依照安装手册是否能顺利安装
安装过程中是否有安装状态进度条提示
异常情况
软件安装过程中是否可以取消,点击取消后,写入的文件是否如需求/设计说明进行处理
软件安装过程中意外情况的处理是否符合需求(如死机、重启、断电、断网)
安装过程中是否可以回溯(即是否可以上一步,重新选择)
对某些软件需要考虑客户端的安装、服务器的安装、数据库的安装及单机版和网络版的安装
在磁盘空间不足的情况下进行安装,软件是否有相应提示
运行与关闭测试
软件运行时是否与其他应用软件发生冲突
该软件是否可以同时运行多个
任务栏是否有软件的进程显示
若未保存数据,关闭软件时是否给出提示信息
软件点击关闭按钮时是否有确认关闭的提示信息
软件运行时是否过度占用系统资源,退出时能否完成释放占用的系统资源
测试打开软件时能否正确读入并显示用户数据
测试关闭软件时能否正确保存用户数据或提示用户保存数据
卸载测试
正常情况
使用软件自带的添加/删除程序进行卸载
使用软件自带的卸载程序进行卸载
使用第三方卸载软件进行卸载(如:360安全卫士)
卸载后文件是否全部删除(包括:安装文件夹、注册表、系统环境变量等)
卸载程序时是否有卸载状态进度条提示
异常情况
卸载过程中出现意外情况的测试(如:死机、断电、断网、重启)
卸载是否支持取消功能,单击取消后软件的卸载情况,是否能回滚到卸载前的状态
如果软件有调用系统文件,在卸载软件时,是否给出相应的提示
升级测试
正常情况
升级后的功能是否与需求说明保持一致
与升级模块相关的模块的功能是否与需求保持一致
升级界面的UI测试
不同版本间的升级测试
对于不同旧版本软件系统,升级程序能否自动检测旧版本,并对不同版本的升级有不同的策略
当软件有更新时,是否有提示信息,并对新增的部分作出说明,提示用户升级
当版本为非强制升级版本时,用户可以取消升级,旧版本依旧能正常使用,用户在下次打开软件时,仍能出现升级提示
当版本为强制升级版时,当给出强制升级后用户没有做升级操作时,退出客户端,下次启动软件时,仍出现强制升级提示
当客户端有新版本时,在本地不删除客户端的情况下,检查升级后的客户端功能是否是新版本所具备的功能
在进行升级安装过程中,是否有安装状态进度条提示
软件升级是否能正常完成
软件升级后能否正常使用
异常情况
升级安装意外情况的测试(死机、断电、断网、重启)
对已经升级的版本再次升级是否能自动识别并给出相应的提示信息
升级完成之后,用户的数据是否跟升级前保持一致
磁盘空间不足的情况下进行升级,程序是否能给出相应的提示信息
UI界面测试
菜单、按钮、图标、文本框、对话框等内容的显示是否显示正常
出错提示、帮助信息、文字、图片等内容的显示是否正常
文字表述应该通俗易懂,用词准确,摒弃模棱两可的字眼,要与同一界面上的其他内容易于区分,最好能望文生义
理想的情况下是用户不用查阅帮助就能知道该界面的功能并进行相关的正确操作
软件的界面设计是否按照业界的规范来设计
界面中关键内容是否放在屏幕中最能吸引用户眼球的位置
在不同的操作系统下验证UI的显示(如:WinXP Win7、Win8、Win10)
调整机器的分辨率,验证UI在不同分辨率下的显示是否正常
软件的操作界面是否友好
功能测试
对产品的各项功能进行验证,根据需求检查产品是否达到用户要求
通过输入数据在预期结果和实际结果之间进行评测,从而使产品更好地达到用户使用的要求
字符输入测试
可以输入有效字符、字符输入长度、内容等
验证在进行非法数据输入时,软件能否给出错误提示,以及错误提示信息是否正确、合理等
测试边界值
测试特殊字符
测试对代码的攻击
ToolTip测试
验证ToolTip能否出现
验证ToolTip出现的位置是否合理
验证ToolTip出现和消失的时间是否合理
链接测试
设置有链接的字符有下划线标识
当鼠标移动到链接上时,鼠标是否会变成一个“手”的形状
测试链接是否按照链接指示确实链接到该链接的页面
测试所链接的页面是否正确
导航测试
按钮、对话框、列表和窗口等;或在不同的链接页面之间需要导航
是否易于导航,导航是否直观
导航帮助是否准确直观
导航与页面结构、菜单、链接页面的风格是否一致
操作按钮测试
当鼠标点击按钮时,按钮会发生一定的变化
当鼠标移开时,按钮恢复原状
点击按钮后,验证相应的功能是否能实现,如点击“取消”按钮时,窗口是否会关闭
检查按钮上的文字是否排列整齐、是否居中、大小是否一致
菜单测试
测试快捷键是否有效
菜单分为一级菜单、二级菜单和更深层的菜单,一级菜单后面带有箭头的,就应该有二级菜单,验证这些菜单是否能正常打开
验证菜单能否指向正确的功能
软件运行权限测试
操作系统的账号一般分为标准用户和管理员用户,测试验证在不同类型的用户环境下,软件是否能正常安装和运行
在软件中如果涉及多用户,不同的用户,根据需要分配不同的权限,主要是验证用户所能使用的权限,是否和所分配的权限相匹配
软件运行日志查看
软件运行日志(Trace)是否记录软件运行的轨迹的文件
比如软件登录时使用的用户名称、打开了哪些窗口、执行了哪些操作以及一些软件异常等
不同的软件,Trace的存取路径不一样,命名方法也不同,测试时需要根据具体的软件查找Trace所在的位置
Trace对测试人员提交bug和开发人员调试都起到非常重要的作用,在报告缺陷时,提供软件的Trace是很有必要的
软件兼容性测试
Windows
WinXP(32位)
Win2008(32/64位)
Vista(32/64位)
Win7(32/64位)
Win8(32/64位)
Win10(32/64位)
Linux
Ubuntu(32/64位)
Redhat(32/64位)
CentOS(32/64位)
Fedora(32/64位)
OpenSUSE(32/64位)
Macintosh(32/64位)
Unix(32/64位)
IBM-AIX(32/64位)
HP-UX(32/64位)
Solaris(32/64位)
软件的性能测试
软件的性能方面
测试打开软件所需要的时间长短
测试关闭软件所需要的时间长短
测试软件运行过程中是否稳定、流畅
软件进程之间是否发生互斥、死锁的情况
测试软件占用系统的各项资源情况
软件的性能监控及调优方面
系统(Linux)性能监控及调优工具
top:提供运行系统的动态实视图。显示系统摘要信息以及任务列表
uptime:显示系统平均负载
ps、pstree:提供当前进程列表
free:显示系统中空闲内存和已使用内存的数量
mpstat:报告处理器相关的统计数据
vmstat:报告进程、内存、磁盘、系统、CPU的统计信息
iostat:报告CPU统计数据,还有设备和分区的输入/输出统计数据
netstat、ss:显示相关网络统计信息
sar:收集、报告系统活动信息
numastat:显示每个NUMA节点的内存统计信息
pmap:报告一个进程的内存映射
iptraf:交互式局域网监控程序
tcpdump、wireshark:用来捕捉和分析网络数据、流量等信息
strace、ltrace:系统调用和库调用跟踪程序
gnuplot:命令行绘图工具,分析系统性能时用到
Gnome System Monitor:Gnome桌面环境的图形性能分析工具
KDE System Guard:KDE任务管理器和性能监控器
系统(Windows)性能监控及调优工具
Performance Monitor
Windows服务器中自带的性能监控工具,在开始-运行中输入‘perfmon’,然后回车即可运行,这个工具在帮助管理员判断系统性能瓶颈时非常有用
WSRM
WSRM可用于向应用程序、用户、远程桌面服务(RDS)会话和因特网信息服务(IIS)应用程序池(application pools)分配处理器和内存资源,WSRM只有在处理器负载利用率超过70%时才会获取相关的信息,此时的管理员可以创建自定义的资源政策、程序和工作优先级
Xperf:Xperf是Windows Server 2008中解决系统使用率、磁盘I/O占用太高等问题的最佳选择
CPUMon v2.0:CPU性能监视工具。可以获取CPU计数器信息。该版本集成了Perfmon
DebugView v4.31:截取Win32设备驱动程序发出的消 息,允许通过本机或网络查看和录制调试信息而不打开一个活动的调试器
Diskmon v2.01:显示硬盘的活动信息
Filemon v6.12:实时监视操作系统中活动的文件
Handle v2.20:显示进程及其打开的文件等信息
ListDLLs v2.23:列出当前系统加载的所有dll文件、调用它的执行程序及dll版本路径等详细信息
NTFSInfo v1.0:查看NTFS卷的详细信息,包括大小、文件分配表的大小起止位置,还有元数据文件的大小等
PMon v1.0:监视进程的创建、删除,也包括显示多CPU机器或checked kernel 机器上的上下文交换信息
Portmon v3.02:端口监视工具,监视端口收发的信息等
Process Explorer v8.52:查看进程所打开的文件,注册表和其他对象,并显示加载了那些dll
PsTools v2.1:包含一套命令行工具,包括显示本机或远程机器上运行的进程,在远程机器上运行进程,重启机器,记录日志等
Regmon v6.12:实时监视注册表的活动
TCPView v2.34:监视本机TCP和UDP协议的活动情况,并显示使用该协议的进程,包括了dos版本
TDImon v1.01:通过网络API实时监视TCP和UDP协议的活动情况
Tokenmon v1.01:令牌监视器,监视与信息安全相关的活动,比如登录,退出等
Winobj v2.13:对象命令空间管理器。增强了用户界面,显示更多对象类型,并集成了NT的本地安全设置
CacheSet v1.0:缓存设置器。设置NT使用的缓存空间大小
Contig v1.51:可以使文件变的连续,提高访问速度
Frob v1.6a:设置优先相应前台程序还是后台服务
PageDefrag v2.3:磁盘文件和注册表整理
软件的安全性测试
软件的安全性测试请参考“测试设计(技术领域)”中的安全测试的部分内容
各领域通用的功能测试点
用户注册功能测试点
必填项分别为空进行注册
用户名含有非法字符进行注册
两次输入密码不一致进行注册
密码含有非法字符进行注册
以不正确的用户名格式进行注册
以不正确的邮箱格式进行注册
以不正确的手机号格式进行注册
以已注册的用户名进行注册
以已注册的邮箱进行注册
以已注册的手机号进行注册
用户名和密码长度都为【最大值】进行注册
用户名长度为【最大值】+1进行注册
密码长度为【最大值】+1进行注册
用户名和密码都为【最小值】进行注册
用户名长度为【最小值】-1进行注册
密码长度为【最小值】-1进行注册
用户名和密码长度在【最小值,最大值】之间进行注册
改变已存在用户的用户名的大小写进行注册
Tab按键是否正确响应
用户登录功能测试点
使用正确的用户名和密码进行登录
使用错误的用户名或密码进行登录
用户名和密码均为空进行登录
用户名为空进行登录
密码为空进行登录
改变合法用户名或密码字母的大小写进行登录
在合法的用户名或密码之前插入空格进行登录
在合法的用户名或密码中间插入空格进行登录
在合法的用户名或密码之后插入空间进行登录
使用已被禁用的账号进行登录
使用已被删除的账号进行登录
用户修改密码功能测试点
新密码长度在【最小值,最大值】之间进行修改
新密码长度为【最小值】进行修改
新密码长度为【最大值】进行修改
不输入旧密码进行修改
输入 错误的旧密码进行修改
确认新密码输入为空进行修改
新密码与确认新密码不一致进行修改
新密码长度为【最大值】+1进行修改
新密码长度为【最小值】-1进行修改
新密码中输入非法字符进行修改
对错误或不存在的用户进行修改密码
输入的新密码与旧密码一致进行修改
密码修改界面是否支持快捷键,如:Tab,Enter键等
测试设计(测试阶段)
单元测试(由开发人员完成)
测试每个子模块所定义的功能是否实现
该子功能和同级的其他模块的功能之间没有相互依赖的关系
把每个模块作为一个单独的实体来测试
确保每个模块作为一个单元能正确运行
对子模块的接口、路径进行测试
这个阶段所发现的往往是编码和详细设计说明书的错误
集成测试(由开发、测试人员共同完成)
把经过单元测试的子模块拼接在一起形成一个子系统来测试
测试重点为各个子模块相互间的协调和通信
对子系统的接口、路径、功能、性能进行测试
这个阶段能发现概要设计说明书中的错误
确认测试(由测试人员完成)
检查已实现的软件是否满足了需求规格说明中确定了的各种需求
检查软件的 配置是否完全、正确
可以将该阶段合并入系统测试阶段
Alpha测试(由一个用户或公司内部的用户在开发环境下完成)
由一个用户在开发环境下进行测试
开发人员参与其中
可以是公司内部的用户在模拟实际操作环境下进行的测试
在受控制的环境下进行的测试
目的是评价软件产品的FURPS(功能、可使用性、可靠性、性能和支持)
Alpha测试人员是除开发人员之外首先见到产品的人,Alpha测试人员提出的功能和修改意见很有价值
Alpha测试可以从产品编码结束之时开始,或在集成测试完成之后
也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始
系统测试(由测试人员完成)
把经过确认的子系统纳入实际运行的环境中,与其他子系统组合在一起进行测试
对整个系统的功能、用户界面、健壮性、性能、安全等进行测试
验证系统确实能提供需求说明中指定的功能
而且系统的动态特性也符合预定要求
验收测试(由开发、测试、客户完成)
对整个软件系统进行测试,测试内容与系统测试基本类似
在用户的积极参与下、主要使用实际数据(系统将来要处理的数据)进行测试
目的是验证系统确实能够满足用户的需求
在这个阶段往往能发现系统需求说明书中的错误
Beta测试(由一个或多个用户在实际的用户环境下完成)
由软件的多个用户在一个或多个用户的实际使用环境下进行的测试
开发人员不参与这个阶段
Beta测试是在开发者无法控制的环境下进行的软件现场应用
由用户记下遇到的所有问题,包括真是的以及主观认定的,定期向开发者报告
开发者在综合用户的报告之后,做出修改,最后将软件产品交互给全体用户使用
Beta测试主要衡量产品的FURPS(功能、可使用性、可靠性、性能和支持)
着重于产品的支持性,包括文档,客户培训和支持产品的生产能力
只有当Alpha测试进行到一定的可靠程度时,才能开始Beta测试。
Beta测试在整个测试的最后阶段
产品的所有手册及文本也应该在此阶段完全定稿
由于Beta测试的主要目标是测试可支持性,所以Beta测试应尽可能由主持产品发行的人员来管理
例如游戏的公测就是Beta测试
测试设计(行业领域)
互联网(未完待续)
金融(未完待续)
通信(未完待续)
执行测试
谁来执行测试
一个软件产品的开发通常涉及开发者和测试者两种角色。开发者通过开发而形成产品,例如分析、设计、编码、调试或者文档编制等
测试者则通过测试来检测产品中是否存在缺陷,包括根据特定的目的设计测试用例、构造测试、执行测试以及评估测试结果等
一般的做法是:开发机构负责他们自己代码的单元测试,而系统测试则由一些独立的测试人员或专门的测试机构进行
测试什么
表现在程序中的故障,并不一定是编码所引起的。很可能是详细设计、概要设计阶段,甚至是需求分析阶段的问题引起的
即使针对源程序进行测试,所发现故障的根源也可能在开发前期的各个阶段。解决问题、排除故障也必须追溯到前期的工作
软件需求分析、设计和实施阶段是软件故障的主要来源,因此,需求分析、概要设计、详细设计以及程序编码等各个阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象
当因进度、人力、物力等原因,不可能对软件的每一部分进行完全测试时, 应采取什么策略来设计测试用例呢?是随机生成测试用例?还是测试软件中常用的功能或高风险的部分?
不言而喻,将精力花在系统的常用功能或高风险的部分是适当的
何时开始测试
测试是一个与开发相并行的过程,还是当开发取得一定阶段性成果之后的活动或是开发结束之后的活动?
实践表明,随着开发的深入,未进行测试的模块对整个软件的潜在破坏作用就越明显
测试开始得时间越早,测试执行得越频繁,所带来的整个软件开发成本的下降就会越多
尽早测试能够大大减少将所有模块装配到项目中以后出现问题的可能性
怎样进行测试
软件“规范”说明了软件本身应该达到的目标,程序“实现”则是一种对应各种输入如何产生输出结果的算法
规范说明一个软件要做什么,而程序实现则规定了软件应该怎样做
根据软件的功能规范说明和程序实现,利用各种测试方法,设计有效的测试用例,对软件进行测试
测试停止的标准是什么
从现实和经济的角度来看,对软件进行完全测试是不可能的
成功地采用了具体的测试用例设计方法
每一类覆盖的覆盖率
故障检测率(即每一单元测试时间内检测出的故障数)低于指定的限度。基于故障检测数量的标准必须注明故障的严重性程度
检测出故障的具体数量(估计存在故障总量的比率)或消耗的具体时间等
bug处理
什么是bug
软件未实现产品说明书要求的功能
软件出现了产品说明书指明不应该出现的的错误
软件实现了产品说明书未提到的功能
软件未实现产品说明书虽未明确提及但应该实现的目标
软件难以理解、不易使用、运行速度慢,或者软件测试员认为最终用户会认为不好
出现bug的原因
产品说明书描述得不全面、不完整和不正确,经常更改,或者整个开发组没有很好地沟通和理解
软件设计说明书片面性、多变、理解与沟通不足
文档不足、进度压力、设计、编码错误等因素引起
软件实施过程中安装、配置错误引起
什么情况下不修复某些bug
项目周期短,没有足够的时间
不算真正的软件缺陷
修复风险过大
不值得修复
缺陷报告中提出的问题无法重现
报告bug原则
尽快报告软件缺陷
有效描述软件缺陷
客观报告软件缺陷
对软件缺陷报告跟踪到底
如何发现软件bug
根据软件需求说明书
查找时间依赖和竞争条件的问题
查找边界条件、内存泄漏和数据溢出缺陷
查找状态转换时出现的缺陷
查找资源依赖性:内存、网络、硬件等方面的缺陷
查找硬件相关方面的缺陷,比如硬件兼容性方面的缺陷
bug的严重性
A类---严重错误(Critical)
由程序所引起的死机,非法退出
死循环,数据库发生死锁
因错误操作导致程序中断
功能错误
与数据库连接错误
数据通讯错误
B类---较严重错误(Major)
程序错误
程序接口错误
数据库的表、业务规则、缺省值未加完整性等约束条件
C类---一般性错误(Minor)
操作界面错误
打印内容、格式错误
简单的输入限制未放在前天进行控制
删除操作未给出提示
数据库表中有过多的空字段
D类---较小错误
界面不规范
辅助说明描述不清楚
输入输出不规范
长操作未给用户提示
提示窗口文字未采用行业术语
可输入区域和只读区域没有明显的区分标志
E类---测试建议
bug的优先级
紧急
正常
低
bug的生命周期
打开状态(Open)
解决状态(Resolved)
关闭状态(Closed)
审查状态(Review)
推迟(Deferred)
提交bug需要收集的信息
bug的严重等级
bug所在的模块
bug发现的时间
bug所在的版本号
bug的发现者
负责修改bug的工程师
bug报告
标识符
总结
bug的严重性
bug的优先级
测试描述
日期和时间
测试员姓名
使用的硬件和软件配置信息
测试输入数据
测试步骤
预期结果
实际结果
关闭bug时需要收集的信息
bug关闭的时间
关闭bug的版本
修复bug而改动的代码行数
产生bug的根本原因(如:需求,分析,编码,软/硬件配置)
bug管理工具
QC(Quality Center)前身是TestDirector
Mantis
BugFree
QAMonitor
Bugzilla
测试报告
引言
编写目的
项目背景
系统简介
参考文档
测试设计总结
测试用例设计
测试环境与配置
测试方法和工具
测试结果及分析
测试执行情况与记录
bug汇总
测试覆盖
测试结论与建议
结论
测试用执行状态汇总图
bug汇总表
建议
测试经验总结