|
一、考试说明
1.考试要求
(1)熟悉计算机基础知识;
(2)熟悉操作系统、数据库、中间件、程序设计语言基础知识;
(3)熟悉计算机网络基础知识;
(4)熟悉软件工程知识,理解软件开发方法及过程;
(5)熟悉软件质量及软件质量管理基础知识;
(6)熟悉软件测试标准;
(7)掌握软件测试技术及方法;
(8)掌握软件测试项目管理知识;
(9)掌握C语言及C++或Java语言程序设计技术;
(10)了解信息化及信息安全基础知识;
(11)熟悉知识产权相关法律、法规;
(12)正确阅读并理解相关领域的英文资料。
2.通过本考试的合格人员能在掌握软件工程与软件测试知识基础上,运用软件测试管理办法、软件测试策略、软件测试技术,独立承担软件测试项目;具有工程师的实际工作能力和业务水平。
3.本考试设置的科目包括:
(1)软件工程与软件测试基础知识,考试时间为150分钟,笔试,选择题;
(2)软件测试应用技术,考试时间为150分钟,笔试,问答题。
二、考试范围
考试科目1:软件工程与软件测试基础知识
1.计算机系统基础知识
1.1 计算机系统构成及硬件基础知识
·计算机系统的构成
·处理机
·基本输入输出设备
·存储系统
1.2 操作系统基础知识
·操作系统的中断控制、进程管理、线程管理
·处理机管理、存储管理、设备管理、文件管理、作业管理
·网络操作系统和嵌入式操作系统基础知识
·操作系统的配置
1.3 数据库基础知识
·数据库基本原理
·数据库管理系统的功能和特征
·数据库语言与编程
1.4 中间件基础知识
1.5 计算机网络基础知识
·网络分类、体系结构与网络协议
·常用网络设备
·Internet基础知识及其应用
·网络管理
1.6 程序设计语言知识
·汇编、编译、解释系统的基础知识
·程序设计语言的基本成分(数据、运算、控制和传输、过程(函数)调用)
·面向对象程序设计
·各类程序设计语言的主要特点和适用情况
·C语言以及C++(或Java)语言程序设计基础知识
2.标准化基础知识
·标准化的概念(标准化的意义、标准化的发展、标准化机构)
·标准的层次(国际标准、国家标准、行业标准、企业标准)
·标准的类别及生命周期
3.信息安全知识
·信息安全基本概念
·计算机病毒及防范
·网络入侵手段及防范
·加密与解密机制
4.信息化基础知识
·信息化相关概念
·与知识产权相关的法律、法规
·信息网络系统、信息应用系统、信息资源系统基础知识
5.软件工程知识
5.1 软件工程基础
·软件工程概念
·需求分析
·软件系统设计
·软件组件设计
·软件编码
·软件测试
·软件维护
5.2 软件开发方法及过程
·结构化开发方法
·面向对象开发方法
·瀑布模型
·快速原型模型
·螺旋模型
5.3 软件质量管理
·软件质量及软件质量管理概念
·软件质量管理体系
·软件质量管理的目标、内容、方法和技术
5.4 软件过程管理
·软件过程管理概念
·软件过程改进
·软件能力成熟度模型
5.5 软件配置管理
·软件配置管理的意义
·软件配置管理的过程、方法和技术
5.6软件开发风险基础知识
·风险管理
·风险防范及应对
5.7 软件工程有关的标准
·软件工程术语
·计算机软件开发规范
·计算机软件产品开发文件编制指南
·计算机软件需求规范说明编制指南
·计算机软件测试文件编制规范
·计算机软件配置管理计划规范
·计算机软件质量保证计划规范
·数据流图、程序流程图、系统流程图、程序网络图和系统资源图的文件编制符号及约定
6.软件评测师职业素质要求
·软件评测师职业特点与岗位职责
·软件评测师行为准则与职业道德要求
·软件评测师的能力要求
7.软件评测知识
² 7.1 软件测试基本概念
² 软件质量与软件测试
Ø 质量保证(QA):质量保证的重要工作通过预防、检查与改进来保证软件质量。
Ø 软件测试:测试虽然也与开发过程紧密相关,但关心的不是过程的活动,而是对过程产物以及开发出的软件进行剖析。
² 软件测试定义
Ø 软件测试:在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。
² 软件测试目的
Ø 软件测试目的:测试是程序的执行过程,目的在于发现错误;一个好的测试用例在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。
² 软件测试原则
Ø 所有的软件测试都应追溯到用户需求。
Ø 应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
Ø 完全测试是不可能的,测试需要终止。
Ø 测试无法显示软件潜在的缺陷。
Ø 充分注意测试中的群集现象。
Ø 程序员应避免检查自己的程序。
Ø 尽量避免测试的随意性。
² 软件测试对象
Ø 软件定义,软件包括程序、数据和文档,所以软件测试并不仅仅是程序测试。软件测试应贯穿于整个软件生命周期中。需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为“软件测试”的对象。
Ø
² 7.2 软件测试过程模型
² ·V模型
Ø V模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系,从坐到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。单元和集成测试是验证的程序设计,开发人员和测试组应检测程序的执行是否满足软件设计的要求;系统测试应当验证系统设计,检测系统功能、性能的质量特性是否达到系统设计的指标;由测试人员和用户进行软件的确认测试和验收测试,追溯软件需求说明书进行测试,以确定软件的实现是否满足用户需求或合同的要求。
² ·W模型
Ø W模型强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样需要测试。这样,只要相应的开发活动完成,我们就可以开始执行测试,可以说,测试与开发是同步进行的,从而有利于进早的发现问题。这样做,使测试不仅仅是评定软件的质量,测试还可以尽可能早地找出缺陷所在,从而帮助改进项目内部的质量。根据W模型的要求,一旦有文档提供,就要及时确定测试条件,以及编写测试用例。
² ·H模型
Ø H模型将测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。H模型揭示了:软件测试不仅仅指测试的执行,还包括很多其他的活动;软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行;软件测试要尽早准备,尽早执行;软件测试是根据被测物的不同而分层次进行的,不同层次的测试活动可以按照某个次序先后进行的,但也肯可能是反复的。
² ·测试模型的使用
Ø V模型强调了在整个软件项目开发中需要经历的若干个测试级别,而且每一个级别都与一个开发级别相对应,但它忽略了测试的对象不应该仅仅包括程序,或者说它没有明确地指出应该对软件的需求、设计进行测试。W模型强调了测试计划等工作的先行和对系统需求和系统设计的测试,但W模型和V模型一样也没有专门针对软件测试的流程予以说明。H模型表现为测试是独立的,只要测试前提具备了,就可以开始进行测试,软件测试逐步发展成为一个独立于软件开发部的组织,就每一个软件城市的细节而言,它都有一个独立的操作流程。
² 7.3 软件测试类型
² 单元测试、集成测试、系统测试
Ø 单元测试:单元测试又称模块测试,是针对软件设计的最小单元——程序模块进行正确性检验的测试工作。主要检查模块功能、性能、接口和设计约束等要求,需要从内部结构出发设计测试用例。
Ø 集成测试:集成测试也叫做组装测试。通常在单元才而是的基础上,将所有的程序模块进行有序的、递增的测试。检验程序单元的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。
Ø 系统测试:系统测试是为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。是在真实或模拟系统运行环境下检查完整的程序系统能否和系统正确配置连接,满足需求。
² 确认测试、验收测试
Ø 确认测试:确认测试是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。确认测试是检验与证实软件是否满足软件需求说明书中规定的要求。
Ø 验收测试:按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审。
² 开发方测试、用户测试、第三方测试
Ø 开发方测试:通常也叫“验证测试”或“α测试”。开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。是在软件开发环境下,由开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求。是开发完成后,开发方对要提交的软件进行全面的自我检查与验证。
Ø 用户测试:在用户的应用环境下,用户通过运行和使用软件,检测与核实软件是否符合自己预期的要求。“β测试”通常被看成是一种“用户测试”,把产品有计划的免费发放的目标市场,让用户大量使用,并评价、检查软件且把软件存在的问题与错误信息反馈给开发者修改。
Ø 第三方测试:介于软件开发方和用户之件的测试组织的测试。第三方测试也称为独立测试。也就是由在技术、管理和财务上与开发方和用户方相对独立的组织进行软件测试。
² 动态测试、静态测试
Ø 动态测试:是指通过人工或使用工具运行程序进行检查、分析程序的执行状态和程序的外部表现。
Ø 静态测试:是指不运行程序,通过人工对程序和文档进行分析和检查。包括走查、符号执行等。
² 白盒测试、黑盒测试、灰盒测试
Ø 白盒测试:通过对程序内部结构的分析、检测来寻找问题。检查是够所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。
Ø 黑盒测试:通过软件的外部表现来发现其缺陷和错误。不考虑程序内部结构和处理过程。在程序界面处进行测试,它只是检查样序是否按照需求规格说明书的规定正常实现。
Ø 灰盒测试:介于白盒测试与黑盒测试之间的测试。它关注输出对于输入的正确性;也关注内部表,但这种关注不像白盒测试那样详细、完整,只是通过表征性的现象、事件、标志来判断内部状态。
² 7.4 软件问题分类
² 软件错误
Ø 在预见的时期内,软件仍将由人来开发。在整个软件生存期的各个阶段,都贯穿真人的直接或间接的干预。软件错误是指在软件生存期内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生。软件错误是一种人为过程,相对于软件本身,是一种外部行为。
² 软件缺陷
Ø 软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差。其结果是软件运行于某一特定条件时出现软件故障,这时称软件缺陷被激活。
² 软件故障
Ø 软件故障是指软件运行中出现的一种不希望或不可接受的内部状态。它是一种动态行为。
² 软件失效
Ø 软件失效是指软件运行时产生的一种不希望或不可接受的外部行为结果。
² 7.5 测试标准
² 7.5.1 GB/T 16260.1 – 2003 软件工程 产品质量 第1部分:质量模型
² 7.5.2 GB/T 18905.1 – 2002 软件工程 产品评价 第1部分:概述
² 7.5.3 GB/T 18905.5 – 2002 软件工程 产品评价 第5部分:评价者用的过程
² 8.软件评测现状与发展
|