软件评测师考试(再来看一遍书,整理知识点)

安全测试与评估

几乎整章都是知识点,记不住就熟读吧,至少能写出一些关键字 (叹气····)


1、测试与评估内容

用户认证机制(保证数据安全的基础)

最普通:口令

目前主要:数字证书、智能卡、双重认证、安全电子交易协议(SET)

加密机制(保护数据安全的重要手段) 测试手段:模拟解密
安全防护策略(对抗攻击的主要手段)

主要:

1、安全日志:被动防护

2、入侵检测:主动,防护墙之后的第二道安全闸门;

3、隔离防护:隔离网闸(内、外网的物理隔离)和防火墙(内、外网的逻辑隔离);

4、漏洞扫描:测试手段:漏洞扫描技术;

数据备份与恢复手段(数据安全策略)

中小型软件系统:利用数据库原有的备份与恢复机制;

大型软件系统:备份到磁带上

 

利用高性能的备份软件来防治逻辑损坏和物理损坏;

 

涉及到的技术:

1、存储设备:磁盘阵列、磁带机、光盘库、SAN设备

2、存储优化:DAS、NAS、SAN;

3、存储保护:磁盘阵列、双机容错、集群、备份与恢复;

4、存储管理:数据库备份与恢复、文件与卷管理、复制、SAN管理、异地容灾

 

对软件和系统的数据备份与恢复的效果进行测试;

防病毒系统

防毒技术:

1、集中式管理、分布式杀毒:

对局域网进行远程集中式安全管理,统一升级杀毒引擎和病毒定义;对本地节点的所有文件查杀病毒,减少网络传输负载。集中管理方式(以策略为中心、以服务器为中心)

2、数据库技术、LDAP技术的应用:

用户管理、日志存储

3、多引擎支持:

提高杀毒成功率

4、不同操作系统的防护

5、远程安装或分发安装

 

对网络防毒软件的选购、部署方式、策略定义进行评估和测试;

 2、安全系统测试策略

基本安全防护系统测试

防火墙

入侵检测

漏洞扫描

安全审计

病毒防治

web信息防篡改

物理安全

安全系统防护体系

实体安全:物理

平台安全:网络、操作系统、服务、数据库平台

数据安全:数据机密性、完整性、访问控制、可恢复性;

通信安全:数据通信和会话访问不会被非法侵占;

应用安全:业务运行逻辑安全、业务资源访问控制、业务交往不可抵赖性、业务实体身份鉴别、业务数据真实完整性;

运行安全:动态维护和保障

管理安全:人员、技术、操作的管理;

记忆:食品书童应运管

安全系统的测试

真要考到具体的测试就把能写的都写出来,然后放弃吧

 

1、证书业务服务系统测试

2、证书查询验证服务系统测试

3、密钥管理系统测试

4、密码服务系统测试

5、可信授权服务系统测试

6、可信时间戳服务系统测试

7、网络新人域系统测试

8、故障恢复与容灾备份测试

9、安全产品的选择

 3、安全性测试方法

功能验证 黑盒测试方法,验证用户管理模块、权限管理模块、加密系统、认证系统的功能是否有效
漏洞扫描

借助特定的漏洞扫描器,自动检测远程霍本地主机安全性漏洞,及时修补漏洞。

 

可用于日常安全防护,也可作为对产品或系统进行测试的手段;

 

主机漏洞扫描器:系统本地运行检测系统漏洞的程序;

网络漏洞扫描器:基于网络远程检测目标网络和主机系统漏洞的程序;

模拟攻击试验

特殊的黑盒测试案例,以模拟攻击来验证软件或信息系统的安全防护能力。

 

冒充:一个实体假装成一个不同的实体

1、口令猜测

2、缓冲区溢出:恶意用户用程序打开安全缺口,把代码放在有效载荷末尾,缓冲区溢出时,返回指针指向恶意代码并执行,获得系统控制权;

 

重演:一个消息或部分消息为了产生非授权效果而被重复;

 

消息篡改:数据所传送内容被改变而未被发掘,导致非授权后果

1、DNS高速缓存污染

2、伪造电子邮件

 

