测试面试准备

本文详述了软件测试面试的准备内容,涵盖了测试工程师的角色、测试基础理论、测试技术分类、测试过程、自动化测试工具的使用、测试用例编写、软件缺陷管理、测试流程、计算机基础知识以及网络协议等关键知识点。内容包括测试目标、黑盒白盒测试、单元测试、集成测试、系统测试、回归测试等概念,还涉及软件生命周期中的测试实践,如需求分析、设计、编码和测试阶段的对应关系。此外,文章介绍了网络协议、Linux命令以及自动化测试工具的运用,为面试者提供了全面的复习资料。
摘要由CSDN通过智能技术生成

下面是我参加Dell测试开发岗面试前准备的除建立外的内容,包含测试基础知识,计算机基础,网络,常见问题以及linux常用命令:

问题:

为什么适合做一名测试工程师(兴趣,基础,编程以及个人性格)

基本理论范围

软件是计算机系统中与硬件相互依存的另一部分,

软件包括程序+文档

===测试的定义,目标,目的,常识(前面是面试必修,常识乃武功秘籍)

软件测试的定义是:@软件测试是在现有软件中寻找缺陷过程@使用人工或自动手段来运行或测试某个系统的过程,目的在于检验是否满足规定的需求或弄清预期结果与实际结果之间的差别,或者说找出软件产品中的错误使软件尽可能符合用户要求。

目标:发现一些可以通过测试避免的开发风险;;实施测试来降低所发现的风险;;确定测试何时可以结束;;在开发项目的过程中将测试看作是一个标准项目;;测试的其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

===测试技术的划分

@从是否关心软件内部结构和具体实现的角度划分 A.白盒测试 B.黑盒测试 C.灰盒测试

@从是否执行程序的角度 A.静态测试 B.动态测试

@从软件开发的过程按阶段划分

  A.单元测试B.集成测试C.确认测试D.系统测试E.验收测试F.回归测试G.Alpha测试H.Beta测试

  * 测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试。

  * 开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。

  * 集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。

  * 确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。

  * 系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。

各种测试定义

第一种划分:黑盒,白盒,灰盒

黑盒测试:方法主要有等价类划分、边值分析、因—果图、错误推测等。

又叫功能测试,把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,根据规格说明书,通过操作软件验证程序的功能是否与规格说明书规定的一致。主要用于软件确认测试

白盒测试:

也称结构性测试,是基于代码的测试,按照程序内部的逻辑结构,检测程序是否能按预定要求进行正确的工作。

灰盒测试

介于白盒测试与黑盒测试之间的测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况,但这种关注不像白盒测试那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。

灰盒测试结合了白盒测试和黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。

回归测试:

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。

冒烟测试:

是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性,冒烟测试又称版本验证测试。冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件的基本功能正常,可以进行后续的正式测试工作。简单地说,冒烟测试就是用较少的人,在较短的时间内测试程序的主要功能,如果通过再进行正式的测试。

第二种划分:静态技术、动态技术

静态测试技术(静态分析技术):是指不运行程序,通过人工对程序和文档进行分析与检查;

静态测试实际上是对软件中的需求说明书、设计说明书、程序源代码进行非运行的检查,静态测试包括:走查、符号执行、需求确认等。

动态测试技术:通过人工或使用工具运行程序进行检查、分析程序的执行状态和程序的外部表现。

aplha测试和bate测试的区别

Alpha测试(α测试):

通常也叫“验证测试”,主要是指在软件开发完成以后,在软件开发环境下,开发方对要提交的软件进行全面的自我检查与验证,可以和软件的“系统测试”一并进行。开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。

Beta测试(β测试):

在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。通常情况用户测试指用户的使用性测试,由用户找出软件的应用过程中发现的软件的缺陷与问题,并对使用质量进行评价。β测试通常被看成是一种用户测试。β测试主要是把软件产品有计划地免费分发到目标市场,让用户大量使用,并评价、检查软件。通过用户各种方式的大量使用,来发现软件存在的问题与错误,把信息反馈给开发者修改。β测试中厂商获取的信息,可以有助于软件产品的成功发布。

规范化的测试流程

制定测试计划;设计测试用例;执行测试用例;提交缺陷报告;修复软件缺陷

测试总结分析;回归测试;审核;审核;交付

该流程应该站在软件工程的角度来看,如何有机的将其与软件生命周期牢牢结合起来才是关键所在,不然你始终会认为除执行其他阶段都是多余的。(很多公司只做系统测试,那么整个测试生命周期当中只需要制定一套测试计划以及用例;规范化的公司严格按照单元—集成—系统—验收来走,那么每一阶段都需要按照上述流程执行)

测试各阶段文档的内容:

测试每一阶段需要做些什么?依据是什么?如何评测软件的质量以及测试工作的质量?

