软件测试与保障知识点及题型
- 格式:docx
- 大小:208.94 KB
- 文档页数:17
复习提纲第一部分软件测试概述 (1)1. 软件测试的背景 (1)1.1 软件危机与软件质量 (1)1.2 软件缺陷(分类,来源,累积和放大效应) (1)1.3 软件测试的意义 (1)2. 软件测试的含义 (1)2.1 什么是软件测试 (1)2.2 软件测试的目的 (1)2.3 软件测试的对象 (1)2.4 测试≠调试 (1)2.5 软件测试的特征 (1)3. 软件测试的过程 (1)3.1 软件测试的生命周期 (1)3.2 软件测试的步骤 (2)3.3 测试用例=输入+预期输出 (2)3.4 通过维恩图理解测试用例——相交的地方尽可能大 (2)3.5 测试用例的设计 (2)–3.5.1 功能性测试(黑盒测试) (2)–3.5.2 结构性测试(白盒测试) (2)错误与缺陷分类 (2)软件测试的级别 (2)软件测试的分类 (2)•边界值分析(依据,含义,方法) (2)•健壮性测试 (2)•最坏情况测试 (3)2. 等价类测试(书:第6章) (3)3. 基于决策表测试(书:第7章) (3)因果图测试法,基于正交表的测试法(了解) (3)黑盒测试总结 (4)第三部分白盒测试 (4)逻辑覆盖分类及其含义 (4)基本路径测试——将测试路径压缩在一定的限度内 (4)数据流测试 (4)用白盒测试的覆盖率指标评估黑盒测试 (5)第四部分软件测试的级别 (5)确认与验证的区别 (5)确认测试(黑盒测试) (5)验收测试、回归测试的含义 (5)单元测试, (5)集成测试——找出模块间的接口和交互错误 (5)系统测试 (6)第五部分软件测试工具 (6)第六部分软件质量保证 (7)1 软件质量保证及其目标 (7)2.缺陷管理 (7)3.SQA模型 (7)第七部分Beta测试——有计划地把产品分发到目标市场,收集反馈信息 (8)Beta测试的特点 (8)Beta测试的组织结构图 (8)如何高效的获得Beta测试结果? (8)第八部分软件本地化测试 (8)软件国际化和软件本地化的含义及其关系 (8)软件本地化测试的内容(再创造过程) (9)理解Unicode, Hard-Code 和资源文件(.rc)的作用 (9)第九部分高级内容 (9)变异测试的基本思想和过程 (9)复习提纲第一部分软件测试概述1. 软件测试的背景1.1 软件危机与软件质量软件质量保证SQA,软件测试ST;1.2 软件缺陷(分类,来源,累积和放大效应)●常见的软件缺陷:1.软件没有达到规格说明书表明的功能2.软件出现了规格说明书指明不会出现的问题3.软件没有达到规格说明书虽未指明,但应该达到的功能4.软件功能超出规格说明书指明的范围5.软件测试人员或者用户认为软件难以理解、不易使用、运行速度慢。
软件测试复习题软件测试是确保软件产品满足用户需求和质量标准的关键环节。
以下是一些软件测试复习题,旨在帮助学生更好地理解和掌握软件测试的基本概念和方法。
1. 软件测试的定义:软件测试是一系列旨在评估软件质量的过程,包括验证软件是否符合其规定要求,并识别软件中的缺陷。
2. 软件测试的类型:- 单元测试:针对软件中最小的可测试部分进行测试。
- 集成测试:在单元测试之后,测试模块间的接口。
- 系统测试:测试完整的、集成的软件系统以验证系统的符合性。
- 验收测试:通常由用户进行,以确定软件是否满足他们的业务需求。
3. 软件测试的生命周期:- 需求分析:理解软件需求,为测试计划的制定提供基础。
- 测试计划:制定详细的测试策略和方法。
- 测试设计:创建测试用例和测试脚本。
- 测试执行:运行测试用例,记录测试结果。
- 缺陷管理:跟踪和解决发现的缺陷。
- 测试报告:总结测试活动,评估软件质量。
4. 测试用例设计技术:- 等价类划分:将输入数据划分为有效等价类和无效等价类。
- 边界值分析:测试边界条件,这些条件通常容易出错。
- 错误猜测:基于经验和直觉预测可能的错误。
5. 自动化测试:自动化测试是指使用自动化工具来执行测试用例,以提高测试效率和覆盖率。
6. 性能测试:性能测试是评估软件应用的速度、稳定性、资源消耗等性能指标的过程。
7. 安全性测试:安全性测试专注于评估软件的安全性,包括识别和修复安全漏洞。
8. 回归测试:当软件发生更改时,回归测试用于确保这些更改没有引入新的错误。
9. 测试中的常见问题和挑战:- 测试时间不足- 测试资源有限- 缺陷管理不当- 测试环境不一致10. 软件测试的最佳实践:- 早期介入测试活动- 持续集成和持续测试- 测试自动化- 跨功能团队合作通过这些复习题,学生应该能够对软件测试有一个全面的理解,包括它的重要性、不同类型的测试、测试的生命周期、设计测试用例的方法、自动化和性能测试的重要性,以及在实际测试过程中可能遇到的挑战和最佳实践。
1. 软件测试的主要目的是什么?A) 发现软件中的缺陷B) 证明软件没有缺陷C) 提高软件的性能D) 增加软件的功能2. 下列哪项不是软件测试的类型?A) 单元测试B) 集成测试C) 性能测试D) 设计测试3. 白盒测试主要关注什么?A) 软件的输入和输出B) 软件的内部结构和逻辑C) 软件的用户界面D) 软件的数据库4. 黑盒测试主要关注什么?A) 软件的内部结构和逻辑B) 软件的输入和输出C) 软件的用户界面D) 软件的数据库5. 下列哪项是静态测试的例子?A) 代码审查B) 单元测试C) 压力测试D) 回归测试6. 动态测试通常涉及什么?A) 代码审查B) 单元测试C) 代码格式检查D) 文档审查7. 下列哪项不是测试用例设计技术?A) 等价类划分B) 边界值分析C) 决策表测试D) 代码重构8. 软件测试的生命周期包括以下哪些阶段?A) 测试计划、测试设计、测试执行、测试评估B) 需求分析、设计、编码、测试C) 需求分析、测试设计、测试执行、测试评估D) 测试计划、设计、编码、测试9. 下列哪项是回归测试的目的?A) 发现新的缺陷B) 验证已修复的缺陷C) 提高软件性能D) 增加软件功能10. 压力测试主要关注什么?A) 软件在正常条件下的性能B) 软件在极端条件下的性能C) 软件的用户界面D) 软件的数据库11. 下列哪项是性能测试的类型?A) 负载测试B) 单元测试C) 集成测试D) 系统测试12. 下列哪项是集成测试的目的?A) 验证单个模块的功能B) 验证模块之间的接口C) 验证整个系统的功能D) 验证软件的性能13. 下列哪项是系统测试的目的?A) 验证单个模块的功能B) 验证模块之间的接口C) 验证整个系统的功能D) 验证软件的性能14. 下列哪项是验收测试的目的?A) 验证软件是否满足用户需求B) 验证软件的性能C) 验证软件的安全性D) 验证软件的可维护性15. 下列哪项是安全测试的目的?A) 验证软件是否满足用户需求B) 验证软件的性能C) 验证软件的安全性D) 验证软件的可维护性16. 下列哪项是可维护性测试的目的?A) 验证软件是否满足用户需求B) 验证软件的性能C) 验证软件的安全性D) 验证软件的可维护性17. 下列哪项是兼容性测试的目的?A) 验证软件是否满足用户需求B) 验证软件的性能C) 验证软件的安全性D) 验证软件在不同环境下的表现18. 下列哪项是可用性测试的目的?A) 验证软件是否满足用户需求B) 验证软件的性能C) 验证软件的安全性D) 验证软件的用户界面19. 下列哪项是配置测试的目的?A) 验证软件是否满足用户需求B) 验证软件的性能C) 验证软件的安全性D) 验证软件在不同配置下的表现20. 下列哪项是安装测试的目的?A) 验证软件是否满足用户需求B) 验证软件的性能C) 验证软件的安全性D) 验证软件的安装过程21. 下列哪项是冒烟测试的目的?A) 验证软件是否满足用户需求B) 验证软件的性能C) 验证软件的基本功能D) 验证软件的安全性22. 下列哪项是探索性测试的目的?A) 验证软件是否满足用户需求B) 验证软件的性能C) 验证软件的安全性D) 发现软件的新缺陷23. 下列哪项是自动化测试的优点?A) 提高测试效率B) 降低测试成本C) 提高测试覆盖率D) 以上都是24. 下列哪项是手动测试的优点?A) 提高测试效率B) 降低测试成本C) 提高测试覆盖率D) 灵活性高25. 下列哪项是测试管理工具的功能?A) 跟踪测试进度B) 管理测试用例C) 生成测试报告D) 以上都是26. 下列哪项是缺陷跟踪工具的功能?A) 记录缺陷B) 分配缺陷C) 跟踪缺陷状态D) 以上都是27. 下列哪项是测试计划的内容?A) 测试范围B) 测试策略C) 测试资源D) 以上都是28. 下列哪项是测试设计的内容?A) 测试用例设计B) 测试数据准备C) 测试环境搭建D) 以上都是29. 下列哪项是测试执行的内容?A) 执行测试用例B) 记录测试结果C) 分析测试结果D) 以上都是30. 下列哪项是测试评估的内容?A) 分析测试结果B) 生成测试报告C) 评估测试覆盖率D) 以上都是31. 下列哪项是测试报告的内容?A) 测试结果B) 测试覆盖率C) 测试总结D) 以上都是32. 下列哪项是测试总结的内容?A) 测试结果B) 测试覆盖率C) 测试经验D) 以上都是33. 下列哪项是测试经验的内容?A) 测试方法B) 测试工具C) 测试策略D) 以上都是34. 下列哪项是测试方法的内容?A) 测试技术B) 测试策略C) 测试工具D) 以上都是35. 下列哪项是测试工具的内容?A) 自动化测试工具B) 缺陷跟踪工具C) 测试管理工具D) 以上都是36. 下列哪项是测试策略的内容?A) 测试方法B) 测试工具C) 测试计划D) 以上都是37. 下列哪项是测试计划的内容?A) 测试范围B) 测试策略C) 测试资源D) 以上都是38. 下列哪项是测试资源的内容?A) 测试人员B) 测试环境C) 测试工具D) 以上都是39. 下列哪项是测试环境的内容?A) 硬件环境B) 软件环境C) 网络环境D) 以上都是40. 下列哪项是测试人员的内容?A) 测试工程师B) 测试经理C) 测试团队D) 以上都是41. 下列哪项是测试团队的内容?A) 测试工程师B) 测试经理C) 测试协调员D) 以上都是42. 下列哪项是测试协调员的内容?A) 协调测试活动B) 管理测试资源C) 生成测试报告D) 以上都是43. 下列哪项是测试经理的内容?A) 管理测试团队B) 制定测试计划C) 生成测试报告D) 以上都是44. 下列哪项是测试工程师的内容?A) 设计测试用例B) 执行测试用例C) 分析测试结果D) 以上都是45. 下列哪项是测试用例的内容?A) 测试步骤B) 测试数据C) 预期结果D) 以上都是46. 下列哪项是测试步骤的内容?A) 输入数据B) 执行操作C) 检查结果D) 以上都是47. 下列哪项是测试数据的内容?A) 输入数据B) 预期结果C) 实际结果D) 以上都是48. 下列哪项是预期结果的内容?A) 正确的输出B) 错误的输出C) 异常的输出D) 以上都是49. 下列哪项是实际结果的内容?A) 正确的输出B) 错误的输出C) 异常的输出D) 以上都是50. 下列哪项是异常的输出的内容?A) 错误的输出B) 异常的输出C) 未预期的输出D) 以上都是答案:1. A2. D3. B4. B5. A6. B7. D8. A9. B10. B11. A12. B13. C14. A15. C16. D17. D18. D19. D20. D21. C22. D23. D24. D25. D26. D27. D28. D29. D30. D31. D32. D33. D34. D35. D36. D37. D38. D39. D40. D41. D42. D43. D44. D45. D46. D47. D48. D49. D50. D。
简答题1、什么就就是软件测试?答:软件测试就就是为了发现错误而执行程序得过程。
或者说,软件测试就就是根据软件开发各阶段得规格说明与程序得内部结构而精心设计一批测试用例(即输入数据及其预期得输出结果),并利用这些测试用例去运行程序,以发现程序错误得过程。
2、软件测试得目得?答:测试得目得就就是想以最少得人力、物力与时间找出软件中潜在得各种错误与缺陷,通过修正种错误与缺陷提高软件质量,回避软件发布后由于潜在得软件缺陷与错误造成得隐患带来得商业风险。
3、白盒测试有哪几种方法?答:白盒测试也称结构测试或逻辑驱动测试,它就就是知道产品内部工作过程,可通过测试来检测产品内部动作就就是否按照规格说明书得规定正常进行,按照程序内部得结构测试程序,检验程序中得每条通路就就是否都有能按预定要求正确工作,而不顾它得功能,白盒测试得主要方法有逻辑驱动、基路测试等,主要用于软件验证。
“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
“白盒”法就就是穷举路径测试。
4、软件得缺陷等级应如何划分?1)、致命错误,可能导致本模块以及其她相关模块异常,死机等问题;2)、严重错误,问题局限在本模块,导致模块功能失效或异常退出3)、一般错误,模块功能部分失效;4)、建议问题,由问题提出人对测试对象得改进意见;5、如果能够执行完美得黑盒测试,还需要进行白盒测试吗?(白盒与黑盒得区别)任何工程产品(注意就就是任何工程产品)都可以使用以下两种方法之一进行测试。
黑盒测试:已知产品得功能设计规格,可以进行测试证明每个实现了得功能就就是否符合要求。
白盒测试:已知产品得内部工作过程,可以通过测试证明每种内部操作就就是否符合设计规格要求,所有内部成分就就是否以经过检查。
软件得黑盒测试意味着测试要在软件得接口处进行。
这种方法就就是把测试对象瞧做一个黑盒子,测试人员完全不考虑程序内部得逻辑结构与内部特性,只依据程序得需求规格说明书,检查程序得功能就就是否符合它得功能说明。
软件测试复习题软件测试与质量保证复习提纲提要:【复习重点】单元测试(黑盒测试:边界值、等价类、决策表;白盒测试:语句覆盖、条件覆盖、判定(分支)覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖、基路径法、数据流测试——定义节点、使用节点)【复习方法】立足于教材,重点看讲课课件及所讲过的习题【复习题目】黑盒测试:边界值一般边界条件法(4n+1)健壮性边界条件法(6n+1)最坏边界条件法(5(n))健壮最坏边界条件法(7(n))等价类:注意无效等价类决策表:先得到等价类,简化决策表白盒测试(程序流程图):语句路径覆盖:被测程序的每个语句至少被执行一次P93判定(分支)路径覆盖:设计足够的测试用例,使得程序中的每一个判定至少都获得一次“真值”和“假值”,或者说使得程序中的每一个分支都至少通过一次P94条件路径覆盖:对每个判定中所包含的若干个条件,应设计足够多的测试用例,使得判定中的每个条件都至少取到一次“真值”和“假值”的机会,也就是说,判定中的每个条件的所有可能结果至少出现一次。
(先列出判定中全部条件的所有可能取值范围,根据所有可能的取值范围设置测试用例)(注:满足条件路径覆盖度量标准的测试用例不一定满足判定路径覆盖度量标准)判定/条件路径覆盖:通过设计足够多的测试用例,使得运行这些测试用例时,判定中的每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次。
(满足判定/条件路径覆盖的测试用例一定也满足判定路径覆盖、条件路径覆盖以及语句路径覆盖度量标准)条件组合路径覆盖:通过设计足够多的测试用例,使得运行这些测试用例时,每个判定中条件结(注:条件组合路径覆盖是对每个判定分别考虑它们的条件组合,果的所有可能组合至少出现一次。
而不是对整个程序中所有判定的所有条件的组合)(满足条件组合路径覆盖的测试用例,一定都满足前面4中覆盖方法)基本路径法:包含一组以前没有处理的语句或条件的一条路径(画控制流程图,节点用标有编号的圆圈表示)节点:一般代表了程序流程图中矩形框所表示的处理、菱形框所表示的判定条件,以及两条或多条节点的汇合点等控制流:用带箭头的弧线表示,用来连接相关的两个节点,指示了程序控制的转移过程圈复杂度V(G)= e –n +2 = 判定节点数+ 1 (每一个elseif以及每个case语句都算为一个判定节点)其中e表示程序控制流图中边的数量n表示节点的数量定义/使用法:按照程序中变量定义和使用的位置来选择程序的测试路径的一种测试方法。
软件测评知识点大全软件测试相关知识以下内容根据软件测评考试内容总结,包含白盒测试、黑盒测试、功能性测试、性能测试、安全性测试等覆盖机会所有测试内容及计算机基础常识。
第一部分:软件评测知识1.软件质量与软件测试软件测试:在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成过程的文档、数据以及程序进行测试软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力2.软件测试与质量保证软件测试只是质量保证工作中的一个环节,软件质量保证与软件测试是软件质量工程的两个不同层面的工作;质量保证:通过预防、检查与改进来保证软件质量,采用全面质量管理和过程改进的原理来开展质量保证工作,主要关注软件质量的检查与测试,主要着眼于软件开发活动的过程、步骤和产特软件测试:通过执行软件来,对过程中的产物(开发文档和程序)进行走查,发现问题,报告质量3.软件测试的目的测试是程序的执行过程,目的在于发现错误;一个好的测试用例在于发现了至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试;4.软件测试原则所有的软件测试都应追溯到用户需求应当把“尽早地和不断地进行软件测试”作为测试者的座右铭完全测试是不可能的,测试需要终止测试无法显示软件潜在的缺陷;充分注意测试中的群集现象程序员应避免检查自己的程序尽量避免测试的随意性5.软件测试对象程序开发过程中的各个文档、源程序6.软件测试过程模型-V模型是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系;局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现7.软件测试过程模型-W模型在V模型的基础上,增加千开发阶段的同步测试,形成W模型;测试与开发同步进行,有利用尽早的发现问题局限性:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代,自发性以及变更调整8.软件测试过程模型-H模型在H模型中,软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段;软件测试可以进行尽早的进行;软件测试可以根据被测物的不同而分层次进行9.测试模型使用在实际工作中应灵活地运用各种模型的优点10.单元测试11.集成测试12.确认测试13.系统测试14.验收测试测试内容:根据任务书或合迥、供需双方约定的验收依据文档进行对整个系统的测试与评审,确认是否接收或拒绝系统;15.开发方测试通常也叫‘验收测试’或‘a测试’,在软件开发环境中,开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求16.用户测试在用户的应用环境下,用户检测与核实软件实现是否符合自己预期的要求。
选择题6 填空题10 (名词解释 4 简答7 综合题1)涉及标准内容的不考括号内为以下内容第1章2.简述软件危机的表现形式和诱发原因,并谈谈软件危机和软件错误的区别。
答:软件危机是指计算机软件开发与维护过程中所遇到的一系列严重问题。
其表现形式为:软件价格高、软件工作量难于估计、软件质量低、软件修改与维护困难、软件的供需差在不断扩大、软件的开发与维护过程往往失去控制。
诱发软件错误的原因:需求定义的不完善、客户与开发者间不良沟通、对软件需求的故意偏离、逻辑设计的错误、编码错误、不符合文档编制和编码规定、测试过程的不完善、规程的错误、文档编制错误。
3. 影响软件质量的因素有哪些?答:正确性、健壮性、效率、完整性、风险、可用性、可移植性、可再用性、互运行性、可理解性、可维修性、灵活性、可测试性。
第2章3. 软件质量保证标准分为哪几类以及它的分类准则是什么?答:软件质量保证标准分为质量管理标准和项目过程标准。
软件质量保证标的分类是从关注单位、关注重点、标准的目的和标准的目标这几个方面着手的。
第3章1. 为什么软件质量会有成本呢?答:软件产品的质量成本,或更准确地说,软件质量的投资,根源于确保开发产品符合早已确认的需求。
而软件产品投资的性质和规模由多种不同因素决定,其中包括:项目预算、开发产品的类型、使用的技术、消费者提出的需求及该合同能否提供具有在标准和规章限定框架内的特别内容的政府合同、内部开发环境、开发团队所拥有的领域知识、可重复过程和测量与开发者日常工作结合的程度。
2. 软件质量成本分析的输入的数据需求是通过什么途径获得的?答:在执行质量成本度量的任务时,必须保证相关数据可观察或可测量。
这些数据可以是通过以下几个方面得到:直接观测得到的;通过分析得到的;由顾客提供的;从其他任务的执行情况中收集的;其他项目的输出结果;由项目本身的物理特性要求的。
第4章1. 审查过程的辅助目标有哪些?答:(1)提供从需求到设计的可跟踪性。
软件测试学习的知识点在当今数字化时代,软件已经成为人们生活和工作的重要组成部分。
为了保证软件质量和可靠性,软件测试变得至关重要。
软件测试是通过运行软件系统,检查其是否满足预期要求的过程。
软件测试学习涵盖了许多重要知识点,下面将逐一介绍。
1. 软件测试的基本概念和原理:软件测试包括测试目标、测试原则、测试过程和测试方法等。
了解软件测试的基本概念和原理是建立后续学习的基础。
2. 软件测试的分类:软件测试可以根据不同的角度进行分类,如静态测试和动态测试、黑盒测试和白盒测试、功能测试和非功能测试等。
了解不同类型的软件测试有助于选择合适的测试方法。
3. 软件测试的策略和方法:软件测试的策略和方法是根据特定的测试目标和需求来制定的。
常用的测试方法包括黑盒测试、白盒测试、灰盒测试、自动化测试等。
了解不同的测试策略和方法,可以提高测试的效率和准确性。
4. 软件测试的生命周期:软件测试涵盖整个软件开发生命周期,在不同的阶段进行不同类型的测试。
常见的测试阶段包括单元测试、集成测试、系统测试和验收测试。
了解完整的测试生命周期有助于规范和管理测试过程。
5. 测试工具和技术:随着技术的不断发展,出现了许多用于辅助软件测试的工具和技术。
如性能测试工具、缺陷管理工具、测试自动化工具等。
熟悉这些工具和技术有助于提高测试效率和质量。
6. 软件缺陷分析和管理:软件测试的目的之一是发现和修复软件缺陷。
了解软件缺陷的分类和分析方法,以及如何进行缺陷管理和跟踪,是软件测试学习的重要方面。
7. 质量保证和持续集成:随着软件开发的快速迭代和持续交付的需求增加,质量保证和持续集成成为软件测试的重要组成部分。
了解如何建立有效的质量保证流程和持续集成环境,可以确保软件的质量和稳定性。
8. 软件测试的团队管理和沟通:软件测试通常需要多人协作进行,因此团队管理和沟通能力也是软件测试学习的关键要素。
了解如何有效地与开发团队和其他测试人员进行沟通和协作,是软件测试学习的不可或缺的一部分。
《软件测试与质量保证》期末复习重点一、题型选择题 20分 20题判断题 10分 10~15个填空题 10分 10空简答题 15分 3个分析题 10分 2个综合题 35分 2个注:逻辑覆盖、等价类划分、自动化测试不会有大题(了解概念即可)二、重点1. 选择与填空软件测试的对象:既包括源程序,又包括需求规格说明、概要设计说明、详细设计说明软件测试的基本职责:验证、确认软件测试技术分类:按是否需要执行被测软件划分:静态测试、动态测试按测试用例设计方法划分:黑盒测试、白盒测试(详见下方)按测试策略和过程划分:单元测试、集成测试、确认测试、系统测试、验收测试静态测试:代码审查、走查,桌面检查;动态测试:运行软件测试与调试的区别:测试的目的是发现错误,调试的目的是修正错误测试的对象是各阶段产生的所有产品,调试的对象主要是源代码测试的过程是有计划的、可以重复的,调试的过程是随机的不可重复的调试不能完全替代测试测试与调试的共同点:为了提高软件质量测试阶段与开发过程的对应关系测试阶段开发过程测试重点单元测试详细设计编码错误集成测试概要设计接口错误确认测试需求分析合乎用户预期系统测试需求定义整体有效运行V模型:明确地表明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间的对应关系W模型:V模型的改进,更好地体现了软件开发与软件测试工作的同步性,指出了测试伴随着整个软件开发周期,测试的对象不仅仅是程序,还包括需求和设计。
每个软件开发活动结束后就可以执行相应的测试H模型:从微观的角度来看待软件测试的过程回归测试:测试由于修正缺陷而更新的应用程序,以确保修正了旧缺陷而未引入新缺陷α测试:由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。
用户在开发者受控的环境下进行测试。
β测试:由多个用户在一个或多个用户的实际使用环境下进行的测试。
开发者通常不在测试现场。
单元测试中用来模拟被测模块调用者的模块是驱动模块单元测试中用来代替所测模块调用的子模块是桩模块使用白盒测试方法时,确定测试用例应根据程序的内部逻辑和指定的覆盖标准。
1. 软件测试的主要目的是什么?A. 证明软件没有错误B. 发现软件中的错误C. 提高软件的性能D. 增加软件的功能2. 下列哪项不是软件测试的类型?A. 单元测试B. 集成测试C. 性能测试D. 设计测试3. 白盒测试主要关注什么?A. 软件的输入和输出B. 软件的内部结构C. 软件的用户界面D. 软件的功能4. 黑盒测试主要关注什么?A. 软件的输入和输出B. 软件的内部结构C. 软件的用户界面D. 软件的功能5. 下列哪项是静态测试技术?A. 代码审查B. 单元测试C. 性能测试D. 压力测试6. 动态测试与静态测试的主要区别是什么?A. 动态测试需要运行代码,静态测试不需要B. 动态测试不需要运行代码,静态测试需要C. 动态测试只测试功能,静态测试只测试性能D. 动态测试只测试性能,静态测试只测试功能7. 下列哪项是软件测试的生命周期模型?A. V模型B. W模型C. X模型D. Y模型8. 在软件测试中,回归测试的目的是什么?A. 发现新的错误B. 验证已修复的错误没有引入新的错误C. 提高软件的性能D. 增加软件的功能9. 下列哪项是性能测试的类型?A. 负载测试B. 单元测试C. 集成测试D. 功能测试10. 压力测试主要关注什么?A. 软件在正常负载下的性能B. 软件在超出正常负载下的性能C. 软件的功能D. 软件的用户界面11. 下列哪项是软件测试的自动化工具?A. JUnitB. SeleniumC. LoadRunnerD. 以上都是12. 下列哪项是软件测试的最佳实践?A. 只进行单元测试B. 只进行集成测试C. 只进行性能测试D. 进行全面的测试覆盖13. 下列哪项是软件测试的文档?A. 测试计划B. 测试用例C. 测试报告D. 以上都是14. 下列哪项是软件测试的度量标准?A. 缺陷密度B. 测试覆盖率C. 测试执行时间D. 以上都是15. 下列哪项是软件测试的风险?A. 测试不充分B. 测试过度C. 测试延迟D. 以上都是16. 下列哪项是软件测试的策略?A. 黑盒测试B. 白盒测试C. 灰盒测试D. 以上都是17. 下列哪项是软件测试的阶段?A. 计划阶段B. 设计阶段C. 执行阶段D. 以上都是18. 下列哪项是软件测试的类型?A. 功能测试B. 非功能测试C. 维护测试D. 以上都是19. 下列哪项是软件测试的工具?A. 自动化测试工具B. 手动测试工具C. 性能测试工具D. 以上都是20. 下列哪项是软件测试的原则?A. 尽早测试B. 全面测试C. 独立测试D. 以上都是21. 下列哪项是软件测试的模型?A. 瀑布模型B. 迭代模型C. 螺旋模型D. 以上都是22. 下列哪项是软件测试的方法?A. 基于需求的测试B. 基于风险的测试C. 基于模型的测试D. 以上都是23. 下列哪项是软件测试的技术?A. 边界值分析B. 等价类划分C. 决策表测试D. 以上都是24. 下列哪项是软件测试的文档?A. 测试计划B. 测试用例C. 测试报告D. 以上都是25. 下列哪项是软件测试的度量标准?A. 缺陷密度B. 测试覆盖率C. 测试执行时间D. 以上都是26. 下列哪项是软件测试的风险?A. 测试不充分B. 测试过度C. 测试延迟D. 以上都是27. 下列哪项是软件测试的策略?A. 黑盒测试B. 白盒测试C. 灰盒测试D. 以上都是28. 下列哪项是软件测试的阶段?A. 计划阶段B. 设计阶段C. 执行阶段D. 以上都是29. 下列哪项是软件测试的类型?A. 功能测试B. 非功能测试C. 维护测试D. 以上都是30. 下列哪项是软件测试的工具?A. 自动化测试工具B. 手动测试工具C. 性能测试工具D. 以上都是31. 下列哪项是软件测试的原则?A. 尽早测试B. 全面测试C. 独立测试D. 以上都是32. 下列哪项是软件测试的模型?A. 瀑布模型B. 迭代模型C. 螺旋模型D. 以上都是33. 下列哪项是软件测试的方法?A. 基于需求的测试B. 基于风险的测试C. 基于模型的测试D. 以上都是34. 下列哪项是软件测试的技术?A. 边界值分析B. 等价类划分C. 决策表测试D. 以上都是35. 下列哪项是软件测试的文档?A. 测试计划B. 测试用例C. 测试报告D. 以上都是36. 下列哪项是软件测试的度量标准?A. 缺陷密度B. 测试覆盖率C. 测试执行时间D. 以上都是37. 下列哪项是软件测试的风险?A. 测试不充分B. 测试过度C. 测试延迟D. 以上都是38. 下列哪项是软件测试的策略?A. 黑盒测试B. 白盒测试C. 灰盒测试D. 以上都是39. 下列哪项是软件测试的阶段?A. 计划阶段B. 设计阶段C. 执行阶段D. 以上都是40. 下列哪项是软件测试的类型?A. 功能测试B. 非功能测试C. 维护测试D. 以上都是41. 下列哪项是软件测试的工具?A. 自动化测试工具B. 手动测试工具C. 性能测试工具D. 以上都是42. 下列哪项是软件测试的原则?A. 尽早测试B. 全面测试C. 独立测试D. 以上都是43. 下列哪项是软件测试的模型?A. 瀑布模型B. 迭代模型C. 螺旋模型D. 以上都是44. 下列哪项是软件测试的方法?A. 基于需求的测试B. 基于风险的测试C. 基于模型的测试D. 以上都是45. 下列哪项是软件测试的技术?A. 边界值分析B. 等价类划分C. 决策表测试D. 以上都是46. 下列哪项是软件测试的文档?A. 测试计划B. 测试用例C. 测试报告D. 以上都是47. 下列哪项是软件测试的度量标准?A. 缺陷密度B. 测试覆盖率C. 测试执行时间D. 以上都是48. 下列哪项是软件测试的风险?A. 测试不充分B. 测试过度C. 测试延迟D. 以上都是49. 下列哪项是软件测试的策略?A. 黑盒测试B. 白盒测试C. 灰盒测试D. 以上都是50. 下列哪项是软件测试的阶段?A. 计划阶段B. 设计阶段C. 执行阶段D. 以上都是51. 下列哪项是软件测试的类型?A. 功能测试B. 非功能测试C. 维护测试D. 以上都是52. 下列哪项是软件测试的工具?A. 自动化测试工具B. 手动测试工具C. 性能测试工具D. 以上都是53. 下列哪项是软件测试的原则?A. 尽早测试B. 全面测试C. 独立测试D. 以上都是54. 下列哪项是软件测试的模型?A. 瀑布模型B. 迭代模型C. 螺旋模型D. 以上都是55. 下列哪项是软件测试的方法?A. 基于需求的测试B. 基于风险的测试C. 基于模型的测试D. 以上都是56. 下列哪项是软件测试的技术?A. 边界值分析B. 等价类划分C. 决策表测试D. 以上都是57. 下列哪项是软件测试的文档?A. 测试计划B. 测试用例C. 测试报告D. 以上都是58. 下列哪项是软件测试的度量标准?A. 缺陷密度B. 测试覆盖率C. 测试执行时间D. 以上都是59. 下列哪项是软件测试的风险?A. 测试不充分B. 测试过度C. 测试延迟D. 以上都是答案:1. B2. D3. B4. A5. A6. A8. B9. A10. B11. D12. D13. D14. D15. D16. D17. D18. D19. D20. D21. D22. D23. D24. D25. D26. D27. D28. D29. D30. D31. D32. D33. D34. D35. D36. D37. D38. D39. D40. D41. D42. D43. D44. D45. D46. D47. D48. D49. D50. D51. D52. D53. D54. D55. D56. D58. D59. D。
第一章软件测试概述1.软件危机表现形式:(1)软件开发费用和进度失控。
(2)软件系统实现的功能与实际需求不符。
(3)软件的可靠性差。
(4)软件难以维护。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。
(7)软件生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
2.软件危机的原因:一方面是与软件本身的特点有关,另一方面是与软件开发和维护的方法不正确。
3.软件生存期:6个步骤:计划,需求分析(软件定义阶段),设计,程序编写,测试(软件开发阶段),运行和维护(软件维护阶段)。
4.软件测试的目的:为了发现尽可能多的软件缺陷,并期望通过改错来清除缺陷。
5.软件质量(软件质量特性)是软件一些特性的组合,它仅依赖软件本身。
6.软件质量模型:McCall模型Boehm模型ISO/IEC 9126三层质量模型(质量特性:功能性、可靠性、可用性、效率、可移植性、可维护性):内部质量特性:可维护性、灵活性、可移植性、可读性、可测试性、可理解性外部质量特性:正确性、可用性、效率、可靠性、完整性、适用性、精确性、坚固性使用质量:有效性、生产率、安全性、满意程度共同特点是把软件质量特性定义成分层模型。
7.软件测试以检验是否满足需求为目标:(1)软件是否满足规定的需求;(2)软件是否有差别测试是为了证明程序有错,而不是证明程序无错。
一个好的测试用例在于它能发现至今未发现的错误。
一个成功的测试是发现了至今未发现的错误。
8.软件测试原则:(1)所有的测试都应追溯到用户需求;(2)应尽早的和不断地进行软件测试;(3)在有限的时间和资源下进行完全测试并找出软件所有的错误和缺陷是不可能的,软件测试不能无限进行下去,应适时终止;(4)测试只能证明软件存在错误,而不能证明软件没有错第二章软件测试分类及流程1.软件测试分类:(1)按测试方法分类:白盒测试(结构测试或逻辑驱动测试)、黑盒测试(功能测试或数据驱动测试)、灰盒测试(2)按测试方式分类:静态测试、动态测试(3)按测试过程分类:单元测试、集成测试、系统测试(4)按测试目的分类:功能测试、接口测试、用户界面测试、健壮性测试、性能测试、强度测试、压力测试、负载测试、安全性测试、可靠性测试、恢复测试、安装/卸载测试、兼容性测试、文档测试(5)按执行过程是否需要人工干预分类:手工测试、自动化测试2.软件测试基本流程:(1)需求分析(2)制定测试计划(3)设计测试方案:软件测试背景、依据、测试范围的界定、风险的确定、时间表的制订、其他(4)测试准备(5)测试环境的建立(6)执行测试:输入,执行过程,检查过程,输出(7)记录测试(8)缺陷管理:谁测试谁提交,缺陷描述,常见缺陷管理工具:TestDirector、Bugfree(9)评估测试:缺陷评估、覆盖评测、质量评测(10)总结测试和维护测试3.软件测试原则:(1)尽早测试(2)全面测试(3)全过程测试(4)独立的、迭代的测试(5)Pareto原则(6)对测试出的错误结果一定要有一个确认的过程4.设计测试用例的原则:(1)基于测试需求的原则;(2)用成熟测试用例设计方法来指导设计;(3)兼顾测试充分性和效率的原则;第三章黑盒测试1.黑盒测试又称功能测试、数据驱动测试或基于规格说明的测十四,主要是根据功能需求来测试程序是否按照预期工作。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试。
2.黑盒测试优点:(1)比较简单,不需要了解程序内部的代码及实现;(2)与软件的内部实现无关;(3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;(4)基于软件开发文档,将测试直接和待测软件要完成的操作相关联,所以能够知道软件实现了文档中的哪些功能;(5)从产品功能角度测试可以最大限度的满足用户的需求;(6)相同动作可重复执行,最枯燥的部分可由机器完成,容易实现自动化测试;(7)依据测试用例有针对性地寻找问题,定位更为准确,容易生成测试数据;(8)设计黑盒测试用例可以喝软件实现同时进行,因此可以压缩项目总的开发时间。
缺点:(1)代码得不到测试;(2)如果需求规格说明设计有误,很难发现错误所在;(3)测试不能充分的进行;(4)结果的准确性取决于测试用例的设计;(5)自动化测试的复用性较低。
3.黑盒测试是穷举输入测试。
4.黑盒测试方法:等价类划分法、边界值法、因果图法、决策表法、正交测试法、错误推测法、场景法(7个):(1)等价类划分法原则:①在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。
②输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。
③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的1情况下,可确立n个有效等价类和一个无效等价类。
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
⑥在确知已划分的等价类中各元素在程序处理中的方式不用的情况下,则应再将该等价类划分成更小的等价类。
做题:①有效等价类争取覆盖,无效等价类必须全部执行一次(只存在一个变量)。
②步骤:先划分等价类(输入条件,有效等价类,编号,无效等价类,编号)再设计测试用例(用例编号,输入数据,预期结果,覆盖的等价类)(2)边界值分析法①标准边界值测试:只考虑有效范围内的边界值。
对于一个有n个变量的程序,保留其中一个变量,其取值为最小值(Min)、略高于最小值(Min+)、正常值(Normal)、略低于最大值(Max-)、最大值(Max),让其余变量取正常值,标准边界值分析测试程序会产生4n+1个测试用例。
②健壮边界值测试:考虑有效和无效数据范围内的边界值。
对于一个含有n个变量的程序,保留其中一个变量,其取值为,其取值为略低于最小值(Min-)、最小值(Min)、略高于最小值(Min+)、正常值(Normal)、略低于最大值(Max-)、最大值(Max),略高于最大值(Max+),让其余变量取正常值,健壮边界值分析测试程序会产生6n+1个测试用例。
做题:测试区间,测试用例编号,预期输入,预期输出(3)决策表法做题:①N个条件,2^n种规则。
②简化,合并相似规则。
(合并后的条件项用“-”表示,称为无关条件)优点:它能把复杂的问题按各种可能的情况一一列举出来,简明易懂,也可避免遗漏。
其缺点是不能表达重复执行的动作,例如循环结构。
(4)因果图法(考虑输入条件之间的联系、相互组合)优点:①考虑多个输入之间的相互组合、相互制约关系。
②指导测试用例的选择,能够指出需求规格说明描述中存在的问题。
(0,1)或(I):a、b、c中至少有一个必须是1,即a、b、c不能同时为0。
(1,n)唯一(O):a和b必须有一个,且有且仅有1个为1。
(1)要求(R):a是1时,b必须是1,即不能a是1时b是0。
强制(M):若结果a是1,则结果b强制为0。
(注:句尾括号中(0,n)表示1出现0到n次)e1 e1 e1 e1做题:①分析②关联:形成因果图③转换:转化判定表④输出:设计测试用例(5)错误推测法基本思想:列出所有可能出现的错误和容易发现错误的地方,然后依据测试者经验选择测试用例。
(6)场景法事件流分为基本流和备用流构成场景。
第四章白盒测试1.白盒测试与程序内部结构相关,因此也称结构测试或逻辑驱动测试,是对软件的过程性细节做细致的检查。
分为静态(不执行软件的情况下分析,称为结构分析)和动态(查看和使用代码的内部结构,设计和执行测试,称为结构化测试)两种。
2.静态白盒测试:原则:错误发现得越早,改正错误的成本越低,正确改正错误的可能性越大,改正错误时可能引发的其他错误的数量也越少。
分类:代码检查法(代码审查、代码走查、桌面检查)静态结构分析法(通过生成各种图表、静态错误分析、表达式分析、接口分析)静态质量度量法(可:护性包括可分析性、可修改性、稳定性、可测性)。
3.动态白盒测试:(1)逻辑覆盖测试①语句覆盖:每条语句至少被执行一次。
(标准最弱)②判定覆盖(分支覆盖):每个判断的“真”“假”分支都至少被执行一次。
(可真真,假假,会忽略条件中取或的情况,不必需要控制只存在一个变量)③条件覆盖:判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。
(条件和判定不一样)④判定-条件覆盖:被测试程序中的每个判断本身的判定结果(真/假)至少满足一次,同时,每个逻辑条件的可能值也至少被满足一次。
⑤条件组合覆盖:被测试程序中每个判定中条件结果的所有可能组合至少执行一次。
(同一个判断语句内存在多个条件的情况,进行笛卡尔乘积组合,不同的判断语句内的条件取值之间无需组合,对于单条件的判断语句,只需要满足自己的所有取值即可。
)⑥路径覆盖:覆盖程序中所有可能的路径。
(2)基本路径测试原则:保证被测程序的每个可执行语句至少被执行一次。
步骤:①控制流图②环路复杂度V(G)=区域数=弧数-结点数+2=判定结点数+1③确定独立路径集合④设计测试用例(3)程序插桩法是一种软件动态测试手段。
往被测程序中插入操作来实现测试目的的方法。
4.其他白盒测试方法(1)域测试:基于程序结构的测试方法。
程序错误分为:域错误、计算型错误、丢失路径错误。
(2)符号测试(3)Z路径覆盖:简化循环意义下的路径覆盖。
第五章单元测试1.单元测试:又称为模块测试。
包括模块程序结构检查、代码测试、模块内功能测试。
是软件测试中最基础的测试,集成测试、功能测试和系统测试都建立在单元测试之上,强调被测试对象的独立性。
单元测试的对象:可独立编译或汇编的程序模块。
目的:检查每个软件单元能否正确地实现说明中的功能、性能、接口和其他设计约束等要求,发现单元内可能存在的各种差错。
方法:以编程人员为主体进行。
特点:①它是一种验证行为,验证功能的正确性。
②它是一种设计行为,迫使编程人员解除软件中的耦合。
③它是一种编写文档的行为。
④它具有回归性。
⑤提高反馈速度,减少重复工作,提高开发效率。
⑥保证最后的代码修改不会破坏之前代码的功能。
⑦让代码维护更容易。
⑧有助于改进代码质量和设计。
2.单元测试方法:人工静态分析:合格的代码应具备:正确性、清晰性、规范性、一致性、高效性等人工动态测试自动静态分析自动动态测试3.群集现象经验表明:测试后程序中残存的错误数目与该程序中已发现的错误数目或检错率成正比。
4.单元测试重点:①一般由程序员自己完成,通常把单元测试看成编码步骤的附属品。
②针对每个程序模块,解决五个方面的问题,即模块接口、局部数据结构、边界条件、独立的路径和错误处理。