第一次准备自考,把复习的重心都放在了往年真题上,将能找到的往年真题都总结好,以总结的真题为重心开始复习。 而官方指定的课本看了一遍就束之高阁了。
经过第一次考试才发现,考试的重心全部在官方指定的课本上,而与往年真题重复的知识点并没有多少。
所以,有准备郑州大学软件工程专业自考的同学,在备考的时候一定要以官方指定课本为重心,因为近几年自考的考题不再对外公布,所以能看到的真题都是早些年的,参考价值不高,题型也有变化,因此,真题仅供参考。
软件测试的目的是 发现软件缺陷
软件测试中白盒测试是通过分析程序的 内部结构
来设计测试用例的
黑盒法是根据 输入输出数据
来设计测试用例的
软件测试用例主要有测试 输入输出数据和测试的预期结果
两部分组成
软件测试计划是一些文档,它们描述了 对于预定的测试活动将要采取的手段
黑盒测试的优点是 能站在用户立场测试
白盒测试的优点是 可安软件内部结构测试在这里插入代码片
在白盒测试用例设计中,代码覆盖包括 语句覆盖、分支覆盖、条件覆盖。
在进行单元测试时,最常用的方法时 采用白盒测试,辅之以黑盒测试
视力、听力、运动、认知障碍
会影响软件的易用性
黑盒测试按照测试的对象分为 数据测试和状态测试
白盒测试按照测试的对象分为 数据覆盖和代码覆盖
软件缺陷对特定的测试技术免疫
是杀虫剂怪事
为什么说质量是免费的的? 因为低质量的软件在后期产生的不一致费用会超过提高质量所付出的一致性费用
配置测试是指 测试软件在不同的硬件上是否正常工作
软件必须兼容以后的版本叫做 向前兼容
软件必须兼容以前的版本叫做 向后兼容
选择测试用例
是测试员最重要的工作
外国语言测试包括 翻译和本地化
两个层次
测试软件是否存在安全缺陷属于 失效性测试
测试员
有权把软件缺陷置为打开状态
程序员
有权把软件缺陷置为解决状态
测试员
有权把软件缺陷置为关闭状态
精度和准确度
没有直接的关系,可以不一致
软件测试计划是一些文档,他们描述了 对于预定的测试活动将要采取的手段
一段时间内,多个测试员集中测试一个区域或者特性
软件定义、软件开发、软件维护
三个时期组成问题定义、可行性研究、需求分析
构架、数据流变化示意图。状态变化示意图。流程图、注释代码
测试计划、测试用例、软件缺陷报告、归纳、统计和总结
语句覆盖、分支覆盖、条件覆盖、判断/条件覆盖、路径覆盖
功能性、可靠性、易用性、效率、可维护性、可一致性
全员参加、全过程、全面运用一切有效方法、全面控制质量因素
白盒测试
的测试用例测试计划阶段、测试设计阶段、测试执行阶段
模块接口、局部数据结构、路径、错误处理、边界测试
一、浏览器兼容 二、操作系统兼容 三、硬件兼容性
确定问题、遵守规则、准备、编写报告
同事审查 走查和检验
数据覆盖和代码覆盖
测试设计说明、测试用例说明、测试过程说明
三个等级螺旋模式
符合标准和规范、直观、一致、灵活、舒适、正确、实用
保证软件符合产品说明书的过程
保证软件满足用户需求的过程
减少测试用例的数目、缩减测试工作量
可以让更多的人来检查软件;是发现配置和兼容性缺陷的好办法
表格、真值表、列表、示意图、任何能有效表示测试用例的方法
表述测试用例?没有计划的测试,它很容易,也很有趣,但是没有组织性、无法重复,也无法跟踪,完成后。无法证实曾经执行过
静态黑盒
测试仅仅为了提高可靠性
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、非法、不正确和垃圾数据
制定测试计划 | 建立测试用例集合 | 等价划分 | 执行测试 | 报告测试结果
开发经理 | 项目经理 | 高级经理 | 利益相关
笨拙 | 半聪明 | 聪明 | 确认 | 定位 | 记录
主要原因:对质量或可接受性作出判断;发现问题;
级别:单元测试、集成测试、系统测试。
等价类测试的思想使通过每个等价类中的一个元素标识测试用例
主要有:弱一般等价类测试,强一般等价类测试,弱健壮等价类测试、强健壮等价类测试等
功能性测试的基本观点是将程序看作是将从输入定义域取值映射到输出值域的函数,从输入数据与输出数据的对应关系出设计测试用例。即不涉及程序内部结构。
功能性测试的优点是:功能性测试与软件如何实现无关,具体实现方法变化不影响测试用例的使用;
测试用例开发可以与软件开发实现并行进行,因此可压缩总的项目开发时间
主要缺点是:测试用例间可能存在严重的冗余;还可能会有未测试的软件漏洞。
1、以出现相应错误的开发阶段来划分
2、以相应失效产生的后果来划分
3、以解决难度来划分
4、以不解决会产生的风险来划分
1、测试用例不充分
2、不能发现测试变量之间的依赖关系
3、不考虑含义和性质,没有利用理解和想象
4、只能作为初步测试用例使用
第一步,等价类划分
第二步,为有效等价类设计测试用例
第三步,为每一个无效等价类设计至少一个测试用例
边界值测试的基本思想是使用在最小值、略高于最小值、正常值、略低于最大值和最大值处去输入变量值。
其局限性在于假设变量是完全独立的
标准等价类测试不考虑无效数据值,测试用例使用每个等价类中的一个值而健壮等价类测试考虑了无效等价类
对有效输入来说,测试用例从每个有效等价类中取一个值;
对无效输入来说,一个测试用例有一个无效值,其他值都取有效值。
这最多只能算测试问题的一半,用户不一定遵守规则,软件测试员需要证实不按规定操作的后果
此外,如果测试员没有打破砂锅问到底的态度,就会遗漏某些软件缺陷
测试程序说明的目的是明确执行测试用例所需的全部步骤,包括如何设置,启动,执行,和关闭测试案例
她还解释了测试未按照计划进行时应该怎么做
1、仍然会发现大量软件缺陷吗
2、项目小组对已执行的 测试满意吗
3、报告的软件缺陷是否定下来那些修复,那些不修复?
4、产品根据客户要求经过合法性检验了吗?
尝试同时多几种事
她可以是相关的,例如从同一个应用程序同时向两台打印机输出打印,也可以是无关的,所做的目的是迫使软件执行同一功能是出现于自己竞争的状况
主要区别是检验是,在场的不是代码的原创者
这迫使另外一个完全理解要检验的软件,这比其他人只是审查软件,寻找软件缺陷更加有效。
灰盒子测试是偶尔看一眼源代码,利用该信息协助测试
它不同于通常查看简单的脚本代码,或者C++等复杂的编译语言。检查细致程度也不同于白盒子测试。
硬件平台、操作系统、web浏览器、浏览器插件、浏览器选项和设置
视频分辨率和位深、文字 大小和调制调节器速度
测试工具有助于测试,简化手工完成的 测试任务
自动化也是一种工具,但是他的执行不需要人干预
有更多人来关注软件
是发现配置和兼容性问题的好方法
y因为测试计划中定义的所有问题和其他项目功能小组或者小组成员相互之间存在影响,让所有人了解和接收计划的内容是关键所在
私自建立书面文档并束之高阁不仅浪费时间 ,而且对项目形成危害
人员、设备、办公场所和其他供给
软件、公开代码公司以及其他供给
测试设计说明的 目的是组织和描述针对某特性要实施的测试,他列举了要测试的特性和要用的方法
它明确了测试案例 ,但是不致命测试案例具体是什么,通过/失败的原则是什么
MM-路径是穿插出现模块执行路径和消息的序列,其基本思想是,可以描述包含在单独单元之间控制转移的模块执行路径序列。
MM-路径是功能性测试和结构性测试的一种混合,功能和结构方法的交叉被结合到基于路径集成测试的构造中,因此可以避免结构性测试的缺点,同时交叉使集成测试与系统测试无缝连接。
边界值分析 4n+1;
最坏情况测试 5的n次方
健壮最坏情况测试 7的n次方