行业内,有个测试方法叫「错误推测法」

本文介绍了一种基于经验和直觉的测试方法——错误推测法,它可以帮助测试工程师在有限时间内快速发现软件中的潜在问题,适用于新功能的异常场景、分页功能、更新操作的限制条件等,有效提升测试效率。

1. 前置:

早些年,在老徐入行的时候,经常看到同行提到此方法 。反而,现在提这块的,少了 。 那时,比较好奇是:“有经验的老鸟,是如何使用此方法的 ?”

如今,自己已经是行业内的老鸟一枚,通过此文,分享一些错误推测法的具体企业落地(我们到底是如何把错误推测法,应用到日常的测试工作中的 ?)

2. 概念普及:

错误推测法是指「在测试程序时,可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例」的方法。

这种方法没有固定的形式,也不限于用什么方法设计用例;依靠的是经验和直觉 。其实,工作中,多数测试工程师,都会不知不觉的使用到。

3. 错误推测法,有啥用 ?

1)在测试时间不够的情况下(测试时间不够的情况下,如何做 ?有考虑写篇文章),能快速发现80%的问题,确保尽可能少的已知问题流到线上 。

2)提前发现问题,测试前置 。

3)节省时间,尽可能少的用例,发现更多的问题 。

4)如果想推行研发自测,或者引入其他部门的协助测试;利用好错误推测法,可减少一些推行阻力 。

4. 举几个例子 :

比如,

1)新开发的功能,与其相关的业务,或者数据,容易出现问题 。

2)分页功能,页码搜索 。

3)新功能的,异常场景 。

4)测试update功能时,insert的相关限制条件,是否生效 ?

5)列表功能,为空时,是否报错 ?

6)文本框,“空格 / 特殊字符”的处理 。

7)... 等等等 ...(省略10000字 ...)

补充,

其实如上这些内容,就是所谓的「测试点」

关于APP测试 & WEB测试(公号「简尚」,回复关键词,下载),之前有汇总过完整的测试点,可以自行查阅参考 。

最后,留个问题:

你是怎么使用「错误推测法」的 ?

延伸 ,

1)经验这东西,需要一定的时间积累 。错误推测法 ,只能是作为用例设计的补充,存在一定的主观性 ,而且无法确保100%覆盖,容易漏 ,有利有弊,合理利用 。

2)用例评审时,为何很多同学,能一眼就看出你的用例欠缺点 ? 其实,就是用到了「错误推测法」。


End 。

这篇文章,写于深夜,希望对你有点用 。

作者:IDO老徐

2019/06/10

原创文章,禁止任何形式的转载 。转发到朋友圈 & 群,欢迎 。

### 使用错误推测补充和完善测试用例的最佳实践 错误推测是一种基于经验和直觉的测试方法,通过预测可能存在的错误并设计针对性的测试用例来发现潜在问题。这种方特别适合于那些无完全依赖其他系统化方(如等价类划分或边界值分析)的情况。以下是关于如何使用错误推测补充和完善测试用例的一些最佳实践: #### 1. **识别常见错误模式** 错误推测的核心在于对可能出现的问题进行合理的假设和猜测。通常可以从以往的经验出发,总结出某些特定领域内的典型错误类型[^3]。例如,在数据库应用程序中常见的问题是未正确处理空值、超出字段长度限制的数据输入以及并发访问冲突等情况。 #### 2. **结合历史缺陷数据分析** 历史上的Bug报告是一个非常有价值的资源库,可以帮助我们更好地理解和预防未来可能发生的问题点。通过对过往项目的缺陷统计结果进行深入挖掘,能够找出容易出现问题的功能模块或者是代码片段,并据此制定更加全面细致的测试计划[^1]。 #### 3. **考虑特殊场景下的行为表现** 当前很软件都需要支持复杂的交互流程或者应对极端条件下仍能正常运行的要求。此时就需要额外关注一些特殊的执行环境,比如网络连接中断后再恢复时的状态保持机制是否健全;文件上传下载过程中突然断电后的数据一致性保护措施等等[^2]。 #### 4. **鼓励团队协作与头脑风暴活动** 不同背景知识结构的人看待同一个事物往往会得出截然不同的见解。因此定期组织跨部门间的讨论会很有必要——让开发工程师参与进来分享他们认为最容易犯错的地方;邀请产品经理讲述用户反馈最的意见建议;甚至还可以邀请外部专家给予指导点评。这种方视角融合的过程有助于激发更创新思维火花,进而产生更为完善的测试方案[^3]。 #### 5. **持续学习新技术趋势动态** 随着信息技术日新月异的发展速度加快,新兴技术和架构不断涌现出来改变传统IT行业的面貌格局。作为一名优秀的QA工程师不仅要知道怎么去做传统的功能性和性能方面的检测工作之外还需要紧跟时代步伐去探索研究最新流行起来的各种框架工具背后隐藏的风险隐患所在之处以便提前做好防范准备措施防止因为不了解而导致的重大事故再次上演历史上曾经发生过的惨痛教训面前吸取深刻教诲铭记心中时刻警惕勿忘初心砥砺前行共创美好明天[^4]. ```python def generate_error_guess_test_cases(known_bugs, special_scenarios, team_input): """ Generates additional test cases by applying the Error Guessing method. Parameters: known_bugs (list): List containing previously encountered bugs. special_scenarios (dict): Dictionary mapping unique situations to their expected behaviors. team_input (set): Set of ideas contributed during collaborative brainstorm sessions. Returns: list: A collection of newly formulated test case suggestions derived from error guessing principles. """ new_tests = [] # Incorporate insights gained from analyzing past issues for bug in known_bugs: suggestion = adapt_previous_issue_into_new_test(bug) if validate_suggestion(suggestion): new_tests.append(suggestion) # Account for unusual operational contexts for scenario, behavior in special_scenarios.items(): proposal = create_scenario_based_test(scenario,behavior) if check_proposal_validity(proposal): new_tests.extend([proposal]) # Leverage collective wisdom gathered throughout group discussions for idea in team_input: concept = transform_idea_into_practical_usecase(idea) if assess_concept_quality(concept): new_tests += [concept] return deduplicate_and_optimize(new_tests) def adapt_previous_issue_into_new_test(old_problem): """Converts an old problem into a potential new testing opportunity.""" pass def validate_suggestion(candidate): """Ensures candidate meets minimal criteria before inclusion.""" pass def create_scenario_based_test(context,outcome): """Crafts specialized tests tailored around particular circumstances.""" pass def check_proposal_validity(draft): """Confirms draft aligns well within overall strategy framework.""" pass def transform_idea_into_practical_usecase(raw_thought): """Refines raw thoughts provided by colleagues into actionable items.""" pass def assess_concept_quality(hypothesis): """Evaluates quality level achieved by proposed hypothesis against standards set forth earlier.""" pass def deduplicate_and_optimize(full_list): """Removes duplicates while optimizing final output format accordingly.""" pass ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IDO老徐

转发 + 讨论 > 赞赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值