不管从事什么行业的软件测试,测试用例一定是开展测试工作最重要、最核心的测试资产,而测试方案,是测试用例的来源。
一份好的测试方案,经过对产品设计、研发软件实现技术方案的分析,可以设计出不多不少刚刚好的用例,去覆盖验证被测对象80%以上的代码;
一份好的测试用例,可以指导任何一个测试执行人员按照用例描述高效开展执行,并得到正确的期望检测目的。
前者依赖测试设计,后者依赖用例编写规范。
测试设计的开展,需要明确被测对象。对于不同行业、不同产品,不同公司规模、以及公司对质量的不同要求,被测对象的颗粒度可大可小。但若要在效能和质量间找到平衡,以当前公司可承载的产品最小颗粒度的独立交付需求,作为被测对象展开测试设计,是一种行业通识的较优解决方案。
产品最小颗粒度的独立交付需求如何理解呢?举个最简单的例子:一瓶矿泉水作为交付给市场的产品,对于研发而言,它的产品模块可以拆解为:矿泉水瓶、矿泉水;矿泉水瓶可以拆解最小颗粒度的独立交付需求:瓶盖、瓶身、产品信息包装贴膜;矿泉水当然也可以继续往下拆解,依赖专业知识,也依赖矿泉水研发部门的更精细化设计。
被测对象拆解越细致,测试深度越深,测试人力投入越多。但这并不意味着最终结果会更好。拆解被测对象,我们需要考虑投入产出比,以及可测性是否可以满足。
当明确被测对象-颗粒度刚刚好的需求后,在进行测试设计之前,不管是研发还是测试角色,都需要对该需求的产品规格文档进行详细分析,确保最终交付的需求与最初产品定义的需求是保持一致的,不会出现设计为A,最终需求实现为B。
分析产品规格文档,需要明确该需求要解决的问题是什么(价值),通过什么样的功能来解决该问题,该功能如何生效,是否有便于用户使用的界面UI;友商竞品是否有相似功能,产品竞争力是否可以达到;该需求最终要达到什么样的目标(质量目标、用户渗透率).....
通过对产品文档的分析,研发和测试可以精准地把控需求要做什么,对齐目标。
参与产品文档的分析过程,也是测试前移,对产品文档的测试过程。在该过程中,测试可以基于对角色对业务的理解、站在用户的角度,对产品设计提出设计遗漏、设计不合理的问题,促进产品前期设计的合理性。
当上(产品)、中(研发)、下(测试)游对产品规格文档有了一致的理解后,研发将开始对该需求的实现进行软件设计。软件设计通常需要考虑该需求正常、异常时处理逻辑;某些产品需要考虑是否对硬件有依赖,如有依赖,软硬件如何协作;实现该需求是否需要引进具有复杂处理逻辑的独立算法等等。
研发设计时,若将概要技术方案设计(软件整体框架设计,即零层设计和一层设计)和详细技术方案设计(细节的模块设计、代码级设计,即二层设计)分阶段完成,并与产品、测试进行反串讲,会使整体需求交付更高质高效地完成。
对于测试方案设计而言,除了需要分析产品规格说明书,对研发的技术方案设计也需要进行分析,分析有如下一些要点:
1. 通过对软件实现方案进行分析,可以了解到整体软件逻辑、处理流程、数据流如何运作,知道不同逻辑分支的判断规则,分析软件异常时的处理逻辑;
2. 若需求涉及硬件芯片,需要分析软硬件如何融合,其技术方案及风险是什么
3. 部分行业/产品还需要对行业标准、法律法规等进行分析,确认软件代码是否满足标准规范要求等。
通过对产品规格说明书和研发的技术方案设计进行分析,测试就可以详细地了解被测对象是什么,以及怎么实现的。基于这些信息,通过建立一定的模型来进行测试设计,设计出该需求的单一功能检测用例、该需求与其他独立需求的交互叠加功能检测用例,需求的性能、功耗、稳定性、兼容性、安全性等质量维度的用例。
测试设计有很多行业共识的方法论,如等价类划分法、边界值法、场景法、流程图法、判定表、因果图、正交法、错误推断法等等,在设计不同维度用例时可以基于业务实现自行挑选。
测试设计,为了能够在正式验收时,实现分层递进验收,在人力紧张时快速做更精准的测试策略,需要提前做分层设计。单一功能、功能叠加、质量维度是最顶层的分级。在单一功能中,也需要考虑单个逻辑分析的测试、逻辑分支相互作用的测试、异常逻辑的测试等不同测试目的的分层。也可以考虑上层界面UI检查,与代码实现功能检查、算法逻辑正确性的检查分层。
好的分层设计,可以使最终设计的用例更好地评估覆盖度;便于在不同阶段不同质量状态下快速基于分层调整测试策略,减少无效人力投入。
除了做好测试分析得到细分测试对下行,做好测试设计得到单用例的测试目的/测试用例标题以外,在测试设计时,同时需要考虑设计出来的用例能否正常开展执行(可测性),需要在什么环境下开展执行(标准化测试环境设计),能否实现自动化(提升执行效能),用例判定标准等
该阶段仅得到一条条的用例标题/测试点,具体用例还需要展开设计执行时所需的前置条件、操作步骤,明确的预期结果等。
更多IT类相关推荐:
文章来源:网络 版权归原作者所有
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理