服务拒绝:当一个实体不能执行它的正常功能,或它的动作妨碍了别的实体执行它们正常功能的时候

 

侦听技术

在数据通信或数据交互过程,对数据进行截取分析。

 

数据包捕获技术:用于对网络加密的验证

4、软件产品安全测试

软件产品安全测试测重点 用户对于数据或业务功能的访问控制,数据存储和数据通信的远程安全控制
用户管理和访问控制 用户权限控制

应用软件本身、操作系统、数据库

 

主要:用户名和密码登录;

高级:指纹认证、智能卡认证;

 

测试注意:

1、体系合理性,释放采用三层架构的管理模式(系统管理员、业务领导、操作人员);

2、用户名唯一性(不考虑大小写的状态下不考虑同名,用户删除或停用后保留用户记录不能同名);

3、用户口令强度(最大口令时效、最小口令时效、口令历史、最小长度、复杂度、加密选项、口令锁定、账户复位)

操作系统安全性的测试

1、是否关闭或卸载了不必要的服务;

2、是否存在不必要的账户;

3、权限设置是否合理;

4、安装相应的安全补丁程序的情况;

5、操作系统日志管理;

数据库权限的测试

1、注意对账户的保护,超管口令不得为空或默认,锁定默认的数据库用户,撤销不必要的权限;

2、关于用户权限和口令存储的相关表格,采用加密算法加密;

3、使用网络侦听技术,或白盒进行测试,并建议开发者根据不同程序访问数据库的功能,使用不同的数据库进行连接,且必须设置复杂的密码。

通信加密

保证数据在传输过程中数据的保密性和一致性的测试;

 

链路加密、数据加密;

 

加密技术:

1、VPN:Kebores加密算法结合IPSec加密协议,广域网;

2、对称加密算法:RSA、DES

3、非对称加密算法:DSA

4、HASH算法:保护数据内容的一致性

安全日志测试

记录所有用户访问系统的操作内容

 

对日志的完整性、正确性进行测试,内容是否正确,是否提供智能统计分析能力,是否可以按照各种特征项进行日志统计,分析潜在安全隐患,即使发现非法行为。

Web应用测试

1、web系统测试概述

web系统构成

B/S:客户端浏览器、Web应用服务器、数据库服务器

 

多层架构(J2EE、.NET):界面层、业务逻辑层、数据层

结构上:客户端、传输网络、服务器

 

典型的:倒拨浪鼓结构

1、访问客户端:各种浏览器

2、Web应用服务器:UNIX上的Apache、WebLogic,Windows上的Tomcat、IIS

3、数据库

4、网络及中间件:Internet/Intranet/Extranet、局域网,传输或交易中间件

5、防火墙与CA认证

 

为承受较大访问压力,采用负载均衡技术,使用多个Web应用服务器,分担来自客户端的访问压力。

web系统设计技术

1、静态页面(HTML)和动态页面(按输入信息作出不同响应);

2、网络开发技术:

  • ASP:对组件和对象的充分支持;
  • JSP:范围更广、易于维护和管理;
  • ColdFusion:可视化、简化开发过程、CFML标签;
  • PERL:文字分析报告语言;
  • PHP:超文本预处理器,综合继承C;

3、CGI(通用网关接口)程序:早期接口标准;

4、J2EE:企业应用;

5、.NET:以webservices为核心,底层实现类似Java虚拟机的CLR和基础类库;

6、WebServices:互操作的分布式应用程序平台,采用XML,灵活方便强大;

web系统的测试策略
  1. 按系统架构分:客户端测试、服务器测试、网络上的测试;
  2. 按职能分:应用功能的测试、web应用服务的测试、安全系统的测试、数据库服务的测试;
  3. 按软件的质量特性分:功能测试、性能测试、安全性测试、兼容性测试、易用性测试;
  4. 按开发阶段分:设计的测试、编码的测试、系统的测试;
  5. 现在的分类:web应用设计测试、web应用开发测试、web应用运行测试

2、web应用设计测试

 

总体架构设计的测试

1、采用瘦客户端或胖客户端是否适合需求:

瘦客户端:只做少量处理,业务逻辑规则多数在服务器端执行,适合对客户端没用特殊要求、用户量庞大并且分散的web应用系统;

