当前位置: 首页 > news >正文

软件测试面试必备—基础知识整理(必备技能)

1、软件缺陷有哪些?

1)软件未实现产品说明书要求的功能

2)软件出现了产品说明书指明不应该出现的错误

3)软件实现了产品说明书未提到的功能

4)软件未实现产品说明书虽未明确提及但应该实现的目标

5)软件难以理解、不易使用、运行缓慢或者从测试员的角度看最终用户会认为不好

为了发现软件产品中的各种缺陷,而对软件产品进行验证和确认的活动过程,此过程贯穿整个软件开发生命周期。简单的说,软件测试是以发现错误为目的而执行的一个程序或系统的过程。

2、你如何理解软件测试的目的?

验证软件需求和功能是否得到完整实现

验证软件是否可以发布

尽可能多的发现软件中的bug

尽可能早的发现软件中的bug

对软件质量做出合理评估

预防下个版本可能出现的问题

预防用户使用可能出现的问题

发现开发过程中的问题和风险

3、软件测试有哪些原则?

所有测试的标准都是建立在用户需求之上 。

合理控制测试深度与广度,完全测试不可能,测试的投入与产出要均衡。

80-20原则,软件中80%的bug可以在分析、设计与评审阶段就能被发现与修正,16%的缺陷在系统的软件测试中发现,最后剩下的4%是用户长期使用的过程中才能暴露出来。

尽可能早的开展测试,越早发现错误,修改的代价越小。

发现错误较多的程序段,应进行更深入的测试。

软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试 。

软件开发人员即程序员应当避免测试自己的程序

严格执行测试计划,排除测试的随意性,以避免发生疏漏或者重复无效的工作

优秀测试人员应具备的素质:

1)沟通能力与表达能力

2)好奇心与怀疑精神

3)责任感与抗压能力

4)自信心,坚持自己的观点

5)耐心与细心

6)逆向思维的能力

7)善于学习与总结

8)团队协作精神

9)文档编写能力

优秀测试人员应具备的技能:

1)精通业务知识

2)具备软件编程能力,比如C,C++,JAVA等。

3)可以用脚本语言编写小测试工具

4)主流操作系统应用与网络知识,可以搭建测试环境

5)熟练掌握各种数据库知识

6)精通软件测试理论与方法

7)掌握常用测试与开发工具的使用

8)优秀的文档编写能力

4、说一说软件测试的组织架构

1)项目型的测试组织:

测试人员作为项目组的固定成员,从头到尾的跟着项目走

图片

2)智能型的测试组织:

测试人员参与到项目中,是以独立的测试部门委派的方式进入

图片

3)综合型的测试组织:

项目型与职能型的结构组合并加以改造而产生的。测试部门把测试人员,分为常规项目测试人员与专项测试人员。测试部门会把常规测试人员长期委派到项目组中,成为项目中的一员。专项测试人员,一般由性能测试工程师、自动化测试工程师、安全性测试工程师等组成。只有当项目发生专门需求测试时,测试部门才灵活把专项测试人员委派到各个项目组进行专项测试。

图片

5、软件测试常见分类有哪些?

1)按照是否执行被测试软件来分:

静态测试:是指不运行软件,测试包括代码检查、静态结构分析、代码质量度量等,主要对软件需求说明书、设计说明书、软件源代码进行检查与分析。

动态测试:指通过运行被测程序,检查运行结果与预期结果的差异,分析差异原因,并分析软件运行效率、健壮性等性能。动态测试是目前公司主要的测试方式

2)按照测试技术分为黑盒测试和白盒测试:

黑盒测试:黑盒测试又叫功能测试或数据驱动测试,在完全不考虑程序内部结构和内部特性的情况下,通过软件的外部表现来发现其缺陷和错误。

白盒测试:白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构进行测试程序,通过测试来检测产品内部逻辑是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

3)按照测试手段来分:可以分为手工测试和自动化测试

4)按照过程阶段来分:可以分为单元测试、集成测试、系统测试和验收测试

单元测试:通过模块(类/方法/函数)测试,使代码达到设计要求 主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。

集成测试:将经过单元测试的模块逐步组装成完整的程序。主要目的是检查各单元与其它程序部分之间的接口是否存在问题,各模块功能之间是否有影响。

系统测试:是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起进行测试。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方 ,进行改正。

验收测试:验收测试是在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的最后一次软件测试活动,也称为交付测试。通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要。

6、软件开发流程和开发模型?

软件生命周期:

计划-》需求分析-》设计-》程序编写-》测试-》运行/维护

软件测试流程:

测试计划-》需求分析-》测试用例-》测试用例执行-》提交bug-》回归测试

瀑布模型:适用于需求很明确的项目,分阶段向下进行,无法回溯

迭代模型:需求不明确,迭代版本系统

敏捷开发模型:

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

测试驱动开发模型:先编写测试代码,再写开发代码

7、软件测试模型有哪些?

在这里插入图片描述

V模型:反映了测试与开发阶段之间一一对应的特点,测试在开发之后,出错后回归测试量大

图片

W模型:测试伴随整个开发周期,测试与开发同步进行,有利于尽早发现问题

图片

H模型:软件测试活动完全独立,与其他流程并行

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。


http://www.mrgr.cn/news/57821.html

相关文章:

  • 基于Python实现“气象家园”自动签到
  • 光储充微电网:策略调度带领能源新未来---安科瑞 吴雅芳
  • AWD学习(一)
  • Centos7安装Docker保姆级
  • 双十一如何选择超声波清洗机?2024四款实力强悍的超声波清洗机推荐
  • 操作系统笔记(二)进程,系统调用,I/O设备
  • 【C++】C++中的计时、多维数组、排序
  • 《漠风吟》火热收官 实力导演何佳男拓长剧市场展不俗实力
  • 系统架构图设计(轻量级架构)
  • 服务稳定性运维保障体系建设的误区
  • 最近比较火的提示词记录
  • 如何减小 Maven 项目生成的 JAR 包体积 提升运维效率
  • 电脑屏幕录制哪个好?强烈推荐这几款
  • webGIS用在可视化大屏上,那效果还有啥话说。
  • FK743M5-XIH6核心板的学习
  • 数据驱动医院数字化转型之路
  • Pytorch Note
  • 雨课堂(长江云)如何自动刷课(无做题)
  • repo将每个仓库回退到第一个commit的状态
  • pandas库
  • 【系统配置】命令行修改统信UOS的grub启动延时
  • 打印堆栈信息
  • python实现数据库的增删改查功能,图形化版本
  • 2019-2020 CSP-J C++普及组 第一题题解汇编
  • nginx 隐藏版本号与WEB服务器信息(yum)
  • 用户身份和访问管理是保障企业数字化转型的安全基石