《2017年软件评测师笔记整理》由会员分享,可在线阅读,更多相关《2017年软件评测师笔记整理(13页珍藏版)》请在金锄头文库上搜索。
1、1 软件评测师学习笔记一2009-4-18 二、软件测试基础 1. 测试的概念:测试是以评价一个程序或者系统属性为目的的任何一种活动,测试是对软件质量的一种 度量。 测试的目的:测试是为了度量和提高被测软件的质量,对被测软件进行工程设计、实施、维护的整个生 命周期的过程。 2.软件测试有两种风险:内部风险和外部风险; 软件测试只能证明软件有错误,不能证明软件没有错误; 软件测试的目的:1、提高软件质量;2、降低项目风险;3、把软件的错误控制在可以进行产品发布或交 付的程度上; 软件测试的经典定义:在规定条件下对程序进行操作,以发现错误,对软件进行质量评估; 软件是由文档、数据和程序组成; 3.
2、软件质量的概念:软件满足规定或者潜在用户需求的能力,要从软件在内部、外部和使用中的表现来衡 量。 4.质量保证( QA)和软件测试的不同:QA是要通过预防、检查与改进来保证软件质量,重点在过程的 跟进中; 软件测试的重点不在于此,而是要对过程的产物开发文本和源代码进行走查,运行软件, 以找出问题, 报告质量。 软件测试不可能无休止地测下去,原因在于:1、输入数据太多;2、输出结果太多;3、组合路径太多。 5.软件测试的分类 5.1 按照软件开发阶段分:单元测试(也叫模块测试)、集成测试(组装测试)、确认测试、系统测 试和验收测试。 5.2 按照测试实施组织划分:开发方测试(也叫验证测试,阿尔法
3、测试)、用户测试(贝塔测试)和 第三方测试(独立测试); 5.3 按照测试技术划分:白盒测试、黑盒测试和灰盒测试;(关键在于对程序内部结构的态度上) 按照测试技术也可划分:静态测试和动态测试。 6.软件测试模型: 6.1 V 模型,其局限性表现在把测试作为软件开发的最后一个阶段,是串行完成的;主要是针对程序 进行测试寻找错误,而需求分析阶段隐藏的问题到后期的验收测试才被发现; 6.2 W 模型, 优点是测试与开发过程是同步进行的,有利于测试的及早介入与执行;缺点是对开发阶 段需要有明确的起点和终点,这点在实际情况中很难做到这点; 6.3 H 模型,优点在于表现出来不同测试的测试活动可以是按照某
4、个次序先后进行的,但也可能是反 复的。只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。 6.4 X 模型,针对单独程序片段进行互相分离的编码和测试,之后频繁的交接通过集成最终合成为 可执行的程序。 6.6 前置模型,特点:将开发和测试的生命周期整合在一起,对每一个交付的开发结果都进行一定 方式的测试,设计阶段是做测试计划和测试设计的最好时机,程序片段一旦编写完成就会立即进行测试, 让验收测试和技术测试保持相互独立。 7.软件测试的目的:寻找错误,并且尽最大的可能找出最多的错误。 8.软件测试的原则: 8.1 所有的软件测试都应追溯到用户需求 8.2 尽早地和不断地进行软件测试
5、 8.3 完全测试是不可能的,测试需要终止 2 8.4 测试无法显示软件潜在的缺陷 8.5 充分注意测试中的群集现象 8.6 程序员应避免检查自己的程序 8.7 尽量避免测试的随意性 9.测试模型的使用:灵活运用各种模型的优点,在W 模型的框架下运行H 模型的思想进行独立测试,并 同时将测试和开发紧密结合,寻找恰当的就绪点开始测试并反复迭代测试,最终保证按其完成预订目标。 10.软件设计阶段的评审: 10.1 需求评审需求说明书评审规范 10.2 设计评审概要设计说明书评审规范和详细设计说明书评审规范 10.3 编码评测编码规范 11.软件开发阶段的测试: 11.1 单元测试(又叫模块测试)
6、单元测试的内容:1、模块接口;2、局部数据结构测试;3、路径测试;4、错误处理测试;5、 边界测试 单元测试用到的辅助模块:驱动模块(所测模块的主程序)和桩模块(存根模块) 11.2 集成测试(又叫组装测试或联合测试) 模块组装成为系统的方式有两种:一次性组装方式(又叫整体拼装)和增殖式组装方式; 增殖式组装方式 (又叫渐增式组装方式)又分两种:自顶向下的增殖方式(建立较多的桩模块)、 自底向上的增殖方式(建立较多的驱动模块)和混合增殖方式; 11.3 确认测试 确认测试的内容:进行有效性测试和软件配置复查。 11.4 系统测试 11.5 验收测试 验收测试是以用户为主,软件开发人员和质量保证
7、人员也应参加的测试。根据软件需求和验收要求编制 测试计划,制定需测试的测试项,制定测试策略及验收通过准则。根据验收测试计划和项目验收 准则编制测试用例,并经过评审。验收测试一般在用户的实际生产环境中进行,使用生产中的实际数 据进行测试。 12.V Compuware 公司的 NuMega DevPartner Studio( 可以进行源 代码复查,错误监测,性能分析,分布式应用分析等);Parasoft Serials(可以进行代码的静态分析,白盒测 试,黑盒测试 )。 功能自动化测试工具有:Rational Robot 和 Mercury WinRunner 。 19.负载压力测试内容:客户
8、端、服务器端和网络 负载压力测试步骤:1、选择协议;2、创建测试脚本;3、参数化测试数据;4、 创建虚拟用户;5、 执行测试; 6、分析结果。 四.软件测试过程与管理 1.测试过程的特性:可重复性 ,可再现性 ,公正性和客观性 2.测试过程由5 个活动组成 :1、确立软件测试需求;2、编制测试规格说明;3、制定测试计划;4、执行 测试计划; 5、做测试结论 3.测试者提供的测试过程输入:1、预先确定的测试规格说明;2、测试方法;3、测试工具。 4.测试者提供的测试过程输出:1、测试记录;2、测试报告草案;3、经过评审的测试报告。 5.测试过程文档: 测试需求测试规格说明测试计划测试记录测试报告
9、 7.测试工作的7 条效率原则:主动思考,积极行动;一开始就牢记目标,不迷失方向;重要的事情放在首 位(但常常是紧急的事情放在首位);先理解人,后被人理解;寻求双赢;互相合作,追求112;终身 学习,自我更新,不断进步。 8.PDCA 循环理念:计划(plan)执行 (do)检查 (check)改进 (active)。 9.软件测试的风险是指软件测试过程出现的或潜在的问题。 造成的原因:测试计划不充分;测试方法有误;测试过程偏离。 常见计划风险的因素:交付日期、测试需求、测试范围,测试资源、人员的能力、测试预算、测试 环境、测试支持、劣质组件和测试工具。 10.软件风险分析的目的:确定测试对象
10、、测试优先级以及测试的深度。 软件风险分析是对一个潜在问题识别和评估的过程,即对测试的对象进行优先级的划分。包括两个部分 1、发生问题的可能性有多大2、问题的影响严重性有多重 软件风险分析采用的两种方法:表格分析法和举证分析法。 11.测试成本控制:测试准备成本控制,测试执行成本控制,测试结束成本控制,测试实施成本控制,测 试维护成本控制。 12.质量成本组成:一致性成本和非一致性成本。 13.缺陷探测率DDP。 14.投资回报率 三、软件质量与评价(强制记忆) 1.软件质量特性:功能性,可靠性,易使用性,效率,可维护性,可移植性。 2.功能性包含的子特性:适合性,准确性,互操作性,依从性,安
11、全性。 3.可靠性包含的子特性:成熟性,容错性,易恢复性。 4.易使用性包含的子特性:易理解性,易学习性,易操作性。 5.效率包含的子特性:时间特性,资源特性。 6.可维护性包含的子特性:易分析性,易更改性,稳定性,易测试性。 7.可移植性包含的子特性:适应性,易安装性,一致性,易替换性。 8.BUG 的等级划分与优先级 严重:死机,数据丢失,主要功能完全丧失,系统悬挂等错误。修改优先级为最高,该级别需要程 序员立即修改。 较高:主要功能丧失,导致严重的问题,或致命的错误声明。修改优先级为高,该级别需要程序员 4 尽快修改。 一般: 次要功能丧失,不太严重, 如提示信息不太准确。修改优先级为中
12、,该级别需要程序员修改。 轻微:微小的问题,对功能几乎没有影响,产品及属性仍可使用,如有个错别字。修改优先级为低, 该级别需要程序员修改或不修改。 9.BUG 的另一种等级划分: (不是固定的,按实际需求定义) 可以分为死机(系统崩溃或挂起)、致命 (使系统不稳定、或破坏数据、或产生错误结果,而且是常规操作 中经常发生或非常规操作中不可避免的)、严重 (系统性能或响应时间变慢、产生错误的中间结果但不影响 最终结果,如:显示不正确但输出正确)、一般 (界面拼写错误或用户使用不方便)。 五、黑盒测试案例与技术 六、白盒测试技术 七、面向对象的软件测试技术 八、应用负载压力测试 1.负载压力的概念:
13、指在一定的约束条件下测试系统所承受的并发用户量、运行时间、数据量,以及确 定系统所能承受的最大负载压力。 2.负载压力测试的目的: 1、在真实环境下检测系统性能,评估系统性能以及服务等级的满足情况。 2、预见系统负载压力承受力,在应用实际部署之前,评估系统性能 3、分析系统瓶颈,优化系统 3.应用在客户端性能测试的五种类型的目标:虚拟用户数、每秒点击次数、每秒事务数,每分钟页面数或 事务响应时间。 4.应用在网络上的性能测试:优化性能;预测系统响应时间;确定网络带宽需求;定位应用程序和网络故 障。 5.做网络故障分析需要的信息: 1、监控不同探针之间的连接状态、传输的字节数以及通信往返行程次数
14、; 2、会话性能概要,监控哪段网络延迟大,带宽对网络双向性能的影响,节点用于处理和用于传输的 时间等; 3、服务器与客户端之间帧传输情况统计,可以监控到与应用相关的帧的分布,对每一个帧可以与相 关的数据包惯性力,并且可以对帧 解码; 4、服务器与客户端之间传送包信息统计,监控包的详细信息,并且可以将包与帧与线程相关联; 5、线程信息统计,监控线程的内容和生产周期,以及线程与数据包的关系; 6、负载的高峰时刻,监控到负载的平均值以及高峰值,并且高峰时刻可以与相关的线程、数据包、 帧相关联。 7、故障错误总结 6.用户关心网络监控的问题: 1、分析关键应用程序的性能; 2、定位问题的根源是在客户端
15、、服务器、应用程序还是网络; 3、哪些应用程序占用大量带宽; 4、哪些用户产生了最大的网络流量。 7.负载压力测试实施步骤: 测试计划 -测试需求分析 -测试案例制定 - 测试环境、工具、数据准备-测试脚本录制、编写与 调试 -场景制定 -测试执行 -获取测试结果 -结果评估与测试报告 5 十一、安全测试与评估 1.测试与评估的内容: 1.1 用户认证机制 1.2 加密机制 1.3 安全防护策略 1.4 数据备份与恢复手段 1.5 防病毒系统 1.6 2.用户认证机制的种类:数字证书,智能卡,双重认证,安全电子交易(SET)协议 3.安全防护策略主要有:安全日志,入侵检测,隔离防护,漏洞扫描。
16、 4.数据备份与恢复技术通常包括:存储设备,存储优化,存储保护,存储管理。 5.杀毒软件中常用的两种管理方式:以策略为中心,以服务器为中心。 6.防病毒技术包含: 6.1 集中式管理,分布式杀毒 6.2 数据库技术、LDAP 技术的应用 6.3 多引擎支持 6.4 不同操作系统的防护 6.5 远程安装或分发安装 7.基本安全防护策略:防火墙,入侵检测,漏洞扫描,安全审计,病毒防治,web 信息防篡改,物理安全。 8.安全体系主要的7 个层次:实体安全,平台安全,数据安全,通信安全,应用安全,运行安全,管理安 全。 9.安全性测试策略针对的7 个层次: 9.1 证书业务服务系统测试 9.2 证书查询验证服务系统测试 9.3 密钥管理系统测试 9.4 密码服务系统测试 9.5 可信授权服务系统测试 9.6 可信时间戳服务系统测试 9.7 网络信任域系统测试 9.8 故障恢复与容灾备份测试 9.9 安全产品的选择 10.安全性测试方法 10.1 功能验证 10.2 漏洞扫描 10.3 模拟攻击试验 10.4 侦听技术 10. 负载均衡