软件测试之黑盒测试:打着手电寻找bug
功能测试,简单的理解就是黑盒测试,就是检测黑盒子,找到里面存在的缺陷。
功能测试新人学习计划:
1. 对于产品的学习---站在客户的角度学习产品、看待问题
测试人员不是简单地按照开发人员的设计文档去撰写测试相关文档,对于设计文档的准确性同样负有责任。测试人员需要认真学习需求说明书,审核设计文档。同时,要站在客户的角度去理解功能设计是否合理。
2. 熟悉各种测试文档:对比自己的测试角度与思维,一边提高自己对功能测试的认识,也一边提升自己的测试能力。
3. 了解功能测试的流程:瀑布模型与敏捷开发模式的区别,每个公司每个项目之间也同样存在区别。
4. 对产品整个安装包各层软件的了解:必不可缺的基本技能
5. 学习自动化测试工具:对于功能测试而言,自动化测试是提高工作效率、保证测试质量及减少累积的 回归测试工作量的重要保证。所以,自动化测试是功能测试人员的另一基本技能。随着对功能测试越来越重视,自动化测试已经成为业界的一个重要考量指标。
那么,如何学习自动化测试呢?
首先,要理解功能测试用例自动化所依附的自动化开发框架,二是要学会自动化功能测试用例的自动化工具,三是要依据一定的规范开发功能测试用例的自动化脚本。
在功能测试中,最终结果固然很重要,中间的过程也不容忽视,否则会对整个应用带来潜在的或重或轻的问题。
在黑盒测试中,对测试人员的基本要求是他要知道软件的外在行为,但是不必清楚软件内部是如何运作的,也就是不用弄清楚盒子里的东西。
对应的白盒测试,测试人员知道内部逻辑,知道该测什么,怎么测,想要什么结果,一切尽在掌握。
测试策略通常是描述测试工程的总体方法和目标,用于规定测试的范围、种类、每个测试活动盖如何制订计划,以及具体测试活动该如何进行等。
1. 测试策略的目的?
测试策略从测试目标、计划、实施、分析全方位给测试人员以方向性指导,保证项目的进度,质量符合市场和客户对产品/服务的要求。
2. 功能测试策略的目的?
给功能测试人员提供一套策略作为方向指导。
3. 功能测试策略包括哪些?
功能测试的范围:需求/设计中的用例,测试场景
功能测试与其他测试种类的边界及前后承接的条件:避免测试漏洞,避免资源浪费。
功能测试中不同的测试用例的定义与选取:可接受性测试用例、回归测试用例的选取最基本的回归测试用例主要用来验证在系统经过一个小的改动后其某一部分功能没有问题,属于回归测试的一个子集。
针对于某个产品或某个版本的某个模块或者具体功能解决方案的功能测试策略描述
对于功能测试中涉及的诸如访问控制、异常条件、全球化等的策略
功能测试中的自动化测试相关的策略:提供了测试用例自动化开发的相关信息
对于功能测试在不同的环境下进行的策略描述,比如移植环境下的功能测试,客户化环境下的功能测试等:为提高测试效率而在不同环境下按比例分拆功能测试用例的比例。
对于所测试的软件的支撑环境的选择和测试用例的比例分配:合理有效的选择,考虑到测试成本和测试效率及风险,在不同软件平台分拆功能测试用例
对于软件产品的不同版本的测试:企业版,专业版,个人版,旗舰版....
功能测试的流程主要用来规范功能测是是如何进行的,它的进入、退出的标准是什么等等。
功能测试的流程:功能测试流程的输入元素准备--功能测试流程的输出元素确认--功能测试计划书的准备--功能测试用例的设计--功能测试计划书的审阅和批准--功能测试的执行--功能测试状态的报告
1. 输入元素:需求说明书、设计文档、代码、产品和构建版本、产品的文档等
2. 输出元素:计划书、场景、用例、总结、执行记录、缺陷记录及分析报告、产品等
3. 测试计划书:描述和规定以下内容:
不同功能测试阶段的测试目标
达成测试目标的整体策略
鉴别依赖关系和风险
明确资源的可用性
建立计划、执行和报告的过程和约定
里程碑及阶段性的进入和退出标准
4. 测试用例:具体功能测试最细化的信息。
5. 审阅和批准:得到批准的测试计划书是功能测试进行的唯一指导。
审阅流程:计划-准备-审阅-修改-追踪-批准
6. 测试执行:验证产品的所用功能特征都符合产品设计说明书的要求。
原则上,任何问题都要在产品发布之前被解决掉,除非产品发布管理团队批准某一缺陷可以不在当前版本解决。
7. 测试状态报告:基于客观的事实,对重要的里程碑、产品的质量等做好评估。
能够很好地理解别人写的文档,是对功能测试人员最基本的要求。能够写出好的文档,是资深功能测试人员,特别是测试组长及测试架构师的基本素质。最基本的文档包括如何写功能测试计划书、功能测试场景、功能测试用例等。
测试计划书涵盖了整个产品的功能测试范围及各种相关条件。
好的测试设计需要对测试的产品和目标用户的商业需求有深入的理解,同时要对产品的功能非常熟悉。好的测试场景和测试用例的设计对于测试的质量和测试执行的效率是非常有好处的。一个好的测试用例将清楚地描述什么会被测试,将产生什么样的测试结果,以及为什么产生这样的结果。
8. 测试用例包含哪几个方面?
用例编号, 测试标题,前置条件,重要/优先级别, 测试数据输入, 操作步骤,预期结果
功能测试最重要的是理解业务需求,熟悉产品,熟悉具体的功能模块,功能特征的设计文档,熟悉功能测试场景和用例。
一个好的测试人员需要掌握的知识点:文档的理解,对产品框架和数据结构的了解,产品环境的理解,测试工具的理解和掌握,对问题的分析能力
功能测试中对黑盒子分块主要考虑的因素?
产品或者应用的自然的模块划分
产品或者应用中功能的相似性:把相似的功能分到一个小盒子中
功能测试团队的资源(主要是人员)状况:实际项目中要考虑资源情况,对黑盒子进行粒度合适的功能模块分解。
在每一个迭代过程,要确保该迭代过程交付的功能点都被功能测试覆盖到,同时确保随着迭代过程的深入,所有的功能点都能够被有效地通过回归测试所覆盖,保证小盒子的交付质量。
如何确定开发跨模块/解决方案的功能测试场景?
1. 对商业逻辑的梳理,明确可能的实际商业场景,通过对实际商业场景的理解,开发出跨不同模块/解决方案的端到端的功能测试场景。
2. 基于模块之间的消息的传递,进行技术层面的验证,确保技术上的正确性,基于不同产品之间的集成,做产品集成的跨产品的集成测试。
跨模块/解决方案功能测试的测试场景是什么?
通过一个模块或者解决方案的不同的输出以及这些输出是怎么做为其他模块或者解决方案的输入,而定义的能够体现这种整合或者合并的功能测试场景。
跨模块/解决方案功能测试的目的是什么?
确保基于实际的商业流程,以及数据流程的测试完备性。
什么是回归测试?
在软件开发的整个生命周期中,每个阶段都有可能对软件进行修改或更新,而当软件发生变化后,都有可能对软件的现有功能造成影响,因此,必须重新测试软件的现有功能。这一重新测试的过程,就是回归测试。
为什么要做回归测试?
软件新版本进行周期性发布时,为确保软件功能的正确性和一致性,回归测试进行得更加频繁,有效地降低项目的风险,提高软件的质量。