在我们进行测试过程中,测试设计是一个比较重要的环节,它直接影响到测试的效率和效果。我们通常寄予了厚望,都是主观的认为只要掌握了测试设计方法就可以拥有完美的测试效果,测试质量也能相应的得到提升了,那是小概率事件。
测试设计涉及制定测试策略、选择测试用例、定义测试数据等,其质量,效率,有效性,准确性会受到不同程度的影响。
很多时候我们试图去提升一个点,若紧紧盯着这个点去做是不够的,我们需要从系统的角度,拉通上下游,整体去分析,除了测试技术本身以外,下面三种情况也会影响到测试设计的效果。
与需求相关的各种问题,如烂需求,伪需求和不清晰的需求。
开发的功能无法有效验证,可测试性不强。
过于死板的测试设计策略。
这就需要测试者能够有效澄清和确认需求,有针对性地提出可测试性需求,并针对不同的项目选择合适的测试设计方法。
影响测试设计效果的因素有如下几种
需求规格说明
明确、完整的需求文档是设计测试的基础。如果需求模糊不清或不完整,将难以设计出有效的测试用例,对于需求模糊不清应作有效澄清和确认需求。
开发人员按照自己的理解实现了产品,测试人员按照自己的理解设计了测试用例,直到后期测试验证的时候,存在差异才被发现,然后开发人员和测试人员又去澄清和争论这些问题,去鉴定测试人员发现的问题究竟是需求问题还是缺陷,造成项目的时间成本和人力成本的浪费。
资源可用性
包括人力资源(如测试人员的数量和技能)、硬件资源(如测试环境、设备)和软件资源(如自动化工具)。资源的限制可能会影响测试的全面性和自动化程度。
技术复杂性
软件的技术架构、使用的编程语言和技术栈的复杂性都会影响测试设计。例如,对于分布式系统或实时系统,需要特别考虑并发和时间敏感性测试。
测试类型和形式
多样性:根据测试目的和被测试者的特点,选择适当的测试类型(如选择题、主观题、实际操作、面试等)和形式。
适用性:每种测试类型都有其适用场景和优势,应确保所选类型能够准确评估被测对象的能力。
有针对性的可测试性需求
可测性就是可以很方便地确认系统中某个功能是否满足预期的能力,有针对性的可测性设计,可以有效帮助开发,测试人员快速确认结果,提高测试设计的效率因此如何识别就变得非常重要。
可测性的需求层次面可以包含,用户层面的,测试层面的,维护支持层面的。
从业务流程交互的角度来分析可测性需求,从异常状态的角度来分析可测性需求,从测试用例的预期结果来分析可测性需求,可测性需求最后大多会以日志,调试或者告警等方式来实现,对可靠性进行整体设计尤为重要,这可以避免可测性信息出现重复,描述不清晰等问题,还需要注意它在存储,备份,容量,对系统性能和稳定性的影响等方面的问题。
业务逻辑复杂性
业务流程的复杂度和数据流的多样性会增加测试的难度。复杂的业务逻辑可能需要更精细的测试用例来覆盖各种场景。
测试工具和技术
适用性:选用适合的测试工具和技术(如在线测试系统、评分软件、实验设备等),以满足测试需求。
高效性:工具和技术应能够提高测试效率和准确性,减少人为错误和主观判断的影响。
可测性需求分析的时机
可测性需求虽然可以给开发人员和测试人员带来方便,但可测性需求也会增加产品的经济和时间成本,所以识别出来的所有可测性需求都需要由需求工程师进行汇总,按照优先级进行排序。
前期需求阶段,主要从用户层面来提出可测性需求,开发设计阶段主要从测试验证角度来提出可测性需求。