胖客户端:浏览器还得执行组件,减轻服务器端的处理强度,与服务器之间由较强的交互能力。

 

2、确定web架构的组成部分是否满足需求:

考虑成本、功能、安全性要求、容量要求、传输实时性等;

除了验证是否满足需求,还要检查组成是否兼容;

 

3、服务器的配置及分别是否满足要求:

单单元、双单元、三单元;

基于NT的web、数据库、应用服务器;

基于UNIX的web、应用、数据库服务器

测试重点是验证服务器端的配置和分布是否满足用户的功能性能成本等需求;

客户端设计的测试

1、功能设置的测试:验证功能设置能否满足用户需求

信息服务、办公自动化、Internet支持

 

2、信息组织结构设计的测试:验证设计模式是否适合信息的特点,能否使用户直观、快捷地流量到所需信息。

信息发布是重要功能;

设计结构:线性结构设计(向前向后搜索信息)、分层结构设计(向上向下搜索)和非线性结构设计(随机);

 

3、页面设计测试:

页面的一致性如何;

在每个页面上是否涉及友好的用户界面和直观的导航系统;

是否考虑多种浏览器的需要;

是否建立了页面文件的命名体制;

是否充分考虑了合适的页面布局技术(层叠样式表、表格、帧结构);

服务器端设计的测试

1、容量规划的测试:

估算点击率(每秒HTTP的请求数、每秒被访问次数)是否满足需求;

估算延迟和流量是否满足需求(能否达到用户期望值,考虑流媒体传输);

估算web应用系统所需服务器的资源消耗(操作系统所需内存、web高速缓存所需内存、CGI所需内存);

 

2、安全系统设计的测试:

常识性安全策略(取消不必要协议、控制写权限、取消服务器目录浏览属性、保留日志记录);

使用加密技术(公共密钥加密、数字签名、链加密、文档加密、SSL、SHTTP);

构造防护墙(网络级、应用级、电路级);

构建网络防毒体系

 

3、数据库设计测试; 

3、web应用开发测试

代码测试

1、源代码规则分析:验证HTML和检查链接;

 

2、链接测试:

链接到正确的页面;

链接的页面是否存在;

是否有孤立的页面;

 

3、框架测试:

是否可随浏览窗口的变化自动调整大小;

在当前窗口不能完全显示内容时是否提供滚动条功能;

能否在正确的目标框架中打开新页面;

 

4、表格测试:

检查表格能否随浏览器窗口的变化或页面的变化自动调整大小;

 

5、图形测试:

颜色饱和对和对比度是否合适;

需要突出的链接的颜色是否容易识别;

是否正确加载所有的图形;

组件测试

1、表单测试:

提交操作的完整性;

提交给服务器的信息的正确性;

检验默认值的正确性;

表单特定值;

表单区域的外部表现(文字环绕、随窗口调整大小);

 

2、Cookies测试:

测试cookies是否起作用;

是否按预定的时间进行保存;

刷新对cookies有什么影响;

 

3、脚本测试:

静态测试(语法、逻辑、语言有关的编程错误)、动态测试;

 

4、CGI测试:

在服务器上使用一些监控器查看执行CGI的结果;

 

5、ASP测试:

先代码检查,然后再用不同的浏览器进行验证。

注意浏览器的缓存问题,缓存设置有时会影响到某些ASP的执行;

正确设置超时,超时会导致一些ASP页面失效;

ASP的性能测试必要,可能出现非常频繁的数据库查询等;

 

6、ActiveX控件测试:

只用用于Windows客户端;

编译后应用,在用户浏览时需要下周到客户端运行,因此要保证控件的签名注册通过验证;

用户可拒绝,所以验证没下载时web系统的功能受影响程度;

安装与卸载测试;

确认是否有旧版本,一定要卸载旧版本后重新安装。

使用Junit进行单元测试

框架:Junit Framework

 

具体内容感觉不会考

4、web应用运行测试(重点读,尤其是安全性)

与其他传统测试比较:

测试内容基本相同;

某些项目的测试方法基本相同;

测试手段基本相同;

