备考指南
第一次准备自考,把复习的重心都放在了往年真题上,将能找到的往年真题都总结好,以总结的真题为重心开始复习。 而官方指定的课本看了一遍就束之高阁了。
经过第一次考试才发现,考试的重心全部在官方指定的课本上,而与往年真题重复的知识点并没有多少。
所以,有准备郑州大学软件工程专业自考的同学,在备考的时候一定要以官方指定课本为重心,因为近几年自考的考题不再对外公布,所以能看到的真题都是早些年的,参考价值不高,题型也有变化,因此,真题仅供参考。
非真题总结
选择题
-
软件测试的目的是
发现软件缺陷
-
软件测试中白盒测试是通过分析程序的
内部结构
来设计测试用例的 -
黑盒法是根据
输入输出数据
来设计测试用例的 -
软件测试用例主要有测试
输入输出数据和测试的预期结果
两部分组成 -
软件测试计划是一些文档,
它们描述了 对于预定的测试活动将要采取的手段
-
黑盒测试的优点是
能站在用户立场测试
-
白盒测试的优点是 可安软件内部结构测试
在这里插入代码片
-
在白盒测试用例设计中,代码覆盖包括
语句覆盖、分支覆盖、条件覆盖。
-
在进行单元测试时,最常用的方法时
采用白盒测试,辅之以黑盒测试
-
视力、听力、运动、认知障碍
会影响软件的易用性 -
黑盒测试按照测试的对象分为
数据测试和状态测试
-
白盒测试按照测试的对象分为
数据覆盖和代码覆盖
-
软件缺陷对特定的测试技术免疫
是杀虫剂怪事 -
为什么说质量是免费的的?
因为低质量的软件在后期产生的不一致费用会超过提高质量所付出的一致性费用
-
配置测试是指
测试软件在不同的硬件上是否正常工作
-
软件必须兼容以后的版本叫做
向前兼容
-
软件必须兼容以前的版本叫做
向后兼容
-
选择测试用例
是测试员最重要的工作 -
外国语言测试包括
翻译和本地化
两个层次 -
测试软件是否存在安全缺陷属于
失效性测试
-
测试员
有权把软件缺陷置为打开状态 -
程序员
有权把软件缺陷置为解决状态 -
测试员
有权把软件缺陷置为关闭状态 -
精度和准确度
没有直接的关系,可以不一致 -
软件测试计划是一些文档,他们描述了
对于预定的测试活动将要采取的手段
填空题
- 所谓的共享测试,或者缺陷轰炸是指
一段时间内,多个测试员集中测试一个区域或者特性
- 软件生命周期分为三个阶段
软件定义、软件开发、软件维护
三个时期组成 - 软件定义划分为三个阶段
问题定义、可行性研究、需求分析
- 软件设计文档包括:
构架、数据流变化示意图。状态变化示意图。流程图、注释代码
- 软件测试文档包括:
测试计划、测试用例、软件缺陷报告、归纳、统计和总结
- 最常见的程序结构覆盖有:
语句覆盖、分支覆盖、条件覆盖、判断/条件覆盖、路径覆盖
- 软件质量的特性:
功能性、可靠性、易用性、效率、可维护性、可一致性
- 全面质量管理的基本特点是:
全员参加、全过程、全面运用一切有效方法、全面控制质量因素
- 单元测试主要采用
白盒测试
的测试用例 - 单元测试的实施步骤有:
测试计划阶段、测试设计阶段、测试执行阶段
- 单元测试的内容:
模块接口、局部数据结构、路径、错误处理、边界测试
- 配置测试也叫兼容性测试,主要有
一、浏览器兼容 二、操作系统兼容 三、硬件兼容性
- 正式审查的四个基本要素是
确定问题、遵守规则、准备、编写报告
- 正式审查分为
同事审查 走查和检验
- 动态白盒测试依据测试对象分为
数据覆盖和代码覆盖
- 测试计划分为
测试设计说明、测试用例说明、测试过程说明
三个等级 - 测试员最喜欢的开发模式是
螺旋模式
- 优秀用户界面设计测试的7个标准是
符合标准和规范、直观、一致、灵活、舒适、正确、实用
- 确认是
保证软件符合产品说明书的过程
- 验证是
保证软件满足用户需求的过程
- 等价类划分的目的是
减少测试用例的数目、缩减测试工作量
- 对软件进行beta测试的好处是
可以让更多的人来检查软件;是发现配置和兼容性缺陷的好办法
- 除了传统的文档,还可以用
表格、真值表、列表、示意图、任何能有效表示测试用例的方法
表述测试用例? - 特别测试是
没有计划的测试,它很容易,也很有趣,但是没有组织性、无法重复,也无法跟踪,完成后。无法证实曾经执行过
- 审查说明书,试图找到问题的是
静态黑盒
测试 - 编码时坚持遵守标准和规范的原因是
仅仅为了提高可靠性
- 验证是 保证产品满足用户要求的过程
- 集成测试需要考察模块间的接口与各模块之间的联系
- 正式审查分为同事审查、走查、检验三种类型
- 正式审查的四个基本要素是确定问题;遵守规则;准备;编写报告;
- 软件测试最重要,难度最大的工作是 建立测试用例集合
- 白盒测试的代码覆盖中,能力最强的是 条件覆盖
- 白盒测试的最大问题是 很容易形成偏见,看到代码之后说:我知道这些代码是对的,不需要测试。实际上这是被表面蒙蔽了,有可能漏掉了必要的测试用例,一定要小心。
- 测试共享或者缺陷轰炸最大的好处是 有助于克服杀虫剂怪事
- 所谓的共享测试,或者缺陷轰炸是指 一段时间内,多个测试员集中测试一个区域或者特性
- 通过强制软件以某种方式运行来检测缺陷只能是 动态白盒 测试
- 处理传统的文档,还可以用 表格、真值表、列表和示意图、能最有效的给自己、其他测试员和项目小组其他成员表示测试用例的任何形式。
- 划分软件测试属于静态测试还是动态测试的依据是 是否运行软件
- 等价类划分的目的是 把可能的测试用例集合缩减到可控制且仍然足以测试软件的小范围内
- beta测试找出了除了 配置测试、兼容性测试、易用性测试 之外的软件缺陷的能力很差
- 测试计划分为 测试设计说明、测试用例说明、测试过程说明 三个等级
- 特别测试是 没有计划的测试,它很容易,也很有趣,但是没有组织性、无法重复,也无法跟踪,完成后,无法证实曾经执行过。
- 用户界面设计测试的7个标准是符合标准和规范;直观;一致;灵活;舒适;正确;实用
- 列出制定测试计划时经常考虑的常用的测试资源 人员、设备、办公场所和实验室、软件、外包公司、和其他供给。
- 配置测试是指 测试软件在不同的硬件上是否能够正常工作
- 用软件缺陷报告,是软件缺陷获得最大的修复机会的原则是 尽早记录;有效描述软件缺陷;确保其最小化、单一、明显、全面、可以再现;在进行的过程中不掺杂个人看法;在软件缺陷的整个生命周期中跟踪报告
- 划分软件测试属于白盒测试还是黑盒测试的依据是 能否看到软件的内部结构和源代码
- 测试用例说明是 定义测试的实际输入值和预期输入结果,还指明具体的环境要求、程序要求和测试用例之间的依赖性
- 通过强制软件以某种方式运行来测试缺陷只能是 动态白盒测试
- 在软件开发的大爆炸模式下几乎不可能进行测试的原因是 软件是一次交付的,找出产生缺陷的原因非常困难,甚至不可能;软件缺陷很多,会互相掩盖,即使发现并修复了缺陷,可能软件仍然无法正常工作。
- 最适合外包的测试的是 配置测试、兼容性测试、外国语言测试
简答题
- 如果需要测试一个软件,除了要测试它的功能和内部逻辑之外,还有一些所有软件都要测试的内容,请简单介绍。
1、配置测试、
2、兼容性测试、
3、外国语言测试或者本地化测试、
4、易用性测试、
5、文档测试、
6、安全性测试。
- 简述测试一个软件的全过程
一、制定测试计划;
二、建立测试用例集合;
三、做等价划分,缩减测试用例集合;
四、执行测试用例;
五、汇报测试结果。
- 软件测试员的目标是什么?请详细予以解释。其次,为什么正规的软件开发必须要专业的测试员而不能有程序员兼任?
答:软件测试员的工作目标是:尽可能早的找到软件缺陷并确保其得到修复。程序员不能承担测试任务,因为:
1、由于代码本来就是自己写的,测试时容易落入自己的思维定势,不易发现缺陷。
2、测试员和程序员的工作风格以及思维方式截然不同、很难同时适应两者。
3、开发工作和测试工作是同时进行的,不能等到开发工作结束在做测试,而一个人在这两种任务中转来转去会严重影响效率。
4、容易产生道德风险。程序员倾向于掩盖自己的错误而不是揭露它们,从而不利于工作。
- 请简单介绍软件测试的四种基本技术以及它们之间的联系和区别。
静态黑盒测试:检查说明书,看看有没有问题。
动态黑盒测试:运行软件,在给定输入下,看看能否得到正确输出。
静态白盒测试:查看软件的源代码,找出缺陷。
动态白盒测试:查看源代码,据此设计测试用例,执行测试用例。
- 测试团队组织结构有几种,各有哪些特点?
有三种组织模式:
第一种、测试团队向开发经理汇报;
第二种、测试团队向项目经理汇报;
第三种测试团队是独立于项目的,向高级经理汇报。
- 比较功能性测试与结构测试
对功能性测试(黑盒测试)和结构性测试(白盒测试)是完全不同的测试方式。黑盒测试基于外部规格说明,从输入数据与输出数据的对应关系出发设计测试用例。对被测程序的内部情况一无所知,完全不涉及程序的内部结构。而白盒测试只根据程序的内部结构进行测试,而不考虑其外部特性。
- 列取出五类常用的停止测试标准
1、当继续测试没有产生新的实效时;
2、当继续测试没有产生的缺陷时;
3、当无法考虑新的测试用用例时;
4、当回报很小时;
5、当达到要求的覆盖时;
6、当时间不够时;
- 简述边界值分析的基本思想及局限性
边界值测试的基本思想是使用在最小值,略高于最小值、正常值、略低于最大值和最大值处取输入变量值;其局限性在于假设变量是完全独立的;
- 软件缺陷的定义?
1、软件未实现产品说明书要求的功能
2、软件出现了产品说明书指明不应该的错误
3、软件实现了产品未提及的功能
4、软件未实现产品说明书虽未提及但是应该实现的功能
5、软件难以理解。不易使用、运行缓慢-从测试员的角度看-最终用户会认为不好
- 什么是单元测试?
在底层进行的测试叫单元测试,它测试基本模块
- 为什么软件说明书往往是软件制造中缺陷最大的来源
产品说明书常常没有写-说不出来就肯定做不出来
产品说明书虽有,但是不完整,不停更改,或者产品说明书没有和开发小组沟通过,取得大家一致认可
- 软件缺陷的生命周期中基本状态有几个?扩展状态有几个?
基本状态:打开、解决、关闭
扩展状态:审查、推迟
- 如果遇到啥虫剂怪事件,该如何应对?
更换新的测试用例,或者交给别人去测试
- 说出软件缺陷可能不修复的几个原因?
进度中没有安排足够的时间
不是软件缺陷
修复的风险太大不值得修复
缺陷没有正确报告
- 什么是通过性测试?
通过性测试是确认软件至少能做什么,而不会考验其能力,软件测试员不需要想尽办法来使软件奔溃,仅仅运用最简单、最直观的测试用例。
- 测试用例计划的四个理由是什么?
组织性、重复性、跟踪和测试证实
- 设计计算机时间格式,从而带来“千年虫”问题的程序员 有错误吗?
有错误。他应该考虑到两位时间格式显然只能到199年,到2000年,格式就会失效,带来巨大麻烦。
- 什么是测试驱动?
自底而上的递增测试,编写成为测试驱动的模块调用正在被测试的模块,测试驱动以和将来真正模块同样的方式挂接,向被测试模块发送测试用例数据,接收返回结果,验证结果是否正确。
- 为什么不能完全测试一个软件?
除了极短小的程序之外,完全测试需要太多输入、输出和分支组合;此外,软件可能不客观,可以用多种方式解释。
- 有配置缺陷的软件可以发布吗?
可以。因为永远不可能修复所有的软件缺陷,对于配置缺陷,只要在常见的硬件配置上没有问题就可以了,不可能测试所有硬件及其组合。
- 什么是集成测试?
单元经过测试,底层软件缺陷找出来之后并修复之后,集成在一起,对模块的组合进行测试叫做集成测试。
- 正式被锁定并且不能修改的产品说明书有何缺点?
如果软件开发中市场转移到不同方向,或者用户要求修改,就没有调整软件的灵活性。
- 列举自动化测试的一些好处
1、可以加快执行测试用例的速度;
2、提高测试员的工作效率
3、它们精确而且不会懈怠
- 绘制软件状态图的三个要素是?
软件可能处于的每一个状态;
从一个状态转移到另一个状态所需要的输入和条件;
当进入和退出状态是产生的条件,变量和输出;
- 软件测试员的目标是?
尽可能早的发现软件缺陷并确保其得到修复
- 动态黑盒测试的数据测试做等价划分时,那些数据需要特别注意?
1、边界条件和次边界条件
2、默认、空白、空值、零值和无
3、非法、不正确和垃圾数据
综合题
- 请简述测试一个软件的全过程
制定测试计划 | 建立测试用例集合 | 等价划分 | 执行测试 | 报告测试结果
- 测试团队组织结构有哪几种?各有什么特点?
开发经理 | 项目经理 | 高级经理 | 利益相关
- 随机测试分为哪几种?各有什么特点?
笨拙 | 半聪明 | 聪明 | 确认 | 定位 | 记录
真题总结
2009
选择填空题
- 软件测试的本质是 确定测试用例
- 功能性测试的主要方法有 边界值测试、等价类测试和基于决策表的测试
- 结构性测试的主要方法有路径测试、数据流测试
- 对于一个n变量函数,健壮性边界值测试会产生测试用例个数为6n+1
- 与软件质量保证更注重过程相比,软件测试更面向产品
- 等价类测试的关键是选择确定类的等价关系
- 为了使用决策表标识测试用例,我们把条件解释成 输入,把行动解释为输出
- 系统测试中,每个系统 都可以用数据、行动、设备、事件和线索这五种基本概念表示,
- 对于划分来讲,其具有重要保证的两个界定性质分别是完备性和无冗余性
10.使用等价类测试的基础动机是进行完备测试,同时避免冗余
简答题
- 简述进行软件测试的主要原因和测试级别
主要原因:对质量或可接受性作出判断;发现问题;
级别:单元测试、集成测试、系统测试。
- 简述等价类测试的思想及其分类
等价类测试的思想使通过每个等价类中的一个元素标识测试用例
主要有:弱一般等价类测试,强一般等价类测试,弱健壮等价类测试、强健壮等价类测试等
- 简述功能性测试基本观点及优缺点
功能性测试的基本观点是将程序看作是将从输入定义域取值映射到输出值域的函数,从输入数据与输出数据的对应关系出设计测试用例。即不涉及程序内部结构。
功能性测试的优点是:功能性测试与软件如何实现无关,具体实现方法变化不影响测试用例的使用;
测试用例开发可以与软件开发实现并行进行,因此可压缩总的项目开发时间
主要缺点是:测试用例间可能存在严重的冗余;还可能会有未测试的软件漏洞。
2010
选择题
- 自底向上法需要写驱动程序
- 多个相互协作的类树的测试 不属于面向对象单元测试考虑的范围
- 软件测试不需要了解软件设计的条件
填空题
- 白盒测试中,数据流测试是面向程序的变量
- 结构性测试是根据 程序实现 来设计测试用例
- 决策表 适合描述不同条件集合下采取行动的若干组合的情况
- 测试的主要评测方法包括 覆盖 和质量
- 采用功能性测试方法设计测试用例的唯一依据是软件的 规格说明
- 泛化代码有两层架构:单元 和程序组件
- n变量函数 的最坏情况测试会产生 5 的n次方个测试用例
- 使用决策表标识测试用例,则把 条件 解释为输入,行动解释为输出
- 程序图是一种有向图,图中节点标识语句片段,边 表示控制流
- 自底向上进行测试时,需要为所测试模块或子系统编制相应的 驱动模块
简答题
- 缺陷分类的方法有四种
1、以出现相应错误的开发阶段来划分
2、以相应失效产生的后果来划分
3、以解决难度来划分
4、以不解决会产生的风险来划分
- 边界值分析的界限性
1、测试用例不充分
2、不能发现测试变量之间的依赖关系
3、不考虑含义和性质,没有利用理解和想象
4、只能作为初步测试用例使用
- 如何划分等价类测试用例
第一步,等价类划分
第二步,为有效等价类设计测试用例
第三步,为每一个无效等价类设计至少一个测试用例
2012
选择题
- 边界值测试中,测试内部变量的一种更好的选择是 健壮性测试
- 进行软件测试的两个主要原因是对质量或可接受性做出判断和发现问题
- 预期输出有后果 和 实际输出 两种类型
- 弱健壮等价类的健壮是指这种测试考虑了无效性,弱是指有单缺陷假设
- 使用等价类测试的基础动机是进行完备测试,同时避免冗余
- 在循环覆盖测试中,如果循环是嵌套的,则这个过程应从内层的循环开始。
- 瀑布模型的三种主流派生模型,增量开发,进化开发和螺旋模型
- 系统测试是从功能出发,而不是从结构出发
- 边界值测试的基本原理是错误更可能出现在 输入变量 的极值附近
简答题
- 简述边界值分析的基本思想及局限性
边界值测试的基本思想是使用在最小值、略高于最小值、正常值、略低于最大值和最大值处去输入变量值。
其局限性在于假设变量是完全独立的
- 健壮等价类测试与标准等价类测试的主要区别是什么?
标准等价类测试不考虑无效数据值,测试用例使用每个等价类中的一个值而健壮等价类测试考虑了无效等价类
对有效输入来说,测试用例从每个有效等价类中取一个值;
对无效输入来说,一个测试用例有一个无效值,其他值都取有效值。
2014
填空题
- 软件测试方法一般分为两大类,动态测试和静态测试
- 对于多分支的判定,判定覆盖 要使每一个判定表达式获得每一种可能的值来测试
- 判定/条件覆盖 同时满足判定覆盖和条件覆盖
- 测试工具是指计算机辅助测试有关工具
- 单元测试是指对源程序中每一个程序单元进行测试
简答题
- 仅仅测试程序是否按预期方式运行有何 错误?
这最多只能算测试问题的一半,用户不一定遵守规则,软件测试员需要证实不按规定操作的后果
此外,如果测试员没有打破砂锅问到底的态度,就会遗漏某些软件缺陷
- 测试说明的目的是什么?
测试程序说明的目的是明确执行测试用例所需的全部步骤,包括如何设置,启动,执行,和关闭测试案例
她还解释了测试未按照计划进行时应该怎么做
- 假定完全测试某一程序,在决定是否应该停止测试时应该考虑那些问题?
1、仍然会发现大量软件缺陷吗
2、项目小组对已执行的 测试满意吗
3、报告的软件缺陷是否定下来那些修复,那些不修复?
4、产品根据客户要求经过合法性检验了吗?
- 当设法显露竞争条件缺陷时,要对软件进行何种操作?
尝试同时多几种事
她可以是相关的,例如从同一个应用程序同时向两台打印机输出打印,也可以是无关的,所做的目的是迫使软件执行同一功能是出现于自己竞争的状况
- 除了更正式除外,检验与其他审查类型有什么重大区别?
主要区别是检验是,在场的不是代码的原创者
这迫使另外一个完全理解要检验的软件,这比其他人只是审查软件,寻找软件缺陷更加有效。
- 什么是灰盒子测试?
灰盒子测试是偶尔看一眼源代码,利用该信息协助测试
它不同于通常查看简单的脚本代码,或者C++等复杂的编译语言。检查细致程度也不同于白盒子测试。
- 写出进行网站配置和兼容性测试需要考虑的地方
硬件平台、操作系统、web浏览器、浏览器插件、浏览器选项和设置
视频分辨率和位深、文字 大小和调制调节器速度
- 工具和自动化之间有什么差别?
测试工具有助于测试,简化手工完成的 测试任务
自动化也是一种工具,但是他的执行不需要人干预
- 为软件制作Beta测试程序有哪些主要问题?
有更多人来关注软件
是发现配置和兼容性问题的好方法
- 为什么创建计划的过程是关键,而不是计划本身?
y因为测试计划中定义的所有问题和其他项目功能小组或者小组成员相互之间存在影响,让所有人了解和接收计划的内容是关键所在
私自建立书面文档并束之高阁不仅浪费时间 ,而且对项目形成危害
- 写出在测试计划时应该考虑的一些常用测试资源
人员、设备、办公场所和其他供给
软件、公开代码公司以及其他供给
- 测试设计说明的目的是什么?
测试设计说明的 目的是组织和描述针对某特性要实施的测试,他列举了要测试的特性和要用的方法
它明确了测试案例 ,但是不致命测试案例具体是什么,通过/失败的原则是什么
2015
填空题
- 对比离散数学和图论,更适合用于功能性测试的是离散数学
- 在面向对象的集成测试中,如果采用以类为单元的方法,一旦完成单元测试,必须执行两个步骤,1、如果使用了被扁平化的类,则必须恢复最初的类层次结构;2、如果增加了测试方法 ,则必须删除
简答题
- 简书MM-路径及其特点
MM-路径是穿插出现模块执行路径和消息的序列,其基本思想是,可以描述包含在单独单元之间控制转移的模块执行路径序列。
MM-路径是功能性测试和结构性测试的一种混合,功能和结构方法的交叉被结合到基于路径集成测试的构造中,因此可以避免结构性测试的缺点,同时交叉使集成测试与系统测试无缝连接。
- 测试用例个数
边界值分析 4n+1;
最坏情况测试 5的n次方
健壮最坏情况测试 7的n次方