6年经验总结:入职阿里,软件测试常见基础题绝不能忘【附答案】

1438 篇文章 112 订阅
1388 篇文章 66 订阅

什么是软件测试?

正向思维:验证程序是否正常运行,以及是否达到了用户预期的需求。

逆向思维:通过执行测试用例发现程序的错误和缺陷。

关键字:正常运行、用户需求、发现错误。

软件测试的目的是什么?

找出软件中潜在的错误和缺陷,通过修复错误和缺陷提高软件的质量,回避软件发布后因缺陷或错误带来的商业风险。

关键字:发现错误、提高质量、避免风险。

黑盒、白盒的区别

黑盒测试(数据驱动测试、功能测试):不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。

白盒测试(逻辑驱动测试、结构测试):已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。

什么是灰度测试?

概念:灰度发布的过程是一个渐进的过程,其实这才是一种正确、规范、安全的发布过程。

影响:灰度发布可以在原有的Alpha版本之后增加了更大范围的外部测试,是一个不断的放量过程,通过这样的发布过程可以使产品的问题暴露出来,而不会影响到全部的用户,最终可以让产品最大程度稳定适合用户。

负载测试、压力测试、性能测试、容量测试的区别

性能测试:获得系统在某种特定条件下的性能指标数据。

负载测试:通过加压,观察系统的响应时间、吞吐量等,直到系统的极限性能指标。

压力测试:通过增加负载,查看系统在峰值使用情况下的操作行为,容错、可恢复能力,发现隐患。

容量测试:系统承受大量数据,测试系统是否能够正常处理,通常和数据库有关。

什么是回归测试?

抽象说法:在程序有修改的情况下,保证原有功能正常。

具体说法:测试时发现bug -》开发修改 -》打了新包 -》重新测试,保证程序在修正了bug之后正常运行,且不会带来新的错误。

什么是冒烟测试?

新版本验证测试,主要确认新的版本是否存在致命性bug,新功能正常运行,不影响下一轮测试。

系统测试的16个测试策略

功能测试、安全测试、容量测试、性能测试、压力测试、稳定性测试、可用性测试、健壮性测试、GUI测试、安装测试、配置测试、异常测试、备份测试、文档测试、在线帮助测试、网络测试。

测试流程(各有千秋)

1、测试人员参与需求评审、交互评审、视觉评审;理解需求,进行需求分析。

2、测试负责人编写测试计划,分配测试任务,评估测试周期。

3、测试人员整理交互or需求疑难点,确认异常场景or特殊情况下的交互细节,最好是能划出新功能的数据流图&流程图。

4、测试人员编写测试点,转化测试用例,评审测试点or测试用例。

5、开发送测(提测)前,开发自行走查,产品视觉验收,若有必要,测试可介入冒烟测试。

6、送测(提测)阶段,缺陷管理,发现bug,提交bug。

7、博主这边是分A1,A2,A3...阶段,一般A1新功能测试用例&主流程回归,A2验证bug&交叉测试&拓展测试,A3验证bug&拓展测试。

8、预发(灰发)环境验证。

9、线上环境验证。

10、版本复盘。

黑盒测试相关

黑盒测试主要是为了发现以下几类错误:

1、是否有不正确或遗漏的功能?

2、在接口上,输入是否能正确的接受?能否输出正确的结果?

3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求?

5、是否有初始化或终止性错误?

黑盒测试优点

1、比较简单,不需要了解程序内部的代码及实现,因为与内部实现无关;

2、从用户角度出发,能很容易地知道用户会用到哪些功能,会遇到哪些问题;

3、基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;

4、在做软件自动化测试时较为方便。

黑盒测试缺点

1、不可能覆盖所有的代码,覆盖率较低;

2、部分路径不能测试到,不能测试程序中隐藏的错误;

3、自动化测试的复用性较低。

黑盒测试方法

等价类、边界值、因果图、判定表、状态迁移、正交实验、场景法、错误推断。

自动化测试相关

自动化测试的优点

1、回归测试更方便,由于回归测试的额动作和用例是完全设计好,测试结果也是可以预料的,将回归测试自动运行,可以提高测试效率,缩短回归测试时间;

2、运行更多更繁琐的测试;

3、可以执行一些手工测试困难的测试,可以通过自动化测试模拟同时有大量用户的测试;

4、测试具有一致性和可重复性,每次测试的结果和执行的内容的一致性可以得到保障,达到测试的可重复的效果;

5、测试的复用性,实现在不同的测试过程中使用相同的用例;