测试的重点不同(性能、易用性和客户端配置与兼容性测试)

自动化工具:LR、QALoad、WAST、ACT、Webload;

功能测试

客户端的选择:操作系统、浏览器;

客户端浏览器的配置;

客户端的显示设置;

内容测试;

 

1、web应用链接质量保证技术:

该链接将用户带到它所说明的地方;

被链接的页面是存在的;

保证web应用系统上没有孤立的页面;

web应用链接测试工具(webcheck、linkbot、testpartner)

 测试点:

测试内部和外部链接中成功和失败的链接点,以及应用中不被其他链接调用的页面;

测试链接中新网页、老网页、慢网页以及丢失的图形标题标签和属性标签等;

分析web应用的结构是否合理,包括显示和某个URL相关的链接及按照标题、描述、作者、大小、最后修改时间、类型为URL链接分类等;

 

2、web应用功能测试技术:

WinRunner

创建测试脚本、插入检查点、运行测试、分析结果

易用性测试

1、界面测试:

页面中各元素布局的协调性(元素位置、颜色、大小比例);

不同页面风格的统一性;

用户在界面中操作的便利性(表格操作);

界面动态操作测试(屏幕分辨率设置的影响、浏览窗口最大化/最小化的影响、选定目标元素的置中与缩放);

 

2、辅助功能测试:

使用说明、导航、站点地图、帮助

 

3、图形测试:

图片及彩色元素

验证所有的图形是否有明确的用途;

验证所有页面子图的颜色、风格是否一致;

背景颜色与字体颜色和前景颜色是否相搭配;

确认图片的大小和质量;

负载压力测试

负载测试:

某时刻同时访问web系统的用户数量;

在线处理的数据量;

 

压力测试:

确定交易执行响应时间;

估计web系统能够承受的最大并发用户量;

模拟用户请求,以一个比较小的负载开始,逐渐增加模拟用户的数量,知道系统不能承受负载位置;

如果负载没有达到需求,那么应该优化这个web程序;

客户端配置与兼容性测试

1、浏览器的配置测试;

配置在功能说明书中是否有明确提示;

不同配置对web功能的影响程度;

 

2、平台兼容性测试;

操作系统

 

3、浏览器兼容性测试;

各种浏览器

安全性测试

安全体系测试:

部署于基础结构(网络是否提供了安全的通信、部署拓扑结构是否包括内部防火墙、部署拓扑结构中是否包括远程应用程序服务器、基础结构安全性要求的限制是什么、目标环境支持怎样的信任级别);

 

 

2、输入验证:

用于生成SQL查询的输入未经验证:SQL注入;

HTML输入流中有未经验证的输入:跨站点脚本(XSS);

缓冲区溢出、代码注入、其他拒绝服务、特权提升攻击;

验证输入(是否清楚入口点、信任边界、是否验证web页输入、是否对传递到组件或web服务的参数进行验证、是否验证从数据库中检索的数据、是否将方法集中起来、是否依赖客户端的验证);

处理输入(应用程序是否易受规范化问题的影响、是否易受SQL注入攻击、是否易受XSS攻击);

 

3、身份验证(是否区分功能访问和受限访问、是否明确服务账户要求);

验证调用者身份(是否在网络中传递明文凭据、是否实现自己的用户存储、是否使用表单身份验证);

验证数据库身份(是否使用SQL身份验证、是否使用进程账户、是否使用服务账户、是否考虑使用匿名Internet用户身份、是否使用原始用户身份、如何保存数据库连接字符串);

强制使用强账户管理措施(应用程序是否强制使用强密码、是否限制失败登录次数、是否在故障发生后公开过多的信息、是否强制定期更改密码、是否能在泄露发生时迅速禁用账户、应用程序是否记录登录企图);

 

4、授权:

如何向最终用户授权(是否使用深层防御策略、使用了那些网关守卫、是否基于角色的方法、角色是否提供足够的特权隔离);

如何在数据库中授权应用程序(限制权限、存储过程访问);

如何将访问现定于系统级资源(设计是否使用代码访问安全性、应用程序使用那些身份);

 

5、配置管理

是否支持远程管理

是否保证配置存储的安全

是否隔离管理员特权

 

