1、自我介绍
先向面试官问好,介绍公司名及部门、自己负责的职务或从的具体工作。态度要保持自然随和,语速要正常,敢于直视面试官的眼睛。
2、说一说你所知道的 Python 数据类型有哪些?
整型 int 整数 布尔型 bool true/false 字符串 str "abcd" 元祖 tuple (tuple) 列表 list [list] 字典 dict {dict}
3、Python 中列表和元组的区别是什么?元组是不是真的不可变?
- 列表和元组根本区别在于,元组内元素不可变,列表内元素可变。元组内套一个列表改变列表内的值就可以
4、你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?
- 首先,将问题提交到缺陷管理库进行备案。
- 然后,要获取判断的依据和标准:
- 根绝需求说明书,产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是都确认的直接依据;
- 如果没有文档依据,根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;
- 根据用户的一般使用习惯,来确认是否是缺陷;
- 与设计人员,开发人员和客户代表等相关人员探讨,确认是否是缺陷;
- 合理论述,客观严谨的向测试经理说明自己的判断理由;
- 等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反应,并由上级做出决定
5、给你一个网站,你如何测试?
首先,查找需求说明、网站设计等相关文档,分析测试需求;
制定测试计划,确定测试范围和测试策略,一般包括以下及部分,功能性测试、界面测试、性能测试、数据库测试、安全性测试、兼容性测试;
设计测试用例:
功能测试(包括不限于):
- 链接测试。
- 链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回
- 浏览器兼容:
- 是否都可以打开 链接配置类型是否都可以支持
- 提交功能的测试
- 多媒体元素是否可以正确加载和显示
- 多语言支持是否能够正确显示选择的语言
界面测试(包括但不限于):
- 页面是否风格统一,美观
- 页面布局是否合理,重点内容和热点内容是否突出
- 空间是否正常使用
- 对于必须但未安装的控件,是否提供自动下载并安装的功能
- 文字检查
性能测试:
- 压力测试
- 负载测试
- 强度测试
数据库测试:
- 具体决定是否需要展开。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
安全性测试:
- 基本的登陆功能的检查
- 是否存在溢出错误,导致系统崩溃或者权限泄露
- 相关开发语言的常见安全性问题检查,例如:SQL注入
- 如果需要高级的安全性问题,确定获得专业安全公司的帮助,外包测试,或者获取支持
兼容性测试,根据需求说明的内容,确定支持的平台组合:
- 浏览器的兼容性
- 操作系统的兼容性
- 软件平台的兼容性
- 数据库的兼容性
开展测试,并记录缺陷,合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如:需求变更,风险,配置,测试文档,缺陷报告,人力资源等内容)
定期评审,对测试进行评估和总结,调整测试内容
6、在搜索引擎中输入汉字就可以解析到对应的域名,请问如何使用 LoadRunner 进行测试
- 建立测试计划,确定测试标准和测试范围
- 设计典型场景的测试用例,都改常用业务流程和不常用的业务流程等
- 根据测试用例,开发自动化测试脚本和场景
- 录制测试脚本:新建一个脚本(Web/HTML协议);点击录制按钮,在弹出的对话框的URL中输入”about:blank”;在打开的浏览器中进行正常操作流程后,结束录制;调试脚本并保存,可能要注意到字符集的关联。
- 设置测试场景:针对性能设置测试场景,主要判断在正常情况下,系统的平均事务响应时间是否达标;针对压力负载设置测试场景,主要判断在长时间处于满负荷或者超出系统承载能力的条件下,系统是否会崩溃;执行测试,获取测试结果,分析测试结果
7、目前主要的测试用例方法是?
- 白盒测试:路径覆盖、代码走查、静态分析
- 黑盒测试:边界值分析,等价类划分,错误推测法,场景法,因果图,状态图法
8、软件测试安全性从哪几个方面测试?
软件安全性测试包括:程序、数据库安全测试
用户认证安全的测试要考虑问题:
- 明确区分系统中不同用户权限 、
- 系统中会不会出现用户冲突 、
- 系统会不会因用户的权限的改变造成混乱 、
- 用户登陆密码是否是可见、可复制 、是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)、
- 用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统 、
系统网络安全的测试要考虑问题 :
- 测试采取的防护措施是否正确装配好,
- 有关系统的补丁是否打上 、
- 模拟非授权攻击,看防护系统是否坚固 、
- 采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP ) 、
- 采用各种木马检查工具检查系统木马情况 、
- 采用各种防外挂工具检查系统各组程序的外挂漏洞
数据库安全考虑问题:
- 系统数据是否机密、
- 系统数据的完整性 、
- 系统数据可管理性 、
- 系统数据的独立性 、
- 系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)
9、什么是测试用例?什么是测试脚本?两者关系?
- 测试用例:
- 为实现测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的合集
- 测试脚本:
- 为了进行自动化测试而编写的脚本
- 关系:
- 测试脚本的编写必须对应相应的测试用例
10、简述:静态测试、动态测试、黑盒测试、白盒测试、α测试 、β测试
静态测试:
- 不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程
动态测试:
- 实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检测程序的正确性、可靠性、有效性、并分析系统运行效率和健壮性等性能
黑盒测试:
- 一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否得以实现,把被测程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性
白盒测试:
- 根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。
α测试:
- 由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha 测试不能由程序员或测试员完成
β测试:
- 软件的多个用户在一个或多个用户的实际使用环境下进行的测试,开发者通常不在测试现场,Beta 测试不能由程序员或测试员完成
11、软件测试分为几个阶段,各阶段的测试策略和要求是什么?
和开发过程相对应,测试过程会依次经历:
- 单元测试、集成测试、系统测试、验收测试四个主要阶段:
单元测试:
- 单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。
集成测试:
- 集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。
系统测试:
- 系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。
验收测试:
- 验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。
单元测试测试策略:
- 自顶向下的单元测试策略:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。
- 自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。
- 孤立单元测试策略:最好的单元测试策略。
集成测试的测试策略:
- 大爆炸集成:适应于一个维护型项目或被测试系统较小
- 自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
- 自底向集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
- 基于进度的集成
- 优点:具有较高的并行度;能够有效缩短项目的开发进度。
- 缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。
系统测试的测试策略:
- 数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试
12、测试人员在软件开发过程中的任务是什么?
1、尽可能早的找出系统中的Bug;
2、避免软件开发过程中缺陷的出现;
3、衡量软件的品质,保证系统的质量;
4、关注用户的需求,并保证系统符合用户需求。
总的目标是:确保软件的质量。
13、在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
一条Bug记录最基本应包含:
- bug编号;
- bug严重级别,优先级;
- bug产生的模块;
- 首先要有bug摘要,阐述bug大体的内容;
- bug对应的版本;
- bug详细现象描述,包括一些截图、录像....等等;
- bug出现时的测试环境,产生的条件即对应操作步骤;
高质量的Bug记录:
1) 通用UI要统一、准确
- 缺陷报告的UI要与测试的软件UI保持一致,便于查找定位。
2) 尽量使用业界惯用的表达术语和表达方法
- 使用业界惯用的表达术语和表达方法,保证表达准确,体现专业化。
3) 每条缺陷报告只包括一个缺陷
- 每条缺陷报告只包括一个缺陷,可以使缺陷修正者迅速定位一个缺陷,集中精力每次只修正一个缺陷。校验者每次只校验一个缺陷是否已经正确修正。
4) 不可重现的缺陷也要报告
- 首先缺陷报告必须展示重现缺陷的能力。不可重现的缺陷要尽力重现,若尽力之后仍不能重现,仍然要报告此缺陷,但在报告中要注明无法再现,缺陷出现的频率。
5) 明确指明缺陷类型
- 根据缺陷的现象,总结判断缺陷的类型。例如,即功能缺陷、界面缺陷、数据缺陷,合理化建议这是最常见的缺陷或缺陷类型,其他形式的缺陷或缺陷也从属于其中某种形式。
6) 明确指明缺陷严重等级和优先等级
- 时刻明确严重等级和优先等级之间的差别。高严重问题可能不值得解决,小装饰性问题可能被当作高优先级。
7) 描述 (Description) ,简洁、准确,完整,揭示缺陷实质,记录缺陷或缺陷出现的位置
- 描述要准确反映缺陷的本质内容,简短明了。为了便于在软件缺陷管理数据库中寻找制定的测试缺陷,包含缺陷发生时的用户界面(UI)是个良好的习惯。例如记录对话框的标题、菜单、按钮等控件的名称。
8) 短行之间使用自动数字序号,使用相同的字体、字号、行间距
- 短行之间使用自动数字序号,使用相同的字体、字号、行间距,可以保证各条记录格式一致,做到规范专业。
9) 每一个步骤尽量只记录一个操作
- 保证简洁、条理井然,容易重复操作步骤。
10) 确认步骤完整,准确,简短
- 保证快速准确的重复缺陷,“完整”即没有缺漏,“准确”即步骤正确,“简短”即没有多余的步骤。
11) 根据缺陷,可选择是否进行图象捕捉
- 为了直观的观察缺陷或缺陷现象,通常需要附加缺陷或缺陷出现的界面,以图片的形式作为附件附着在记录的“附件”部分。为了节省空间,又能真实反映缺陷或缺陷本质,可以捕捉缺陷或缺陷产生时的全屏幕,活动窗口和局部区域。为了迅速定位、修正缺陷或缺陷位置,通常要求附加中文对照图。
- ? 附加必要的特殊文档和个人建议和注解
- 如果打开某个特殊的文档而产生的缺陷或缺陷,则必须附加该文档,从而可以迅速再现缺陷或缺陷。有时,为了使缺陷或缺陷修正者进一步明确缺陷或缺陷的表现,可以附加个人的修改建议或注解。
12) 检查拼写和语法缺陷
- 在提交每条缺陷或缺陷之前,检查拼写和语法,确保内容正确,正确的描述缺陷。
13) 尽量使用短语和短句,避免复杂句型句式
- 软件缺陷管理数据库的目的是便于定位缺陷,因此,要求客观的描述操作步骤,不需要修饰性的词汇和复杂的句型,增强可读性。
14) 缺陷描述内容
- 缺陷描述的内容可以包含缺陷操作步骤,实际结果和期望结果。操作步骤可以方便开发人员再现缺陷进行修正,有些开发的再现缺陷能力很差,虽然他明白你所指的缺陷,但就是无法再现特别是对系统不熟悉的新加入开发人员,介绍步骤可以方便他们再现。实际结果可以让开发明白错误是什么,期望结果可以让开发了解正确的结果应该是如何。
以上概括了报告测试缺陷的规范要求,随着软件的测试要求不同,测试者经过长期测试,积累了相应的测试经验,将会逐渐养成良好的专业习惯,不断补充新的规范书写要求。此外,经常阅读、学习其他测试工程师的测试缺陷报告,结合自己以前的测试缺陷报告进行对比和思考,可以不断提高技巧。
14、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
黑盒测试
- 优点:比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关; 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;在做软件自动化测试时较为方便。
- 缺点:不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;自动化测试的复用性较低。
白盒测试
- 优点:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐 藏的问题。
- 缺点:程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。
15、如何测试一个纸杯?
- 用户文档:
- 使用手册是否对杯子的用法、限制、使用条件等有详细描述
- 功能性:
-
- 用水杯装水看漏不漏;水能不能被喝到
- 安全性:
- 杯子有没有毒或细菌
- 可靠性:
- 杯子从不同高度落下的损坏程度
- 可移植性:
- 杯子在不同的地方、温度等环境下是否都可以正常使用
- 兼容性:
- 杯子是否能够容纳果汁、白水、酒精、汽油等
- 易用性:
- 杯子是否烫手、是否有防滑措施、是否方便饮用
- 疲劳测试:
- 将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等
- 压力测试:
- 用根针并在针上面不断加重量,看压强多大时会穿透
16、测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?
目的:
- 软件测试计划是指导测试过程的纲领性文件:
- 领导能够根据测试计划进行宏观调控,进行相应资源配置等
- 测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等
- 便于其他人员了解测试人员的工作内容,进行有关配合工作
包含:
- 产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。
- 借助软件测试计划,使参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划编写6要素(5W1H):
- why——为什么要进行这些测试;
- what—测试哪些方面,不同阶段的工作内容;
- when—测试不同阶段的起止时间;
- where—相应文档,缺陷的存放位置,测试环境等;
- who—项目有关人员组哪些测试人员进行测试;
- how—如何去做,使用哪些测试工具以及测试方法进行测试
重要:
- 测试计划 和 测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。
17、详细的描述一个测试活动完整的过程
(以瀑布模型为例)
- 项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后SQA进入项目,开始进行统计和跟踪
- 开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容 在 16 题有描述。
- 测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。
- 测试用例完成后,测试和开发需要进行评审。
- 测试人员搭建环境
- 开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现BUG后提交给BugZilla或 禅道。
- 开发提交第二个版本,包括Bug 已修复功能 以及 增加的部分功能,测试人员进行测试。
- 重复上面的工作,一般是3-4个版本后BUG数量减少,达到要求。
- 如果有客户反馈的问题,需要测试人员协助重现并重新测试。
18、BUG管理工具的跟踪过程(用BugZilla为例子)
- 测试人员发现了BUG,提交到Bugzilla中,状态为new,BUG的接受者为开发接口人员
- 开发接口将BUG分配给相关的模块的开发人员,状态修改为已分配,开发人员和测试确认BUG,如果是本人的BUG,则设置为接收;如果是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;如果认为不是问题,则需要大家讨论并确认后,拒绝这个BUG,然后测试人员关闭此问题。
- 如果开发人员接受了BUG,并修改好以后,将BUG状态修改为已修复,并告知测试在哪个版本中可以测试。
- 测试人员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭BUG。
19、软件产品质量特性是什么?
- 功能性:适应性、准确性、互操作性、依从性、安全性。
- 可靠性:成熟性、容错性、易恢复性。
- 可使用性:易理解性、易学习性、易操作性。
- 效率:时间特性、资源特性。
- 可维护性:易分析性、易变更性、稳定性、易测试性。
- 可移植性:适应性、易安装性、遵循性、易替换性
20、试述软件的概念和特点?软件复用的含义?构件包括哪些?
- 软件 是计算机系统中与硬件相互依存的另一部分,与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
- 软件复用(SoftWare Reuse) 是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。
- 可以被复用的软件成分一般称作可复用构件
21、什么是软件测试?软件测试的 目的 和 原则?
在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程
软件测试的目的:
- 测试是程序的执行过程,目的在于发现错误
- 一个成功的测试用例在于发现至今未发现的错误
- 一个成功测试是发现了至今未发现的错误的测试
- 确保产品完成了她所承受或公布的功能,并且用户可以访问到的功能都有明确的书面说明
- 确保产品满足性能和效率的要求
- 确保产品是健壮的和适应用户环境的
软件测试的原则:
- 测试用例中一个必须部分是对预期输出或结果进行定义
- 程序员应避免测试自己编写的程序
- 编写软件的组织不应当测试自己编写的软件
- 应当彻底检查每个测试的执行结果
- 测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况
- 检擦程序是否 “未做其应该做的” 仅是测试的一半,测试的另一半是 检查程序是否“做了其不应该做的”
- 应避免测试用例用后即弃,除非软件本身就是个一次性的软件
- 计划测试工作时不应默许假定不会发现错误
- 程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正比
- 软件测试是一项极富创造性,极具智力的挑战性的工作
22、软件质量保证体系是什么?国家标准中与质量保证管理相关的几个标准是什么?他们的编号和全称是什么?
- SQA由一套软件工程过程和方法组成,以保证(软件的)质量。SQA贯穿整个软件开发过程,(它)应包括需求文档评审、代码控制、代码评审、变更管理、配置管理、版本管理和软件测试。
- 软件质量保证(SQA-Software Quality Assurance)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
23、您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
- 尽量面对面的沟通,其次是能直接通过电话沟通,如果只能通过 Email 等非及时沟通工具的话,强调必须对特性的理解深刻以及能表达清楚。
- 运用一些测试管理工具如 TestDirector 进行管理也是较有效的方法,同时要注意在 TestDirector 中对 BUG 有准确的描述。
- 在团队中建立测试人员与开发人员良好沟通中注意以下几点:
- 一真诚、二是团队精神、三是在专业上有共同语言、四是要对事不对人,工作至上;
- 当然也可以通过直接指出一些小问题,而不是进入BUG 跟踪系统来增加对方的好感;
24、你对测试最大的兴趣在哪里?为什么?
回答这个面试题,没有固定统一的答案,但可能是许多企业都会问到的。提供以下答案供考:
- 最大的兴趣,感觉这是一个有挑战性的工作;
- 测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣
- 通过自己的工作,能使软件产品越来越完善,从中体会到乐趣
回答此类问题注意以下几个方面:
- 尽可能的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应用的企业,那么表示你的兴趣在数据库的测试,并且希望通过测试提升自己的数据库掌握能力。
- 表明你做测试的目的是为了提升能力,也是为了更好的做好测试;提升能力不是为了以后转开发或其他的,除非用人企业有这样的安排。
- 不要过多的表达你的兴趣在招聘企业的范畴这外。比如招聘企业是做财务软件的,可是你表现出来的是对游戏软件的兴趣;或招聘是做JAVA开发的,而你的兴趣是在C类语言程序的开发。
25、你自认为测试的优势在哪里?
该面试也没有固定不变的答案,但可参考以下几点,并结合自身特点:
- 有韧性、有耐心、做事有条理性、喜欢面对挑战、有信心做好每一件事情、较强的沟通能力、从以前的经理处都得到了很好的评价表明我做的很好
26、简述你在以前的工作中做过哪些事情,比较熟悉什么?
- 我过去的主要工作是系统测试和自动化测试。在系统测试中,主要是对 XX 系统的业务逻辑功能,以及 XX 系统的 Class 5 特性进行测试。性能测试中,主要是进行的压力测试,在各个不同数量请求的情况下,获取系统响应时间以及系统资源消耗情况。自动化测试主要是通过自己写脚本以及一些第三方工具的结合来测试软交换的特性测试。
- 在测试中,我感觉对用户需求的完全准确的理解非常重要。另外,就是对BUG的管理,要以需求为依据,并不是所有BUG均需要修改。
- 测试工作需要耐心和细致,因为在新版本中,虽然多数原来发现的 BUG 得到了修复,但原来正确的功能也可能变得不正确。因此要注重迭代测试和回归测试。
27、在 C/C++中 static 有什么用途?(请至少说明两种)
- 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
- 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
- 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用
28、引用与指针有什么区别?
- 1) 引用必须被初始化,指针不必。
- 2) 引用初始化以后不能被改变,指针可以改变所指的对象。
- 3) 不存在指向空值的引用,但是存在指向空值的指针。
29、Internet 采用哪种网络协议?该协议的主要层次结构?Internet 物理地址和 IP地址 转换采用什么协议?
- TCP/IP协议主要层次结构为: 应用层/传输层/网络层/数链路层。
- ARP (Address Resolution Protocol)(地址解析协议)
30、说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试;
1、自顶向下集成
- 优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离
- 缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
- 适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
2、自底向上集成
- 优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
- 缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
- 适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
31、软件验收测试包括:
- 正式验收测试、alpha测试、beta测试三种测试。
32、系统测试的策略有都有什么:
- 有性能测试、负载测试、强度测试、易用性测试、安全测试、配置测试、安装测试、
- 文档测试、故障恢复测试、用户界面测试、恢复测试、分布测试、可用性测试;
33、设计系统测试计划需要参考的项目文档有:
- 软件测试计划、软件需求计划、和迭代计划
34.通过画因果图来写测试用例的步骤为___、___、___、___及把因果图转换为状态图共五个步骤。利用因果图生成测试用例的基本步骤是:
- 分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
- 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。
- 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。 § 把因果图转换成判定表。
- 把判定表的每一列拿出来作为依据,设计测试用例。
35、请说出这些测试最好由那些人员完成,测试的是什么?
- 代码、函数级测试:一般由白盒测试人员完成,他们针对每段代码或函数进行正确性检验,检查其是否正确的实现了规定的功能。
- 模块、组件级测试:主要依据是程序结构设计测试模块间的集成和调用关系,一般由测试人员完成。
- 系统测试:在于模块测试与单元测试的基础上进行测试。了解系统功能与性能,根据测试用例进行全面的测试。
36、设计测试用例时应该考虑哪些方面,即不同的测试用例针对那些方面进行测试?
- 设计测试用例时需要注意的是,除了对整体流程及功能注意外,还要注意强度测试、性能测试、压力测试、边界值测试、稳定性测试、安全性测试等多方面。
- 测试用例需要考虑的四个基本要素是:输入、输出、操作和测试环境;
- 另外,测试用例需要考虑的是测试类型:功能、性能、安全……;
- 此外,还需要考虑用例的重要性和优先级;
37、在windows下保存一个文本文件时会弹出保存对话框,如果为文件名建立测试用例,等价类应该怎样划分?
- 单字节,如A;
- 双字节, AA、我我;
- 特殊字符 /‘。‘;、= - 等;
- 保留字,如com;
- 文件格式为8.3格式的;
- 文件名格式为非8.3格式的;/,\,*等九个特殊字符。
38、假设有一个文本框要求输入10个字符的邮政编码,对于该文本框应该怎样划分等价类?
- 特殊字符,如10个*或¥;
- 英文字母,如ABCDefg5ik;
- 小于十个字符,如123;
- 大于十个字符,如11111111111;
- 数字和其他混合,如123AAAAAAA;
- 空字符;
- 保留字符
39、软件测试项目从什么时候开始?为什么?
- 软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,
- 并且软件缺陷存在放大趋势,缺陷发现的越晚,修复它所花费的成本就越大
40、什么是回归测试?
- 回归测试 (regression testing): 回归测试有两类:用例回归 和 bug回归;
- 用例回归是过一段时间以后再回头对以前使用过的用例在重新进行测试,看看会重新发现问题。
- bug回归,就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,对相关修改的部分进行测试的方法。
*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!*******