鱼鳞病

首页 » 常识 » 预防 » 软件测试经典面试题
TUhjnbcbe - 2021/3/16 19:37:00

软件测试经典面试题

1、什么是兼容性测试?兼容性测试侧重哪些方面?

兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。

兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。

兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。

2、我现在有个程序,发现在Windows上运行得很慢,那么怎么辨别是程序存在的问题还是软硬件系统存在的问题?

检查系统是否有中*的特征。

检查软件/硬件的配置是否符合软件的推荐标准。

确认当前的系统是否是独立,即没有对外提供什么消耗CPU资源的服务。

如果是C/S或者B/S结构的软件,需要检查是不是因为与服务器的连接有问题,或者访问有问题造成的。

在系统没有任何负载的情况下,查看性能监视器,确认应用程序对CPU/内存的访问情况。

3、测试的策略有哪些?

黑盒/白盒,静态/动态,手工/自动,冒烟测试,回归测试,公测(Beta测试)

4、描述测试用例设计的完整过程?

需求分析+需求变更的维护工作。

根据需求得出测试需求。

设计测试方案,评审测试方案;方案评审通过后,设计测试用例,再对测试用例进行评审。

5、Alpha测试与Beta测试有什么区别?

Alphatesting(α测试),是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试。

Betatesting(β测试),测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试,开发者通常不在测试现场。

6、测试活动中,如果发现需求文档不完善或者不准确,怎么处理?

应该立即和相关人员进行协调交流。

7、你认为做好测试计划工作的关键是什么?

软件测试计划就是在软件测试工作正式实施之前明确测试的对象,并且通过对资源、时间、风险、测试范围和预算等方面的综合分析和规划,保证有效的实施软件测试。

做好测试计划工作的关键:目的,管理,规范

8、一套完整的测试应该由哪些阶段组成?

测试计划、测试设计与开发、测试实施、测试评审与测试结论

9、简述集成测试与系统测试关系?

集成测试的主要依据概要设计说明书,系统测试的主要依据是需求设计说明书。

集成测试是系统模块的测试,系统测试是对整个系统的测试,包括相关的软硬件平台、网络以及相关外设的测试。

10、功能测试用例需要详细到什么程度才是合格的?

这个问题也是测试工程师经常问的问题。

有人主张测试用例详细到每个步骤执行什么都要写出来,目的是即使一个不了解系统的新手都可以按照测试用例来执行工作,主张这类写法的人还可以举出例子:欧美、日本等软件外包文档都是这样做的。

另外一种观点就是主张写的粗些,类似于编写测试大纲。主张这种观点的人是因为软件开发需求管理不规范,变动十分频繁,因而不能按照欧美的高标准来编写测试用例。这样的测试用例容易维护,可以让测试执行人员有更大的发挥空间。

实际上,软件测试用例的详细程度首先要以覆盖到测试点为基本要求。举个例子:“用户登陆系统”的测试用例可以不写出具体的执行数据,但是至少要写出几种以上,如果只用一句话覆盖了这个功能是不合格的测试用例。覆盖功能点不是指列出功能点,而是要写出功能点的各个方面(如果组合情况较多时可以采用等价划分)。

另一个影响测试用例的就是组织的开发能力和测试对象特点。如果开发力量比较落后,编写较详细的测试用例是不现实的,因为根本没有那么大的资源投入,当然这种情况很随着团队的发展而逐渐有所改善。测试对象特点重点是指测试对象在进度、成本等方面的要求,如果进度较紧张的情况下,是根本没有时间写出高质量的测试用例的,甚至有些时候测试工作只是一种辅助工作,因而不编写测试用例。

因此,测试用例的编写要根据测试对象特点、团队的执行能力等各个方面综合起来决定编写策略。最后要注意的是测试人员一定不能抱怨,力争在不断提高测试用例编写水平的同时,不断地提高自身能力。

11、发现的缺陷越多,说明软件缺陷越多吗?

这是一个比较常见的现象。测试工程师在没有找到缺陷前会绞尽脑汁的思考,但是找到一个后,会接二连三的发现很多缺陷,颇有个人成就感。

其中的原因主要如下:

代码复用、拷贝代码导致程序员容易犯相同的错误。类的继承导致所有的子类会包含基类的错误,反复拷贝同一代码意味着可能也复制了缺陷。

程序员比较劳累是可以导致某些连续编写的功能缺陷较多。程序员加班是一种司空见惯的现象,因此体力不支时容易编写一些缺陷较多的程序。而这些连续潜伏缺陷恰恰是测试工程师大显身手的地方。

“缺陷一个连着一个”不是一个客观规律,只是一个常见的现象。如果软件编写的比较好,这种现象就不常见了。测试人员只要严肃认真的测试程序就可以了。

12、写出Bug报告流转的步骤,每步的责任人及主要完成的工作。

测试人员提交新的Bug入库,错误状态为New。

高级测试员/测试经理验证错误,如果确认是错误,分配给开发组。设置状态为Open。如果不是错误,则拒绝,设置为Declined状态。

开发经理分配Bug至对应的模块开发人员。

开发人员查询状态为Open的Bug,如果不是错误,则置状态为Declined;如果是Bug则修复并置状态为Fixed;不能解决的Bug,要留下文字说明及保持Bug为Open状态。

对于不能解决和延期解决的Bug,不能由开发人员自己决定,一般要通过某种会议(评审会)通过才能认可。测试人员查询状态为Fixed的Bug,然后验证Bug是否已解决,如解决,置Bug的状态为Closed,如没有解决,置Bug状态为Reopen。

13、写出Bug报告当中一些必备的内容。

版本,提交缺陷报告时通过该字段标识此缺陷存在于被测试软件的哪个版本

Bug报告优先级

Bug状态

Bug编号

发现人

提交人

指定处理人

概述

详细描述

严重程度

所属模块

附件

提交日期

14、画出软件测试的V模型图。

15、为什么要在一个团队中开展软件测试工作?

因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

16、您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系?

测试类型有:功能测试,性能测试,界面测试。

功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误猜错、因果图、流程分析等。

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。

区别在于,功能测试

1
查看完整版本: 软件测试经典面试题