6、敏感数据

是否存储机密信息

如何存储敏感数据

是否在网络中传递敏感数据

是否记录敏感数据

 

7、会话管理

如何交换会话标识符

是否限制会话生存期

如何确保会话状态存储的安全

 

8、加密

为何使用特定的算法

如何确保加密密钥的安全性

 

9、参数操作

是否验证所有的输入参数

是否在参数中传递敏感数据

是否为了安全问题而使用HTTP头数据

 

10、异常管理

是否使用结构化的异常处理

是否向客户端公开了太多的信息

 

11、审核和日志记录

是否明确了要审核的关键活动

是否考虑过如何流动原始调用者身份、

是否考虑过保护日志文件管理策略

应用及传输安全

注册与登录、在线超时、操作留痕、备份与恢复;

HTTP和SSL测试、服务器端的脚本漏洞检验、防火墙测试

数据库测试

产品确认测试 系统功能测试

测试内容:

1、安装与配置;

2、数据库存储管理;

3、模式对象管理:表管理、索引管理、视图管理、约束管理、存储过程管理、触发器管理;

4、非模式对象管理;

5、交互式查询工具;

6、性能监测与调优;

7、数据迁移工具;

可靠性测试

测试内容:

1、数据库备份;

2、故障恢复;

3、运行稳定性;

4、数据库复制;

安全性测试

测试内容:

1、用户及口令管理;

2、授权和审计管理;

扩展性测试

测试内容:

1、数据库的跨平台支持;

2、CPU加速比;

标准符合性测试 SQL符合性测试
ODBC符合性测试
JDBC符合性测试
系统性能测试 TPC-C测试

联机交易处理系统、业务处理系统

指标:流量、性价比

TPC-W测试

电子商务应用系统

指标:性能、性价比

 文档测试

用户文档

用户手册

操作手册

维护修改建议

具体内容:

1、包装上的文字和图案;

2、宣传材料、广告及其他插页;

3、授权注册登记表;

4、最终用户许可协议;

5、标签和不干胶条;

6、安装和设置指导;

7、用户手册;

8、联机帮助;

9、指南、向导;

10、样例、示例、模板;

11、错误提示信息;

 

作用:

改善易安装性、提高软件易用性、改善软件可靠性、促进销路、降低技术支持的费用。

 

注意问题:

1、得不到足够重视;

2、编写的人不是专家;

3、文档印刷时间长;

4、文档测试不仅仅时对文字的校对,更可以辅助找到程序错误;

 

测试要点:

1、读者群:定位要明确;

2、术语:要适用于读者群,标准规范;

3、正确性;

4、完整性;

5、一致性;

6、易用性;

7、图表与界面截图;

8、样例与示例;

9、语言;

10、印刷与包装

 

用户手册测试:

1、准确地安装手册的描述使用程序;

2、尝试每一条建议;

3、检查每条陈述;

4、查找容易误导用户的内容;

 

在线帮助测试:

1、准确性;

2、帮助是文档编写和程序编写的结合;

3、帮助索引;

4、超链接;

5、链接的意义;

6、帮助的风格;

开发文档

软件需求说明书

数据库设计说明书

概要设计说明书

详细设计说明书

可行性研究报告

管理文档

项目开发计划

测试计划

测试报告

开发进度月报

开发总结报告

 可靠性测试

可靠性定义:产品在规定条件下和规定时间内完成规定功能的能力

规定时间:自然时间、运行时间、执行时间;

失效概率:

可靠度:表示可靠性最直接的方式;软件系统在规定的条件下,规定的时间内不发生失效的概率;

失效强度:单位时间软件系统出现失效的概率;

失效率:风险函数、条件失效强度;在运行此软件系统未出现失效的情况下,单位时间软件系统出现失效的概率。

平均无失效时间:软件运行后,到下一次出现失效的平均时间;

失效严重程度:

1、系统奔溃,重要数据不能恢复;

2、系统出错停止响应,重要数据可恢复;

3、用户重要操作无响应,可恢复;

4、部分操作无响应,但可用其他操作方式替代。

可靠性测试意义:

1、软件失效可能造成灾难性后果;

