简析ISTQB考试大纲之一
1. 软件测试基础(K2)(155分钟)
1.1 为什么需要软件测试?(K2)
1.1.1 通过具体的例子,描述软件中的缺陷会以什么样的方式损害个人、损害环境或者损害公司利益(K2)
具体的软件测试的例子:迪士尼的狮子王游戏,windows平台不适用,导致小孩的哭闹,圣诞节被投诉。
千年虫,没考虑到几百年后的使用,由于一直没有更新,所以导致在2000年的时候所有软件出现问题,导致纠纷和事故。
1.1.2 区分引起缺陷的根本原因及其影响(K2)
缺陷产生的主要原因是产品说明书和软件设计,估计根本原因是:人们本身容易犯错误。
产生的影响就是:个人或公司的利益损失,给生活带来不便,甚至造成人员伤亡。
1.1.3 通过举例的方式说明为什么需要测试(K2)
为了降低缺陷产生的影响,例如如果狮子王在发布之前就进行过平台的测试,那么就不会出现圣诞节被投诉的情况了,等等。如果软件在发布之前,软件的缺陷得到有效的控制或者减少,就会大大提高人们对软件的认可。
1.1.4 描述为什么测试是质量保证的一部分,通过举例说明测试是如何提高软件质量的(K2)
质量保证是通过预防,检查和改进来保证软件质量的。
SQA从流程方面来保证质量,测试从技术方面来保证质量。
在网站上看到一个比较全面的解释,目前还没有完全理解到:
[质量保证(QA)的工作是通过预防、检查和改进来保证软件质量。QA采取的方法主要是按照“全面质量管理”和“过程管理并改进”的原来展开工作。在质量保证的工作中会掺入一些测试活动,但它所关注的是软件质量的检查和测量。因此,其主要工作是着眼于软件开发活动中的过程、步骤和产物,并不是对软件进行剖析,找出问题和评估。
测试虽然也与开发过程紧密相关,但它所关心的不是过程的活动,相对的是关心结果。测试人员要对过程中的产物(开发文档和源代码)进行静态审核,运行软件,找出问题,报告质量甚至评估,而不是为了验证软件的正确性。当然,测试的目的是为了去证明软件有错,否则就违背了测试人员的本职了。因此,测试虽然对提高软件质量起了关键的作用,但它只是软件质量保证中的一个重要环节。
很少有人从非技术角度去分析这两者的区别,但我总结后认为,从公司业务出发,QA的工作是相对前置的,并可能含有某种公关性质的;而软件测试相对后置,是内部层面的工作。这也同样验证了两者的本质区别,即:“ 软件测试和软件质量保证是软件质量工程的两个不同层面的工作。软件测试只是软件质量保证工作的一个重要环节。“]
1.1.5 通过举例来理解和比较术语错误、缺陷、故障、失效的概念以及相应的定义(K2)
软件失效的机理可以描述为:软件错误--->软件缺陷--->软件故障--->软件失效
错误:在软件生存期内的不希望或不可接受的人为错误,会导致软件缺陷的产生,相对与软件,是一种外部行为。例如:注释语句忘记加注释符。
缺陷:存在与软件中的那些不希望或不可接受的偏差,使软件在某一特定条件下出现软件故障,例如:多一个语句,多一个符号。
故障:软件运行过程中出现的一种不希望或不可接受的内部状态,无适当措施及时处理,会产生软件失效,软件故障是一种动态行为。例如:执行一个多余的循环过程。
失效:软件鱼腥是产生的一种不希望货不可接受的外部行为结果。例如:爱国者导弹防御系统的导弹跟踪失效。
1.2 什么是测试(K2)
1.2.1 认识测试的总体目标(K1)
测试的总体目标是:尽可能早的找出软件缺陷,并确保其得以修复。
1.2.2 举例说明软件生命周期中不同阶段的测试目标(K2)
这个可以参考W模型,把测试融合到软件开发的每一个阶段,比较全面和比较受欢迎的模型。
软件的生命周期分为:用户需求、需求分析与系统设计、概要设计、详细设计、编码、集成、实施、交付
软件测试各个阶段的测试目标是:
用户需求:用户需求的验证和确认,验收测试的设计
需求分析与系统设计:需求分析与系统设计的验证和确认,系统测试的设计
概要设计:概要设计的验证和确认,集成测试的设计
详细设计:详细设计的验证和确认,单元测试的设计
编码:进行单元测试
集成:集成测试
实施:确认测试和系统测试
交付:验收测试
1.2.3 区分测试与调试的不同(K2)
测试的目的是找出存在的错误,调试是定位错误并修改程序以修改错误。
测试从一个已知的条件开始,使用预先定义的过程,调试从一个未知的条件开始,结束的过程不可以预计。
测试过程可以实现设计,进度可以实现确定;调试不能描述过程或者持续时间。
测试一般都不是开发人员,调试一般都是开发人员。
测试贯穿于整个软件的生命周期,调试一般只发生在编码阶段。
1.3 软件测试的基本原则(K2)
1.3.1 说明测试的七个基本原则(K2)
软件测试的七个基本原则:
1. Zero bug和Good Enough[权衡投入与产出进行足够好的测试]
2. 不要试图穷举测试[用最少的测试用例达到最大的覆盖率就足够了]
3. 开发人员不能既是运动员又是裁判员[让别人来检查自己的工作会发现更多的错误]
4. 软件测试要尽早执行[越早执行测试,修复缺陷的费用越少]
5. 软件测试应该追溯需求[可以发现由错误说明带来的缺陷,这种缺陷是不容易发现的]
6. 缺陷的二八定理[80%的软件缺陷集中在20%的模块中]
7. 缺陷具有免疫力[测试人员要根据新版本的特点去修改和维护测试用例]
1.4 基本的测试过程(K1)
1.4.1 认识从计划开始到结束过程的五个基本测试活动和各自的任务(K1)
软件测试五个基本活动为:
1. 测试计划和控制:识别测试任务和测试范围,确认测试方法和技术,确定测试级别和测试准则,确定测试工作量和测试风险,确定测试资源,确定测试工作产品和输出,监控和记录测试进度、测试覆盖率和出口准则评估,测量和分析测试结果,缺陷跟踪和回归测试计划,跟踪和监控工作两分布和风险状态,更新测试计划。
2. 测试分析和设计:评审测试一句,比如需求和设计文档,分析和确定测试优先级,识别测试条件,测试需求,测试数据,设计概要测试用例并确定优先级,规划测试环境搭建,计划测试基础设施和工具。
3. 测试实现和执行:详细测试用例的开发、实现和维护,创建测试数据、准备测试工具和开发测试脚本,搭建测试环境,执行测试用例、记录测试结果、提交缺陷报告,缺陷验证测试和回归测试。
4. 评估准则和报告:根据测试准则检查测试日志,根据检查结果判断是否需要更多的测试、或者需要修改测试准则,为利益干系人提供测试报告。
5. 测试结束活动:检查测试工作产品是否正常提交,提交的缺陷是否关闭,提交的变更记录是否关闭,测试件、测试环境和测试基础设别的滚当和移交,分析和总结经验教训、输出测试总结报告。
1.5 测试的心理学(K2)
1.5.1 认识影响测试成功与否的心理因素(K1)
影响测试成功与否的心理因素:
清晰的测试目标觉得那个了测试人员效率,
人们往往会忽视自己的错误,
认识到就事论事的交流方式以及反馈与问题相关信息的重要性。
1.5.2 对比测试人员和开发人员的思维方式的差异(K2)
开发是建设性活动,测试是破坏性活动,所以开发人员拥有建设性思维,测试人员拥有破坏性思维。

浙公网安备 33010602011771号