软件测试面试题大全
问题一:为什么要在一个团队中开展软件测试工作
任何软件在开发过程中都会留下缺陷,带有缺陷的软件产品如果提交出去,可能会给公司带来不可估量的损失,我们必须在客户之前发现尽可能多的问题,从而保障客户满意。而发现问题的这个过程称之为测试。
问题二:简述你在以前的工作中做过哪些事情,比较熟悉什么。 此问题每个人都不一样。我自己的答案如下。
我主要的工作是系统测试和自动化测试,也曾少量涉及性能测试。在系统测试中,主要是对BOSS系统的业务逻辑功能,以及软交换系统的Class 5特性进行测试。性能测试中,主要是进行的压力测试,在各个不同数量请求的情况下,获取系统响应时间以及系统资源消耗情况。自动化测试主要是通过自己写脚本
问题三:你所了解的的软件测试类型都有哪些,简单介绍一下。
1. 基本功能验证。主要是对发布的版本进行一些最主要功能的测试。英文常见叫法是Smoking Test, Basic Verification Test或者Sanity Check。 2. 功能测试。主要是依据需求或者需求分析文档,对所发布的版本进行测试,看看是否满足需求,是否出现了不必要的功能。
3. 单元测试。是开发人员进行的测试之一,一般是开发人员对很小的模块,比如函数进行测试,一般来说,开发人员还需要开发相应的测试桩来进行此类测试。
4. 集成测试。在大型的开发过程中,软件是模块化进行开发的,将不同的模块揉合在一起的话,需要进行的测试就是集成测试。
5. 系统测试。当软件提交给测试组后,是对整个系统的所有功能进行测试,一般来说,功能测试是系统测试的一个部分。
6. 压力测试。主要是在很大性能的情况下,这个性能已经接近了系统的极限,看看系统运转的情况。
7. 负载测试。主要是用各种不同的性能去检测系统,采集各个数据在这些性能情况下的数据。
8. 黑盒测试。指系统对你来说是完全不透明的,只给你留下了输入和最终输出,这个是功能测试的方法之一。
9. 灰盒测试。指在了解部分系统内部工作机制的情况下,对于系统进行的覆盖性测试。
10. 白盒测试。主要是在单元测试和集成测试的情况下,开发人员已知代码,对这一段的代码进行全路径的覆盖测试。
11. 界面测试。主要是看用户界面的友好性和易用性,是否有文字或者排版错误,是否有输入限制等等。
12. 回归测试。一般是系统发现BUG,开发人员修改后,和BUG直接相关以及可能相关的功能进行的测试。 13. 安装和卸载的测试。
14. 恢复测试。主要是一个系统在发生了灾难的情况下,从错误中是否容易恢复。
15. 兼容性测试。一个系统在不同的语言,操作系统下的系统测试。 16. 安全测试。系统在遇到攻击或者类似情况下的表现。
17. Alpha测试。系统在给最终用户前,测试人员在实验室中模拟最终用户的测试。
18. Beta测试。由部分最终用户通过使用来进行的测试。
19. 比较测试。和其他具有相同或者类似功能的系统进行对比的测试。 20. 验收测试。一般是最终用户在接受产品前,依据自己所提出的要求进行的测试,很多情况下,验收测试可能委托第三方机构完成。
问题四:测试计划工作的目的是什么测试计划文档的内容应该包括什么其中哪些是最重要的
软件测试计划是指导测试过程的纲领性文件。
包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。
问题五:你认为做好测试计划工作的关键是什么 1. 明确测试的目标,增强测试计划的实用性
编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确
2. 坚持“5W”规则,明确内容与过程
“5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。 3. 采用评审和更新机制,保证测试计划满足实际需求
测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。 4. 分别创建测试计划与测试详细规格、测试用例
应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术
问题六:常见的测试用例设计方法都有哪些请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 1. 等价类划分
划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
2. 边界值分析法
边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
3. 错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.
错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例. 4. 因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况. 5. 正交表分析法
有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。 6. 场景分析方法
指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。
问题七:您认为做好测试用例设计工作的关键是什么