2、软件的失效在整个计算机系统失效中比例较高;

3、相比硬件可靠性技术,软件可靠性技术很不成熟;

4、比硬件更增加的费用,可靠性问题是造成费用增加的主要原因之一;

5、社会对软件的依赖性变强;

广义可靠性:为了最终评价软件系统的可靠性而运用建模、统计、试验、分析、评价等一系列手段对软件系统实施的一种测试;

 

侠义可靠性:为了获取可靠性数据,按预先确定的测试用例,在软件的预期使用环境中,对软件实施的一种测试。面向缺陷。

可靠性目的:

1、发现软件系统在需求、设计、编码、测试、实施等方面的各种缺陷;

2、为软件的使用和维护提供可靠性数据;

3、确认软件是否达到可靠性的定量要求。

影响因素:

主因:缺陷的引入、发现和清除。

技术角度:

1、运行剖面(环境);

2、软件规模;

3、软件内部结构;

4、软件的开发方法和开发环境;

5、软件的可靠性投入;

可靠性设计技术:

1、容错设计技术:

恢复快设计、N版本程序设计、冗余设计

2、检错技术:无需在线容错,对可靠性要求较高,故障有可能导致严重后果。

3、降低复杂度设计。

 易用性测试

安装测试

1、安装手册的评估;

2、安装的自动化程度测试;

3、安装选项和设置的测试;

4、安装过程的中断测试;

5、安装顺序测试;

6、多环境安装测试;

7、安装的正确性测试;

8、修复安装测试与卸载测试;

功能易用性测试

1、业务符合性;

2、功能定制性;

3、业务模块的集成度;

4、数据共享能力;

5、约束性;

6、交互性;

7、错误提示;

用户界面测试

整体:规范性、合理性、一致性、界面定制性;

元素:窗口、菜单、图标、鼠标、文字

辅助系统测试 帮助、向导、信息提示;

标准符合性测试

两种方式

自律测试

权威测试

主要分类

数据内容类标准:用于数据交换与互操作的数据格式或内容规范;

 

通信协议类标准:用户快通信与传输的接口数据格式;

 

开发接口类标准:开发接口规范;

SQL标准、ODBC标准、JDBC标准

 

信息编码类标准:适应信息处理、信息交换的应用,对字符集提出了多文种、大字量、多用途的要求而定义的。

 兼容性测试

硬件兼容性测试

目的:

所有软件都需向用户说明其运行的硬件环境,对于多层结构的软件系统来说,需要分别说明其服务器端、客户端以及网络所需的环境。兼容性测试的目的就是确认这些对于硬件环境的描述是否正确、合理。

确认:

1、最低配置是否能满足系统运行的需要;

2、推荐配置下系统的响应迅速;

3、考察软件对运行硬件环境有无特殊说明;

4、能否在多种硬件配置下都能满足需求。

与整机的兼容

CPU

内存

硬盘

与板卡及配件兼容

独立板卡

主板芯片组

驱动程序中的自由软件

与打印机的兼容  
软件兼容性测试 与操作系统的兼容 Windows、UNIX、Linux、Macintosh
与数据库的兼容

SQL、ODBC、JDBC、ADO、OLE DB、JDO

完整性测试、应用系统测试、性能测试

与中间件兼容  
与浏览器兼容  
数据兼容性测试 不同数据格式的兼容

1、被测软件与其他程序间的复制粘贴;

2、老版本下保存的文字在新版本下能否被打开;

3、与系列中的软件以何种形式交换数据;

4、与同类软件间能否进行数据交换;

5、业界是否有定义标准或规范;

XML符合性

测试步骤:

1、在测试工具中建立标准模板;

2、用被测软件按要求导出数据;

3、将导出的数据与标准模板进行对比匹配测试;

4、输出测试结果;

平台化软件兼容性测试

跨硬件平台能力

跨操作系统能力

支持多种数据库系统

客户端兼容性测试

数据兼容性测试

新旧系统数据迁移测试 阶段:前的准备、实施、后的校验

实施需要考虑

1、搭建模拟环境

2、备份

3、先升级备份系统,运行一周无误后再升级老系统;

 

你可能感兴趣的:(软件评测师)