一、安全测试方法
常见的安全测试方法主要有功能验证、漏洞扫描、模拟攻击和数据侦听
二、安全防护策略
安全日志、入侵检测、漏洞扫描、隔离防护
安全日志:安全日志用于记录非法用户的登录名称、操作时间及内容等信息,以便发现问题并提出解决措施;安全日志仅记录相关信息,不对非法行为做出主动反应,属于被动防护的策略;
入侵检测系统:入侵检测系统是一种主动的网络安全防护措施,从系统内部或各种网络资源中主动采集信息,从中分析可能的网络入侵或攻击,通常入侵检测系统还应对入侵行为做出紧急响应;
漏洞扫描:漏洞扫描是对软件系统及网络系统进行与安全相关的检测,以找出安全隐患和可被黑客利用的漏洞;
隔离防护:隔离防护是将系统中的安全部分与非安全部分进行隔离的措施,主要的技术手段有防火墙和隔离网闸等,其中防火墙主要用于内网和外网的逻辑隔离,而网闸则主要用于实现内网和外网的物理隔离。
三、防火墙安全防护测试
系统采用防火墙技术来实现安全防护,在进行安全防护测试时,主要考虑以下测试点
(1) 是否支持对HTTP、FTP、SMTP等服务类型的访问控制
(2) 是否考虑到防火墙的冗余设计
(3) 是否支持交换和路由两种工作模式
(4) 是否支持对日志的统计分析
(5) 是否支持日志的本地或远程数据库存储
(6) 对非法攻击是否具有多种警告方式和警告级别
四、软件测试阶段划分
按照开发阶段软件测试可以分为单元测试、集成测试,系统测试、确认测试和验收测试。
单元测试是针对软件程序模块进行正确性检验的测试工作;
集成测试是检验程序单元或部件的接口关系,即针对软件体系结构的构造进行的测试;
系统测试是为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试;
确认测试提检验与证实软件是否满足软件需求说明书中规定的要求;
验收测试是按照项目任务书或合同、约定的验收依据文档等进行的整个系统的测试与评审,决定是否接收或拒收系统。
五、软件问题
软件错误是指在软件生命周期内的不希望或不可接受的人为错误,其结果将导致软件缺陷的产生。
软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差,其结果是软件运行于某一特定条件时,将出现软件故障。
软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态。故障是一种状态行为,是指一个实体发生障碍和毛病。
软件失效是指软件运行时产生的一种不希望或不可接受的外部行为结果。软件失效时系统行为对用户要求的偏离,是一种面向用户的概念
六、软件测试原则
(1)所有的软件测试都应该追溯到用户需求
(2)尽早地和不断地进行软件测试
(3)应由不同的测试人员对测试所发现的缺陷进行确认
(4)测试无法显示软件潜在的缺陷
(5)充分注意测试中的集群现象
(6)程序员应避免检音自己的程序
(7)尽量避免测试的随意性。一般情况下测试应采用增量测试,由小到大
(8)测试是一项协同完成的创造性的工作
七、结构化分析模型
该模型的核心是数据字典,它描述了在目标系统中使用和生成的所有数据对象。围绕这个核心有三种图:数据流图描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能或子功能,用于功能建模;实体关系图描述数据对象及数据对象之间的关系,用于数据建模;状态迁移图描述系统对外部事件如何响应,如何动作,用于行为建模。
八、负载测试与压力测试
负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的情况。
压力测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试。
九、黑盒测试用例设计方法
等价类划分法、边界值分析法、因果图法、判定表驱动法、场景法、错误推测法、正交试验法、功能图法
十、基本路径测试法
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。