第一部分:软件评测知识1软件质量与软件测试软件测试:在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成过程的文档、数据以及程序进行测试软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力2软件测试与质量保证:软件测试只是质量保证工作中的一个环节,软件质量保证与软件测试是软件质量工程的两个不同层面的工作;质量保证:通过预防、检查与改进来保证软件质量,采用全面质量管理和过程改进的原理来开展质量保证工作,主要关注软件质量的检查与测试,主要着眼于软件开发活动的过程、步骤和产特。软件测试:通过执行软件来,对过程中的产物(开发文档和程序)进行走查,发现问题,报告质量3软件测试的目的:测试是程序的执行过程,目的在于发现错误;一个好的测试用例在于发现了至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试;4软件测试原则:所有的软件测试都应追溯到用户需求;应当把“尽早地和不断地进行软件测试”作为测试者的座右铭;完全测试是不可能的,测试需要终止;测试无法显示软件潜在的缺陷;充分注意测试中的群集现象;程序员应避免检查自己的程序;尽量避免测试的随意性。5.软件测试对象:程序开发过程中的各个文档、源程序。6软件测试过程模型-V模型:是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系;局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现7软件测试过程模型-W模型:在V模型的基础上,增加千开发阶段的同步测试,形成W模型;测试与开发同步进行,有利用尽早的发现问题。局限性:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代,自发性以及变更调整。8软件测试过程模型-H模型:在H模型中,软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段;软件测试可以进行尽早的进行;软件测试可以根据被测物的不同而分层次进行。9测试模型使用:在实际工作中应灵活地运用各种模型的优点V模型强调了在整个软件项目开发中需要经历的若干个测试级别,并与每一个开发级别对应;忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试W模型补充了V模型中忽略的内容,强调了测试计划等工作的先行和对系统需求和系统设计的测试;与V模型相同,没有对软件测试的流程进行说明H模型强调测试是独立的,只要测试准备完成,就可以执行测试10单元测试定义又称模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作;可以从程序的内部结构出发设计测试用例,多个模块测试可以平行地独立进行测试目的发现模块内部可能存在的各种差错内容模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试步骤利用设计文档设计测试用例;创建被测模块的桩模块或驱动模块;利用被测试模块、驱动模块和桩模块来建立测试环境,进行测试11.集成测试定义又称组装测试或联合测试,在单元测试基础上,将所有模块按概要设计和详细设计进行组装目的发现模块连接中的接口可能存在的各种差错内容穿越模块之间的数据是否会丢失;一个模块组装后是否会对另一模块或其他模块存在影响;各个子功能组装在一起是否会达到预期的父功能;全局数据结构是否有问题;单个模块的错误累积起来是否会放在组装方法一次性组装方式,非增殖式方式也叫整体拼装,对模块分别测试然后将所有模块组装;第二种增殖式组装方式,可以是自顶向下或自底向上完成标志成功地执行了测试计划中规定的所有测试用例;修正了所发现的错误;测试结果通过专门小组的评审12.确认测试目的验证软件的功能和性能及其他特性是否与用户的要求一致测试内容有效性测试运行黑盒测试方法验证所测软件是否满足需求规格说明书列出的需求;所有文档正确且便于使用;软件可移植性、易用性、兼容性进行测试;软件配置复查保证软件配置的所有成分都齐全13.系统测试目的验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试测试内容在真实或模拟系统运行环境下,检查完整的程序系统能否和系统(硬件设备、网络、系统软件)正确配置、连接,满足用户需求14验收测试:测试内容:根据任务书或合迥、供需双方约定的验收依据文档进行对整个系统的测试与评审,确认是否接收或拒绝系统;15开发方测试:通常也叫‘验收测试’或‘a测试’,在软件开发环境中,开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求15用户测试:在用户的应用环境下,用户检测与核实软件实现是否符合自己预期的要求。B测试通常被认为是用户测试,把软件有计划地免费地分发到目标市场,让用户大量使用、评价检查软件。16第三方测试由第三方测试机构来进行的测试,也称独立测试。17动态测试:通过人工或使用工具运行程序进行检查,分析程序的执行状态和程序的外部表现。18静态测试:不运行程序,能过人工对程序和文档进行分析与检查,包括走查、符号执行、需求确认等。20白盒测试:通过对程序内部结构的分析、检测来寻找问题,检查程序的结构及路径是否正确,检查程序的内部动作是否按照设计说明的规定正常进行21黑盒测试:又称功能测试,通过运行程序发现其缺陷和错误,在程序界面处进行测试。22灰盒测试:介于白盒和黑盒测试之间,关注输出对于输入的正确性,也关注程序的内部结构,但没有白盒测试那样详细、完整23测试分类开发过程单元、集成、确认、系统、验证实施组织开发方、用户、第三方测试技术白盒、黑盒、灰盒或静态、动态24软件问题分类:软件错误、软件缺陷、软件故障、软件失效.软件错误:在软件生存周期内的不希望或不可接受的人为错误.软件缺陷:存在于软件(文件、程序、数据)之中的不希望或不可接受的偏差。软件故障:软件运行过程中出现的一种不希望或不可接受的内部状态.软件失效:软件运行时产生的一种不希望或不可接受的外部行为.25.GB/T16260.1产品质量-质量模型:质量模型:代表软件质量属性的总体.软件质量特性与度量:质量特性和子特性、外部度量、内部度量.外部、内部质量的质量模型:质量属性包括:功能性、可靠性、易用性、效率、维护性和可移植性.26GB/T18905.1软件工程产品评价-概述:概述了软件产品评价的过程,提供了评价需求和指南。27GB/T18905.5软件工程产品评价-评价者用的过程30.测试过程的特性与要求软件测试过程是一抽象的、遵循GB/T18905《评价者用的过程》中定义软件评价过程的模型评价过程的特性可重复性:同一评价者按同一评价规格说明对同一产品进行重复地评价,应产生同一种可接受的结果可再现性:同不同评价者同一评价规格说明对同一产品进行评价,应产生同一种可接受的结果公正性:评价应不偏向任何特殊的结果客观性:评价结果应是客观事实评价过程的要求一般要求组织和质量体系:评价者应立足于一个组织;评价组织为保证质量,可以建立质量体系请求者职责:对软件产品确立必要的合法权利;为标识和描述产品提供必要的信息;阐述初步评价需求,与评价者协商确定实际需求,需求遵守相关的法规和标准;阐述对评价提交的信息的保密性需求;必要时在开发者和评价者之间起中介作用;必要时向评价者提供计算机和其他设备评价者职责:检查请求者对软件产品是否有充分合法的权利;按规定对请求者提供保密承诺;提供有资格的人员,以便实施评价;提供评价工具和技术;按照评价需求实施测试;保证评价过程中的所有记录;保证及时向请求者提交评价报告活动要求确立软件评价需求编制评价规格说明制定评价计划评价执行作评价结论31.软件测试与配置管理配置管理活动配置项标识:标识测试样品、标准、工具、文档报告等配置项的名称和类型、标识各配置项的所有者及储存位置配置项控制(变更控制):规定测试基线、基线创立时间、变更控制委员会人员组成、职能、确定变更请求的处理程序和终止条件、变更过程中测试人员变更的职能等配置状态报告:定义报告形式、内容和提交方式、确认过程记录和跟踪问题报告、更改请求、更改次序;确定测试报告提交的时间与方式;配置审计:确定审计执行人员和执行时机;确定审计的内容与方式;确定发现问题的处理方法33.软件测试风险分析软件测试风险:是软件测试过程出现的或潜在的问题,造成的原因主要是测试计划的不充分、测试方法有误或测试过程的偏离,造成测试的补充以及结果不准确软件测试风险主要是对测试计划执行的风险分析与制定要采取应急措施;重点在措施测试计划的风险:一般指测试进度滞后或出现非计划事件;常见的有交付日期、测试需求、测试范围、测试资源、人员的能力、测试预算、测试环境、测试支持、测试工具;34.软件测试的成本管理测试实施成本测试准备成本、测试执行成本、测试结束成本低测试实施成本测试准备环境尽可能使用软件和测试环境配置自动化;测试实施尽可能采用自动化测试工具(测试用例自动化执行),人工测试最好请初级技术人员,不使用测试工程师;测试结束编制测试报告测试结果与预期结果比较采用自动化方法(测试文档编制模板化)质量成本要素一致性成本(用于测试实施成本)、非一致性成本(由出现的问题和故障引起)质量成本=一致性成本+非一致性成本缺陷探测率DDP=Bugs(tester)/(Bugs(tester)+Bugs(customer))衡量测试投资回报的一个重要指标注:第116页计算题35.文档测试的范围用户文档用户手册、操作手册、维护修改建议开发文档需求说明书、概要设计、数据库设计、详细设计、可行性研究报告管理文档项目开发计划、测试计划、测试报告、开发进度月报、开发总结报告36.用户文档的内容:包装上的文字及图案;宣传材料、广告及其他插页;授权/注册登记表;最终用户许可协议;标签和不干胶条;安装和设置指导;用户手册;联机帮助;指南、向导;样例、示例和模板;错误提示信息;37.用户文档测试的要点明确读者群:根据读者群(如初级、中级、高级用户)的不同来检查文档内容,保证用户能够看得懂、能理解术语:文档中术语的描述要适合定位的读者群,用法一致,标准定义与业界规范相吻合文档内容的正确性:要保证所有信息是真实正确的文档内容的完整性:要完全根据提示逐步操作,检查是否存在遗漏的地方文档与程序的一致性:按照文档操作后,检查软件返回的结果与文档描述是否一致文档的易用性:检查是否便于用户查找相应的内容图表与界面截图:检查所有图表与界面截图与发布的程序版本一致样例和示例:检查所有的样例和示例能够正确完成;语言:中文文档保证无错别字和二义性印刷与包装:印刷质量,包装质量38.用户手册的测试:准确的按照手册的描述使用程序;尝试每一条建议;检查每条陈述;查找容易误导用户的内容;39.在线帮助的测试:内容的准确性;帮助功能的可靠性;每一条索引和主题列表要逐条检查,是否能够由索引进入主题;帮助系统中的每一个超级链接;主题是否全部能够在索引中找到;帮助系统的风格应简洁;40.功能易用性测试业务符合性程序实现的业务逻辑与实际业务逻辑是否一致;功能定制性对软件功能应能够灵活定制业务模块集成度对于存在紧密关系的模块,是否方便功能转换,从一个功能进入到别一个功能数据共享能力对于多处使用的数据应可以一次输入多处使用,减少用户重复工作约束性对于流程性强的操作,应能够限制操作顺序;对非法信息应不允许进行系统交互性对于用户的每一次操作,应能够给出提示或回应,使用户清晰的看到系统的运行状态错误提示对于关键操作完成后或删除数据之前给出明确的提示信息;41.用户界面测试:界面整体、界面元素测试界面整体规范性测试:符合现行标准和规范合理性测试:界面与软件功能是否相融洽,界面的布局是否协调一致性测试:使用的控件、标签风格、错误提示信息、操作方法是否一致界面定制性测试:界面元素的可定制性;工具栏的可定制性;统计检索的可定制性;报表的可定制性界面元素窗口测试:大小、显示、窗口大小改变、多个窗口同时打开、支持操作方法等菜单测试:是否符合需求;措辞是否准确;顺序是否合理;图形布局是否一致图标测试:是否符合表达习惯;不同的目标是否采用不同的图标;图标尺寸是否合适;建议与对