软件测试架构师笔记
1.测试的核心是测试策略,测试策略就是"测什么"和"怎么测",包含测试的对象和范围,测试目标,测试重点和难点,测试深度和广度,如何安排测试顺序,如何评价测试效果.
2.软件产品质量模型是测试的基础,测试类型和测试方法都在此基础上衍生.
3.测试应该基于质量目标,基于风险,围绕研发流程,通过分层来进行"刚刚好"的测试.
4.目前处于测试三段:对产品需求和实现有较为深入的,设计用例时会注意用例的有效性,测试用例时会考虑使用自动化测试等方法提升测试执行效率.
5.目标:深入理解产品需求和实现,理解质量和隐形需求,对产品性能、可靠性、易用性等非功能属性的测试均有所涉及,并掌握其中的测试方法,会使用测试分析技术,会评估产品质量.走向前端,做缺陷预防,能将测试方法标准化,并固化为测试工具和流程.
6.对产品测试来说,无论是传统的集成产品开发还是迭代,敏捷,测试活动都可以概括为需求分析、测试分析和设计、测试执行和测试质量评估.
7.产品测试不应该是产品研发末端的活动,而应该是"端到端"的,在产品研发的开始阶段,测试就需要投入.和"好的产品是设计出来的"一样,测试的意义不仅在于发现bug、帮开发确认需求、及产品的非功能属性,还在于缺陷预防、提升产品质量.
8.在需求分析中要做到:理解产品商业目标、梳理用户的使用场景、输出总体测试策略
在测试分析和设计中要做到:制定和落实阶段测试策略,保证测试设计质量
在测试执行中要做到:制定版本测试策略、跟踪测试执行、版本质量评估和建立版本质量档案
9.测试重点由产品价值、质量目标、产品实现(新写代码、开源or继承)和历史测试情况等多项因素综合决定.
测试难点是从测试技术的角度来说的是对产品测试验证难易程度的分析.
测试深度是从测试方法(单运行测试、多运行测试、边界值或错误输入等)来对测试进行描述.
测试广度是从覆盖的角度来对产品测试进行描述.
当我们对每个特性确定了测试重点和难点、深度和广度后测试的总体思路随之明确,后面的自动化策略、探索测试策略、测试分析和设计的策略也明确了.
10.测试分层帮我们将一个大的测试目标分解为若干小的测试目标.这样可以逐层测试、逐层评估,并根据结果不断修正测试策略,能够让测试目标和测试过程可控.
11.软件测试架构师具备的能力:测试技术(产品质量模型、测试类型、测试方法、测试设计、探索式测试、自动化测试)+产品知识+沟通协调+书面表达
12.软件产品质量模型六属性:功能、可靠、易用、效率、维护、移植
测试类型:功能、性能、安全、可靠、兼容、易用
测试方法:测试设计(把测试点加工为测试用例过程)中使用的方法,等价类、边界值、判定表、正交分析、路径分析、错误推断(经验).
13.沟通时学会换位思考.测试团队内部要螺旋渐进的沟通最终统一认识和行动.
14.风险分析:需求阶段未提供全面的需求文档导致测试设计场景缺失、设计阶段未及时更新设计文档导致测试设计遗漏或不明确、测试阶段用例有缺陷无法按计划执行、回归阶段缺陷迟迟未修改.
15.单元测试:从产品实现的函数单元角度验证函数单元是否正确.
集成测试:从产品模块和功能角度验证功能模块和模块之间的接口是否正确.
系统测试:从系统角度验证功能是否正确,非功能属性是否满足用户需求.
验收测试:从用户角度确认产品能否满足用户业务需求.