6、测试的执行可靠性,按脚本执行,后续定位复现有明确的路径可循;

7、资源利用率高,人力成本低;

8、基本的、逻辑性不强的操作,性能测试、压力测试、回归测试,自动化测试很大优势。

自动化测试的缺点

1、手工测试比自动测试发现的缺陷更多;

2、对测试的依赖性大;

3、只适合回归测试;

4、手工测试编写时间少于测试脚本编写时间;

5、手工测试可以靠人的想象力去测试, 而工具是死的;

6、自动化测试可能会制约软件开发,脚本维护会受到限制,从而制约软件的开发。

总结:自动化测试是对手工测试的一种补充,自动化测试不可能完全替代手工测试,因为很多数据的正确性、界面是否美观、业务逻辑的满足程度等都离不开测试人员的人工判断。

APP常见测试点

1、安装、卸载 apk上安装与卸载,在工具上可以安装卸载;

2、兼容性测试:系统版本、安卓版本、尺寸;

3、异常测试:断网、断电、服务器异常情况下,客户端是否正常处理;

4、在线升级测试:在线升级,升级后可以正常使用;

5、易用性测试:操作简单,符合用户使用习惯;

6、交互性测试:来电、来短信、低电量测试、拔充电线会不会影响app;

7、功能测试:检验功能是否符合需求,涉及到UI层、接口、数据、服务端、代码逻辑等;

8、稳定性测试:通过Monkey命令行工具,对正在开发的应用程序进行压测,向系统发送伪随机的用户事件流(按键输入、触屏输入、手势输入)进行压测;

9、安全测试:是否容易被外界破解,是否存在被恶意代码注入的风险;

10、性能测试:应用测试、ROM测试、客户端运行时设备的CPU、GPU、流量、耗电量,响应时间;

11、自动化测试:robotium、Appium;

12、外网场景测试:不同网络场景,wifi、3g、4g、电信、移动、联通、弱网场景,通过fiddler;

13、中断测试(电话接入、来短信、电量不足提示等外部事件)。

app测试和web测试的区别

 

冒烟测试和回归测试的区别

冒烟测试:新版本验证测试,主要确认新的版本是否存在致命性bug,功能可以正常运行,不会影响下一轮测试,不要求覆盖面有多广,但是要保证被测对象的主功能点得到测试,还要保证所有被修改过以及修改相关的功能都是可用的,若都通过则可以进行系统测试。

回归测试:是软件维护阶段对软件修改后进行的测试,指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

静态测试和动态测试的区别

静态测试:不运行被测程序本身,通过评审文档和阅读代码等方式测试软件。

动态测试:通过运行被测程序,检查运行结果与预期结果的差异,通常使用白盒和黑盒测试从不同的角度设计测试用例来查找代码中的错误。

关键字:

  • 不运行、文档、代码

  • 运行、结果差异、黑盒白盒

α、β、λ测试的区别

α测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试,目的是评价软件产品的FURPS(即功能、可使用性、可靠性、性能和支持)。

β测试:是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成(文档、客户培训、产品支持、可支持性)。

λ测试:是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。

负载测试、压力测试和性能测试的区别

性能测试:为了获得系统在某种特定的条件下(包括特定的负载条件下)的性能指标数据。

负载测试:模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(逐渐增加模拟用户的数量)或其他加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存),以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现 了一种方法或一种技术。

压力测试:在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。

什么是需求文档测试?

测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现。

关键字:测试需求、逻辑矛盾、技术实现。

什么是设计文档测试?

测试设计是否符合全部需求以及设计是否合理。

关键字:测试设计、符合需求、是否合理。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

