软件测试复习资料 西工大
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章概述
为什么要进行软件测试?就是因为软件缺陷的存在。因为只有通过测试,才可以发现软件缺陷。也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去。
软件缺陷是任何程序、系统中的问题,和产品设计书的不一致性,不能满足用户的需求IEEE 国际标准729给出了软件缺陷的定义——软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求
根据软件缺陷的定义,可以从两方面考虑:
☐从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;
☐从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
软件缺陷的主要类型/现象:
☐功能、特性没有实现或部分实现
☐设计不合理,存在缺陷
☐实际结果和预期结果不一致
☐运行出错,包括运行中断、系统崩溃、界面混乱
☐数据结果不正确、精度不够
☐用户不能接受的其他问题,如存取时间过长、界面不美观
软件缺陷的产生
①技术问题,算法错误,语法错误,计算和精度问题,接口参数传递不匹配
②团队工作误解、沟通不充分
③软件本身文档错误、用户使用场合(user scenario),时间上不协调、或不一致性所带
来的问题,系统的自我恢复或数据的异地备份、灾难性恢复等问题
验证和确认
Verification:Are we building the product right?
是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性
Validation:Are we building the right product? 是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求
需求评审和设计评审是验证软件产品的需求定义和设计实现,验证所定义的产品特性是否符合客户的期望、系统的设计是否合理、是否具有可测试性以及满足非功能质量特性的要求。这个阶段主要通过对需求文档、设计文档等阅读、讨论,从中发现软件需求工程和系统设计
中所存在的问题。产品需求审查是软件开发重要环节之一,也是测试活动之一,即静态测试——需求验证。需求评审归为静态测试范畴,包含了文档评审和技术评审双重内容,通常通过正式的评审会议来进行。而测试人员主要起着评审员的作用,检查需求定义是否合理和清楚。
单元测试的对象是程序系统中的最小单元---模块或组件上,在编码阶段进行,针对每个模块进行测试,主要通过白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。多个模块可以平行地、对立地测试,通常要编写驱动模块和桩模块
单元测试一般由编程人员和测试人员共同完成
集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题
两种集成方式:一次性集成方式和增殖式集成方式。
功能测试,依据产品设计规格说明书完成对产品功能进行操作,以验证系统是否满足用户的功能性需求
系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等
第2章需求和设计评审
产品需求审查是软件开发重要环节之一,也是测试活动之一,即静态测试——需求验证。借助需求审查保证用户需求在市场/产品需求文档及其相关文档中得到准确、完整、无歧义的反映,并使各类开发人员在需求理解上达成一致
软件评审是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进。
技术评审
文档评审
管理(流程)评审
检查表(checklist)是一种常用的的质量保证手段,也是正式技术评审的必要工具,评审过程往往由检查表驱动。一份精心设计的检查表,对于提高评审效率、改进评审质量具有很大帮助。
可靠性。人们借助检查表以确认被检查对象的所有质量特征均得到满足,避免遗漏
任何项目。
☐效率。检查表归纳了所有检查要点,比起冗长的文档,使用检查表具有更高的工作效率。
软件缺陷并不只是在编程阶段才产生,需求和设计阶段同样会产生缺陷。
测试需求
测试目标取决于软件质量需求,而这种需求分为功能性需求和非功能性需求,功能性的需求相对容易确定,非功能性的测试需求难以确定。
☐在制定测试计划之前,必须清楚测试需求
☐明确测试需求的优先级
☐测试需求分解得越细,对测试用例的设计质量越有帮助
☐详细的测试需求还是衡量测试覆盖率的重要依据
☐测试需求是规划具体项目资源和时间的基础。
功能性测试需求
功能性测试需求主要是根据产品规格说明书来检验被测试的系统是否满足软件各方面的功能的使用要求,包括用户界面的友好性。
☐程序安装、启动正常,有相应的提示框、错误提示
☐各项功能符合设计要求,正常运行并输出正确结果
☐功能逻辑合理,并能处理各种异常操作
☐能接受正确的数据输入,输出结果准确,格式清晰
☐系统的各种状态按照业务流程而变化并保持稳定
☐支持各种应用环境,能配合硬件设备
非功能性需求
非功能性质量需求,包括系统性能、安全性、兼容性、扩充性,其测试需求会因不同的项目类型差异较大
☐客户端软件,如字处理软件、媒体播放软件等占用较少资源,在容错性、兼容性等方面要求高。
☐Web应用系统对性能、安全性等有很高要求
☐客户端/服务器应用系统。
☐大型复杂企业级系统。
需求评审归为静态测试范畴,包含了文档评审和技术评审双重内容,通常通过正式的评审会议来进行。而测试人员主要起着评审员的作用,检查需求定义是否合理和清楚。
设计审查
成功的产品开发和演化依赖于体系结构恰当的选择。软件设计一般可以分为体系结构设计和详细设计。测试人员参与设计评审保证需求能在设计中得到准确和完整的表示,也就是保证产品规格说明书的质量。
☐系统架构的审查
☐设计规格说明书的审查
☐系统部署设计的审查
☐多层次审查:high-level low-level
系统设计的评审标准
☐设计技术评审标准。稳定、清晰、合理
☐非功能性质量特性的设计评审要求。安全、性能、稳定、扩展、可靠。
☐评审的输入:体系结构文档、设计规范与指南、风险列表
☐评审的输出:经认可的软件体系结构文档、变更需求、评审记录