软件测试常见面试题及答案1
软件测试方法分类
1)白盒、黑盒、灰盒
2)单元测试、集成测试、系统测试、验收测试、回归测试、Alpha 测试、Beta 测试
3)静态测试和动态测试
设计测试用例的主要方法
1)等价类划分
2)边界值分析法
3)因果图法
4)场景法
2.系统测试是什么?需要考虑哪些方面?
1)系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,
进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,
发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案.。
2)它的的任务是尽可能彻底地检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统"做得怎样?"。
这阶段又可分为三个步骤:模块测试,测试每个模块的程序是否有错误;组装测试,测试模块之间的接口是否正确;
确认测试,测试整个软件系统是否满足用户功能和性能的要求。该阶段结束应交付测试报告,说明测试数据的选择,
测试用例以及测试结果是否符合预期结果。
3)测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,
应覆盖系统所有联合的部件。
4)系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,
找出与需求规格不相符合或与之矛盾的地方。
系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、
某些支持软件及其接口等。因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试
3.怎样才能成为一个合格的软件测试工程师?
1)计算机专业技能
2)测试专业技能
3)软件编程技能
4)网络、操作系统、数据库、中间件等知识
5)较强的责任心,对待测试工作要有不厌其烦的态度,与需求人员、研发人员多交流多沟通
4.一名军官要求24名士兵站成6排,每排都是5人,士兵们全犯傻了。最后一名士兵终于想出了一个好办法。
他是怎样安排的?
只要排成一个六边形即可
01.为什么要在一个团队中开展软件测试工作?
保证软件质量的最后一道关口。
02.您是否了解以往所工作的企业的软件测试过程?如果了解,请试述在这个过程中都有哪些工作要做?
分别由哪些不同的角色来完成这些工作?
测试计划->测试设计(测试用例,测试数据)->测试执行(单元测试,集成测试,系统测试,回归测试)
03. 您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(
如功能测试、性能测试……)
易用性测试-界面的友好性,操作方便性等。
功能测试-系统中功能性需求的满足
安全性测试-系统是否存在安全隐患和漏洞
性能测试-系统在大并发下的响应速度和健壮性
04.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
黑盒/白盒:主要区别在是否了解系统或程序的内部结构和代码
单元测试:关注某一个单元,函数,模块的正确性,一般需要编写相关测试代码。
集成测试:模块或模块直接的集成接口测试,单个模块测试
系统测试:一个完整功能的完全测试。
05.测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
提前安排出测试工具选择,测试类型选择,人员需求,保证和项目开发协调一致,保证测试工作顺利进行。
06.您认为做好测试计划工作的关键是什么?
了解项目或系统的业务需求
和项目经理协调好,了解项目的进度计划安排情况
07.您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
边界值/等价类/业务流程图分析和状态转换分析/业务逻辑分析
08.您认为做好测试用例设计工作的关键是什么?
对业务和软件需求非常清楚,可以根据需求不同选择不同的测试用例设计
09.您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。
评审计划->预审->评审;
评审内容主要是测试用例对软件需求的覆盖程度,对于相关边界是否考虑,是否针对复杂流程准备多套测试数据,
是否有专门针对非功能性需求的测试。
10.您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描述您以往的性能测试工作的完整过程。
制订计划->选择测试功能->选择测试工具->录制脚本->运行测试->分析结果