可以在下方我的公众号免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、什么是兼容性测试?兼容性测试侧重哪些方面? 5 2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问还是软硬件系统存在问? 5 3、测试的策略有哪些? 5 4、正交表测试用例设计方法的特点是什么? 5 5、描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程? 5 6、你觉得bugzilla在使用的过程中,有什么问? 5 7、描述测试用例设计的完整过程? 6 8、单元测试的策略有哪些? 6 9、LoadRunner分哪三部分? 6 10、LoadRunner进行测试的流程? 6 什么是并发?在lordrunner中,如何进行并发的测试?集合点失败了会怎么样? 6 12、使用QTP功能测试,录制脚本的时候,要验证多个用户的登录情况/查询情况,如何操作? 6 13、QTP中的Action有什么作用?有几种? 6 14、TestDirector有些什么功能,如何对软件测试过程进行管理? 7 15、你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)? 7 16、条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录? 8 17、Beta测试与Alpha测试有什么区别? 8 18、软件的评审一般由哪些人参加?其目的是什么? 8 19、测试活动中,如果发现需求文档不完善或者不准确,怎么处理? 8 20、阶段评审与项目评审有什么区别? 8 21、阐述工作版本的定义? 8 22、什么是桩模块?什么是驱动模块? 8 23、什么是扇入?什么是扇出? 8 24、你认为好测试计划工作的关键是什么? 8 25、你认为好测试用例工作的关键是什么? 9 26、简述一下缺陷的生命周期? 9 27、软件的安全性应从哪几个方面去测试? 9 28、软件配置管理工作开展的情况和认识? 9 29、你觉得软件测试通过的标准应该是什么样的? 10 30、引入测试管理的含义? 10 31、一套完整的测试应该由哪些阶段组成? 10 32、单元测试的主要内容? 10 33、集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容? 10 34、简述集成测试与系统测试关系? 10 35、软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。那么软件系统的用户文档包括哪些? 10 36、软件系统中除用户文档之外,文档测试还应该关注哪些文档? 10 37、简述软件系统中用户文档的测试要点? 11 38、单元测试主要内容是什么? 11 39、如何理解强度测试? 13 40、如何理解压力、负载、性能测试测试? 13 41、什么是系统瓶颈? 13 42、文档测试主要包含什么内容? 13 43、功能测试用例需要详细到什么程度才是合格的? 14 44、配置和兼容性测试的区别是什么? 14 45、软件文档测试主要包含什么? 15 46、没有产品说明书和需求文档地情况下能够进行黑盒测试吗? 15 47、测试中的“杀虫剂怪事”是指什么? 15 48、在配置测试中,如何判断发现的缺陷是普通问还是特定的配置问? 15 49、为什么尽量不要让时间有富裕的员工去一些测试? 16 50、完全测试程序是可能的吗? 16 51、软件测试的风险主要体现在哪里? 16 52、发现的缺陷越多,说明软件缺陷越多吗? 16 53、所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗? 17 54、软件测试人员就是QA吗? 17 55、如何减少测试人员跳槽带来的损失? 17 56、测试产品与测试项目的区别是什么? 17 57、和用户共同测试(UAT测试)的注意点有哪些? 18 58、如何编写提交给用户的测试报告? 18 59、测试工具在测试工作中是什么地位? 18 60、什么是软件测试软件测试的目的? 18 61、简述负载测试与压力测试的区别。 19 62、写出bug报告流转的步骤,每步的责任人及主要完成的工作。 19 63、写出bug报告当中一些必备的内容。 19 64、开发人员老是犯一些低级错误怎么解决? 20 65、画出软件测试的V模型图。 20 66、为什么要在一个团队中开展软件测试工作? 20 67、您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作? 20 68、您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……) 20 69、您认为好测试用例设计工作的关键是什么? 21 70、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。 21 71、测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的? 22 72、您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 22 73、请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。 23 74、您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描述您以往的性能测试工作的完整过程。 23 75、你对测试最大的兴趣在哪里?为什么? 23 76、你以前工作时的测试流程是什么? 24 77、当开发人员说不是BUG时,你如何应付? 24 78、软件的构造号与版本号之间的区别?BVT(BuildVerificationTest) 24 79、您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录? 25 80、您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。 25 81、您认为性能测试工作的目的是什么?好性能测试工作的关键是什么? 25 82、单元测试、集成测试、系统测试的侧重点是什么? 25 83、集成测试通常都有那些策略? 25 84、一个缺陷测试报告的组成 25 85、基于WEB信息管理系统测试时应考虑的因素有哪些? 25 86、软件测试项目从什么时候开始,?为什么? 26 87、需求测试注意事项有哪些? 26 88、简述一下缺陷的生命周期 26 89、你在你所在的公司是怎么开展测试工作的?是如何组织的? 26 90、你认为理想的测试流程是什么样子? 26 91、您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。 26 92、软件测试活动的生命周期是什么? 26 93、请画出软件测试活动的流程图? 26 94、针对缺陷采取怎样管理措施? 26 95、什么是测试评估?测试评估的范围是什么? 26 96、如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么? 26 97、测试结束的标准是什么? 26 98、软件验收测试除了alpha ,beta测试以外,还有哪一种? 26 99、测试多久了?以前过哪些项目?你们以前测试的流程是怎样的?用过哪些测试工具? 27 100、请就如何在开发中进行软件质量控制说说你的看法 27 101、一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。 27 102、软件测试的类型有那些?分别比较这些不同的测试类型的区别与联系。 27 103、测试用例通常包括那些内容?着重阐述编制测试用例的具体法 27 104、在分别测试winform的C/S结构与测试WEB结构的软件是,应该采取什么样的方法分别测试?他们存在什么样的区别与联系? 27 105、在测试winform的C/S结构软件时,发现这个软件的运行速度很慢,您会认为是什么原因?您会采取哪些方法去检查这个原因? 27 106、描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程 27 107、你都用什么测试方法 针对不同的产品或者系统或者模块,有不同的测试方法。总体而言有白盒测试和黑盒测试。 27 108、怎么编写案例 案例的编写与测试阶段的定义有很大的关系。系统测试和unit测试的案例可能不同。总体而言测试案例根据系统的需求而定。 27 109、怎么才能够全面的测试到每一个点 测试的全面性主要需要在设计测试计划的时候考虑,从测试策略,产品需求等等多个角度考虑从而定义全部的测试点。 27 110、谈谈软件测试技术,以及如何提高 27 111、谈谈软件测试职业发展,以及个人的打算 27 112、谈谈软件测试在企业的地位,也可以结合软件生命周期来谈 27 113、一般公司里实际的软件测试流程是什么样的?你们公司又是怎样的? 27 114、软件工程师要具有那些素质? 27 115、你会哪些测试工具?怎么操作? 27 116、你能不能说下你的3到5的职业计划(规划) 27 117、你觉得你来应聘有那些优势? 27 其他问:(有可能清晰的思路比确切的答案更重要) 27 开发及环境搭建类面试 28 1、描述软件产生内存泄露的原因以及检查方式。(可以结合一种开发语言进行描述) 28 2、简述什么是值传递,什么是地址传递,两者区别是什么? 28 3、结构化程序设计和面向对象程序设计各自的特点及优缺点是什么? 28 4、简述什么是存储过程和触发器? 28 5、使用C语言编写一个函数,用于交换两个变量的值(地址传递)。 29 6、请简述DNS、活动目录、域的概念。 29 7、描述TCP/IP协议的层次结构,以及每一层中重要协议。 29 8、简述子网掩码的用途。 29 9、说出4种以上常用的操作系统及其主要的应用范围(微软的操作系统除外)。 29 10、在Linux系统中,一个文件的访问权限是755,其含义是什么? 29 11、Windows操作系统中PATH环境变量的作用是什么? 30 12、Ghost的主要用途和常用方法? 30 13、在RedHat中,从root用户切到userl用户,一般用什么命令? 30 14、Linux中,一般怎么隐藏文件? 30 15、如何将自己的本地磁盘(D)成FTP供远端主机使用? 30 16、对RUP.CMM,CMMI,XP,PSP.TSP的认识? 30 17、DNS是什么,它是如何工作的? 31 18、防火墙如何保证安全的?主要有哪些? 31 19、目前流行的操作的系统有哪些?请举例说明安装操作系统的注意事项? 33 20、简述一下c/s模式或者b/s模式? 33 21、TCP/UDP有哪些区别? 34 22、ISO模型?HUB、tch、Router是ISO的第几层设备? 34 23、内存有哪几种存储组织结构.请分别加以说明? 34 人力资源面试 34 1、你的测试职业发展是什么?你自认为测试的优势在哪里? 34 2、你为什么想离开目前的职务? 34 3、你对我们公司了解有多少? 34 4、你找工作时,最重要的考虑因素为何? 34 5、为什么我们应该录取你? 34 6、请谈谈你个人的最大特色。 34 7、一个测试工程师应具备那些素质和技能? 35 8、您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么? 35 9、在您以往的测试工作中,最让您感到不满意或者不堪回首的事情是什么?您是如何来对待这些事情的? 35 10、在即将完成这次笔试前,您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面) 35 11、为什么选择测试这行? 35 12、你的工作通常能在时限内完成吗.(我想问一下就是她问这个问的动机是什么) 35 13、通常你对于别人批评你会有什么样的反应 35 14、如果明知这样不对,你还会依主管的指过去吗? 35 15、如果你接到一个客户抱怨的电话,你确知无法解决他的问,你会怎么处理? 35 16、请就软件测试人员应该具备什么样的基本素质说说你的看法。 36 17、你在五内的个人目标和职业目标分别是什么? 36 18、你怎样出自己的职业选择? 36

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值