这一切取决于测试生命周期中产生的四套文档(通过上图你能推断出来么?)

按照顺序依次为:测试计划(测试经理编写)----测试用例(用例设计工程师编写)----bug报告单(用例执行工程师编写)----测试分析报告(测试经理编写)

每个文档的核心各不相同,对应自己职责的文档一定要弄清应该注意哪些要点,掌握哪些技术。记住,它们也许会成为你晋升或者离职的直接因素。

个人认为此模块是四个模块中最核心也是最为实用的部分,但必须建立在前两个知识模块的掌握之上,还要了解被测程序的行业背景。

自动化测试工具的使用及原理

--工具使用前,设计的一系列的测试用例才是最重要的。

--工具,是根据被测软件所选择,需求及界面长期变更的软件就不适合使用录制回放的功能测试工具,所以,各公司按照自己的产品购买相应的测试软件。

--工具,它的思想和测试基础是相通的。理解了测试的规范化流程,TD的使用便是小case。

所以,四个模块中,它是最专业的,但不是最核心的。建议不要在学习软件测试的前期花费大量的时间在它们上面,除非因为工作需要。(自动化测试确实重要,不仅能使测试工作方便,快捷,有些工具还能达到现实中很难达到的目的,节省大量人力物力。它必定会成为测试以后的核心发展方向,得到越来越多公司的肯定。希望大家在能力达到并且有时间的情况下去多学习了解下一些与你行业相关的测试软件,肯定是百利而无一害的)

 

测试原则

一,测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。

二,程序员应该避免检查自己的程序,软件测试应该由第三方来负责。

三,设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下不要制造极端状态和意外状态。

四,应该充分注意测试中的群集现象。

五,对策就错误结果进行地一个确认过程。一般由A测试出来的错误,一定要由B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格的确认,是否真的存在这个问题以及严重程度等。

六,制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成也有一个高水平的测试。

七,妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。

 

软件开发五个阶段

1.问题的定义及规划

此阶段是软件开发与需求共同讨论,主要确定软件的开发目标及其可行性。

2.需求分析

在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础。“唯一不变的是变化本身”,同样软件需求也是在软件开发过程中不断变化和深入的,因此,我们必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。

3.软件设计

此阶段中要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。还的软件设计将为软件程序编写打下良好的基础。

4.程序编码

此阶段是将软件设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。

5.软件测试

在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有:白盒测试和黑盒测试。

##################################################################

测试用例是由测试人员在测试执行之前编写的文档,用于指导测试过程.

------什么是软件缺陷

需求规格说明书中要求的功能未实现

需求规格说明说中未要求的功能实现了

程序中出现了需求规格说明书中指明不该出现的问题

需求规格说明书中虽未明确提及,但必须实现的功能未实现

程序难以理解,不易使用,界面不美观,用户体验不好等

----如何识别bug

参照需求文档,实际与文档不符就是bug

与需求人员,开发人员,用户进行讨论

参照测试用例中的预期结果,实际结果与预期结果不符的就是bug

第一台计算机诞生在什么时候?叫做什么名字

1946-2-15,叫做“艾尼阿克”

计算机的层次

计算机分为3个层次:应用软件、操作系统、计算机硬件/裸机

裸机包含软件吗?如何进入

裸机也包含软件,主要是bios程序;

开机或重启以后,迅速按下“delete”键(如果是笔记本,一般为功能键,如F2)

软件的分类

软件包括系统软件和应用软件

按照系统软件划分

操作系统、操作系统的补丁程序、驱动程序

按照软件结构划分

可分为单机版软件和分布式软件;

根据客户端的特点将分布式软件分为c/s结构和b/s结构

什么是c/s结构和b/s结构?

①C/S结构:client/server客户端/服务器结构,客户端需要使用该公司提供的专门软件才能享受服务,QQ、微信、滴滴打车

②B/S结构:browser/server浏览器/服务器结构,客户端只要有浏览器就可以访问服务,网站、搜索引擎、论坛

什么是缺陷报告

缺陷报告记录了测试人员在测试时发现的缺陷,是测试人员和开发人员交流和沟通的重要工具

缺陷报告包括那些(重要组成)?

1.缺陷编号:Defect

2.缺陷标题:Summary

3.缺陷的所属模块:Subject

4.缺陷的发现者:Detected By

5.缺陷的发现日期:Detected on date

6.缺陷的发现版本:Detected in release

7.缺陷指派给:Assigned to

8.缺陷的状态:Status

9.缺陷的严重程度:Severity

10.缺陷的优先级:Priority

11.缺陷描述:Description

提交缺陷报告时,缺陷的等级划分

严重级别(S1):系统崩溃、数据丢失、数据毁坏

较严重(S2):流程走不通、操作性错误、结果错误

模块性错误(S3):功能遗漏、功能不

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值