测试开发工程师面经总结
1.你是怎么写测试用例的?
A.黑盒测试
1)等价类划分法:输入的数据划分为有效等价类和无效等价类
2)边界值划分法:边界值划分法使被测程序在边界值及其附近运行,从而更有效地暴露程序中潜藏的错误。不仅根据输入条件,它还根据输出情况设计测试。(如果输入条件规定了取值范围分别对最大、最小个数及稍小于最小、稍大于最大个数作为测试用例)
3)错误推测法:猜测被测程序在哪些地方容易出错,针对可能的薄弱环节来设计测试用例。
4)因果图法:检查输入条件的各种组合情况,从功能说明中找出因(输入条件)和果(输 出或程序状态的修改, 通过因果图功能说明转换成一张判定表,然后为判定表的每一例设计测试用例。
B.白盒测试
1)语句覆盖法:使得程序中的每一个语句至少被遍历一次。
2)判定覆盖(分支):使得程序中每一个分支至少被遍历一次。
3)条件覆盖:使得每个判定的条件获取各种可能的结果。
4)判定/条件覆盖:使得判定中的条件取得各种可能的值,并使得每个判定取得各种可能的结果。
5)条件组合覆盖:使得每个判定条件的各种可能组合都至少出现一次。
6)路径覆盖:覆盖程序中所有可能的路径。(满足判定覆盖)
2.测试的相关流程是什么?
1)需求:阅读需求,理解需求,与客户、开发、架构多方交流,深入了解需求。–testing team
2) 测试计划: 根据需求估算测试所需资源(人力、设备等)、所需时间、功能点划分、如何合理分配安排资源等。–testing leader or testing manager 。
3)用例设计:根据测试计划、任务分配、功能点划分,设计合理的测试用例。—testing leader, senior tester
4)执行测试:根据测试用例的详细步骤,执行测试用例。–every tester(主要是初级测试人员)
5)执行结果记录和bug记录:对每个case记录测试的结果,有bug的在测试管理工具中编写bug记录。–every tester(主要是初级测试人员)
6)defect tracking:追踪leader分配给你追踪的bug.直到 bug fixed。–every tester。
7)测试报告:通过不断测试、追踪,直到被测软件达到测试需求要求,并没有重大bug. 。
8)用户体验、软件发布等
3.设计一个微信朋友圈点赞的测试用例
1)是否可以正常点赞和取消;
2)点赞的人是否在可见分组里;
3)点赞状态是否能即时更新显示;
4)点赞状态,共同好友是否可见;
5)不同手机,系统显示界面如何;
6)性能检测,网速快慢对其影响;
7)点赞显示的是否正确,一行几个;
8)点赞是否按时间进行排序,头像对应的是否正确;
9)是否能在消息列表中显示点赞人的昵称、备注;
10)可扩展性测试,点赞后是否能发表评
11)是否在未登录时可查看被点赞的信息。
4.分别介绍单元测试、集成测试、验收测试(确认测试)、系统测试、回归测试等等。
A.单元测试
目的:通过模块测试,使其代码达到模块设计的要求。
任务:
1)对模块代码进行编译,发现其语法错误;
2)确定模块的测试策略(通常采用白盒测试法),并据此设计一组测试用例;
3)用选定的测试用例对模块进行测试,直至满足测试终止标准为止;
4)编制单元测试评估报告。
B.集成测试
目的:将经过单元测试的模块逐步组装成具有良好一致性的完整的程序
任务:
1)制订集成测试实施策略
2)确定集成测试的实施步骤,设计测试用例
3)逐一地添加模块,进行测试
C.确认测试
目的:确认组装好的程序是否满足软件需求(SRS)
任务:
1)有效性测试(黑盒测试)
2)配置复审(confinguration review)
3)验收测试—针对专用应用软件
4)alpha与beta测试—针对通用产品软件
alpha与beta测试:Alpha 测试(α测试)是由公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Beta测试(β测试)是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。
两者区别:
Alpha测试由开发人员或测试人员在场,可随时记录下错误和使用中出现的问题;
Beta测试开发人员和测试人员都不在场。
D.系统测试
目的:软件安装到系统中以后,能否与系统的其余部分协调运行,还包括功能实现等。
任务:
1)测试是否与硬件协调运行
2)测试是否和原来就有的其它软件协调运行
3)测试是否完成系统需求对它的要求
系统测试技术
1)安全和存取控制测试
2)故障及恢复测试
3)性能测试
4)强度测试(Stress Testing )