性能测试测试之路测试领悟

测试基础知识

2017-09-17  本文已影响979人  qianyewhy
1.问:你在测试中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决。
2.问:给你一个网站,你如何测试?
  1. 首先,查找需求说明、网站设计 m 等相关文档,分析测试需求。
  2. 制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:
    功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
  3. 设计测试用例:
    功能性测试可以包括,但不限于以下几个方面:
  1. 开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。
  2. 定期评审,对测试进行评估和总结,调整测试的内容。
3.在搜索引擎中输入汉字就可以解析 到对应的域名,请问如何用 LoadRunner 进行测试。
4.问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别? ?

300 个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。
线程之间可能发生干扰,而产生一些异常。
300 个用户在一个客户端上,需要更大的带宽。
IP 地址的问题,可能需要使用 IP Spoof 来绕过服务器对于单一 IP 地址最大连接数的限制。
所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。

5.试述软件的概念和特点?软件复用的含义?构件包括哪些?
6.软件生存周期及其模型是什么?

软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。
在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(Life Cycle Model)。

7.什么是软件测试?软件测试的目的与原则
8.软件配置管理的作用?软件配置包括什么?

软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,贯穿整个软件生命周期,同时对软件开发过程的宏观管理即项目管理也有重要的支持作用。一个软件开发组织真正有效的实施软件配置管理,将会使软件开发过程有更好的可预测性,使系统具有可重复性,大大提高软件组织的竞争力。
软件配置包括如下内容:
配置项识别
工作空间管理
版本控制
变更控制
状态报告
配置审计

9.什么是软件质量?

软件质量:软件产品的特性可以满足用户的功能、性能需求的能力。

10.目前主要的测试用例设计方法是什么?

白盒测试:
逻辑覆盖
循环覆盖
基本路径覆盖
黑盒测试:
边界值分析法
等价类划分
错误猜测法
因果图法
状态图法
随机测试
场景法

11.软件的安全性应从哪几个方面 去测试?

软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。

12.什么是测试用例 什么是测试脚本 两者的关系是什么?

为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。
测试脚本是为了进行自动化测试而编写的脚本。
测试脚本的编写必须对应相应的测试用例,

13.简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试
14.软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么? ? 他们的编号和全称是什么? ?

SQA 由一套软件工程过程和方法组成,以保证(软件的)质量。SQA 贯穿整个软件开发过程,(它)应包括需求文档评审、代码控制、代码评审、变更管理、配置管理、版本管理和软件测试。

15.软件产品质量特性是什么? ?

功能性:适应性、准确性、互操作性、依从性、安全性。
可靠性:成熟性、容错性、以恢复性。
可使用性:易理解性、易学习性、易操作性。
效率:时间特性、资源特性。
可维护性:易分析性、易变更性、稳定性、易测试性。
可移植性: 适应性、易安装性、遵循性、易替换性。

16.软件测试的策略是什么? ?

软件测试策略:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。

17.软件测试分为几个 阶段 各阶段的测试策略和要求是什么? ?

软件测试按阶段划分可以分为单元测试、集成测试、系统测试和<验收测试>(不一定有)几个阶段

18.在软件测试各个阶段通常完成什么工作?各个阶段的结果文件是什么?包括什么内容?
19.测试人员在软件开发过程中的任务是什么?

1、寻找 Bug;
2、避免软件开发过程中的缺陷;
3、衡量软件的品质;
4、关注用户的需求。
总的目标是:确保软件的质量。

20.在您以往的工作中,一条软件缺陷(或者叫 Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
21.黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
21.测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?

答案:软件测试计划是指导测试过程的纲领性文件。
包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。
所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。

22.黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
23.详细的描述一个测试活动完整的过程。

答案:(供参考,本答案主要是瀑布模型的做法)

24.BUG 管理工具的跟踪过程

用 BugZilla 为例子
测试人员发现了 BUG,提交到 Bugzilla 中,状态为 new,BUG 的接受者为开发接口人员
开发接口将 BUG 分配给相关的模块的开发人员,状态修改为已分配,开发人员和测试确认BUG,如果是本人的 BUG,则设置为接收;如果是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;如果认为不是问题,则需要大家讨论并确认后,拒绝这个 BUG,
然后测试人员关闭此问题。
如果开发人员接受了 BUG,并修改好以后,将 BUG 状态修改为已修复,并告知测试在哪个版本中可以测试。
测试人员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭BUG。

25.您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员 良好的人际关系的关键是什么?
26.你对测试最大的兴趣在哪里?为什么?

回答这个面试题,没有固定统一的答案,但可能是许多企业都会问到的。提供以下答案供考:
最大的兴趣,感觉这是一个有挑战性的工作;
测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣
通过自己的工作,能使软件产品越来越完善,从中体会到乐趣
回答此类问题注意以下几个方面:
尽可能的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应用的企业,那么表示你的兴趣在数据库的测试,并且希望通过测试提升自己的数据库掌握能力。
表明你做测试的目的是为了提升能力,也是为了更好的做好测试;提升能力不是为了以后转开发或其他的,除非用人企业有这样的安排。
不要过多的表达你的兴趣在招聘企业的范畴这外。

27.你自认为测试的优势在哪里?

该面试也没有固定不变的答案,但可参考以下几点,并结合自身特点:
有韧性
有耐心
做事有条理性
喜欢面对挑战
有信心做好每一件事情
较强的沟通能力
从以前的经理处都得到了很好的评价表明我做的很好

28.集成测试通常都有那些策略?

1、大爆炸集成
2、自顶向下集成
3、自底向上集成
4、三明治集成适应于大部分软件开发项目
5、基干集成
6、分层集成
7、基于功能的集成
8、基于消息的集成
9、基于风险的集成
10、基于进度的集成

29.请你分别画出 I OSI 的七层网络结构图和 P TCP/IP 的四层结构图。

答:OSI 七层网络结构图,由上至下:
应用层 ;表示层 ;会话层 ;传输层 ;网络层 ;数据链路层;物理层
TCP/IP 的四层结构图
应用层;传输层;互联层;链路层

30.一个 e byte 几个单位。( ( 计算机基础) )

答:8bit。

31.常用 X UNIX 命令x (Linux 的常用命令) ) (至少 0 10 个); (Unix)

答:ls pwd mkdir rmdir rm cp mv cd ps ping tail more echo adduser passwd logout exit,

32.简述你在以前的工作中做过哪些事情,比较熟悉什么。

此问题每个人都不一样。参考答案如下。
我过去的主要工作是系统测试和自动化测试。在系统测试中,主要是对 BOSS 系统的业务逻辑功能,以及软交换系统的 Class 5 特性进行测试。性能测试中,主要是进行的压力测试,在各个不同数量请求的情况下,获取系统响应时间以及系统资源消耗情况。
自动化测试主要是通过自己写脚本以及一些第三方工具的结合来测试软交换的特性测试。
在测试中,我感觉对用户需求的完全准确的理解非常重要。另外,就是对 BUG 的管理,要以需求为依据,并不是所有 BUG 均需要修改。
测试工作需要耐心和细致,因为在新版本中,虽然多数原来发现的 BUG 得到了修复,但原来正确的功能也可能变得不正确。因此要注重迭代测试和回归测试。

33.在 C/C++中 中 c static 有什么用途?(请至少说明两种)

1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

  1. 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
  2. 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用
34.引用与指针有什么区别?
  1. 引用必须被初始化,指针不必。
  2. 引用初始化以后不能被改变,指针可以改变所指的对象。
  3. 不存在指向空值的引用,但是存在指向空值的指针。
35.Internet 采用哪种网络协议?该协议的主要层次结构?t Internet 物理地址和 P IP 地址转换采用什么协议?

TCP/IP 协议
主要层次结构为: 应用层/传输层/网络层/数链路层。
ARP (Address Resolution Protocol)(地址解析协议)

36.说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试;
37.软件验收测试包括正式验收测试、alpha 测试、beta 测试三种测试。
38.系统测试的策略有很多种的,有性能测试、负载测试、强度测试、易用性测试、安全测试、配置测试、安装测试、文档测试、故障恢复测试、用户界面测试、恢复测试、分布测试、可用性测试。
39.设计系统测试计划需要参考的项目文档有软件测试计划、软件需求工件、和迭代计划。
40.利用因果图生成测试用例的基本步骤是:

§ 分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
§ 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。
§ 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。
§ 把因果图转换成判定表。
§ 把判定表的每一列拿出来作为依据,设计测试用例。
一、 测试的种类很多,比如:
代码、函数级测试
模块、组件级测试
系统测试
请说出这些测试最好由那些人员完成,测试的是什么?
代码、函数级测试一般由白盒测试人员完成,他们针对每段代码或函数进行正确性检验,检查其是否正确的实现了规定的功能。
模块、组件级测试主要依据是程序结构设计测试模块间的集成和调用关系,一般由测试人员完成。
系统测试在于模块测试与单元测试的基础上进行测试。了解系统功能与性能,根据测试用例进行全面的测试。

41设计测试用例时应该考虑哪些方面,即不同的测试用例针对那些方面进行测试?

设计测试用例时需要注意的是,除了对整体流程及功能注意外,还要注意强度测试、性能测试、压力测试、边界值测试、稳定性测试、安全性测试等多方面。(测试用例需要考虑的四个基本要素是输入、输出、操作和测试环境;另外,测试用例需要考虑的是测试类型(功能、性能、安全„„),这部分可以参照 TP 做答。此外,还需要考虑用例的重要性和优先级)

42.在 windows 下保存一个文本文件时会弹出保存对话框,如果为文件名建立测试用例,等价类应该怎样划分?

单字节,如 A;
双字节, AA、我我;
特殊字符 /‘。‘;、=-等;
保留字,如 com;
文件格式为 8.3 格式的;
文件名格式为非 8.3 格式的;
/,,*等九个特殊字符。

43.假设有一个文本框要求输入 0 10 个字符的邮政编码,对于该文本框应该怎 样划分等价类?

特殊字符,如 10 个*或¥;
英文字母,如 ABCDefghik;
小于十个字符,如 123;
大于十个字符,如 11111111111;
数字和其他混合,如 123AAAAAAA;
空字符;
保留字符

44.软件测试项目从什么时候开始,?为什么?

软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,并且软件缺陷存在放大趋势.缺陷发现的越晚,修复它所花费的成本就越大.

45.什么是白盒测试?什么是黑盒测试? ? 什么是回归测试? ?
46.单元测试、集成测试、系统测试的侧重点是什么?
47. 一个测试工程师应具备那些素质?

1、责任心
2、沟通能力
3、团队合作精神
4、耐心、细心、信心
5、时时保持怀疑态度,并且有缺陷预防的意识
6、具备一定的编程经验

48.你所了解的的软件测试类型都有哪些,简单介绍一下。
49.你认为做好测试计划工作的关键是什么?

明确测试的目标,增强测试计划的实用性
采用评审和更新机制,保证测试计划满足实际需求
分别创建测试计划与测试详细规格、测试用例

50.您认为做好测试用例设计工作的关键是什么?

白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题

51.您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?
52.在您以往的测试工作中,最让您感到不满意或者不堪回首的事情是什么?您是如何来对待这些事情的?
53.你的测试职业发展目标是什么?

测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前 3 年累积测试经验,不断的更新自己改正自己,做好测试任务。

54.你对我们公司了解有多少?

建议从招聘广告上多了解信息,同时到应聘公司的网站上去尽可能多的了解这个公司的情况,以便回答好这类问题。

55.测试结束的标准是什么?

从微观上来说,在测试计划中定义,比如系统在一定性能下平稳运行 72 小时,目前 BugTracking System 中,本版本中没有一般严重的 BUG,普通 BUG 的数量在 3 以下,BUG 修复率 90%以上等等参数,然后由开发经理,测试经理,项目经理共同签字认同版本 Release。
如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。

56. 软件测试分为黑盒和白盒,分别适合什么情况? ?

软件测试方法一般分为两种:白盒测试与黑盒测试。

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

可行性分析、需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试

58测试用例通常包括那些内容?

不同结构的用例包括的不一样。
(版本、编号、项目、设计人员、设计日期、输入、预期输出„„)
软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。

59.您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

开发过程---需求调研(需求人员)、需求分析(需求人员)、概要设计(设计人员)、详细设计(设计人员)、编码(开发人员)
测试过程---需求评审、系统测试设计、概要设计评审、集成测试设计、详细设计评审、单元测试设计、测试执行
测试工作的整个过程都做过,擅长做测试设计
过程决定质量,软件的过程改进正是为了提高软件的质量,将过往的种种经验和教训积累起来。

60.在您所经历的测试活动中,参与人员有哪些?您所担任的角色是什么?

有项目管理员、开发管理员、系统分析员、设计员、开发员、质量管理员、测试管理员、测试设计员、测试员
担任过测试管理员、测试设计员、测试员

61.测试用例设计的原则是什么?目前主要的测试用例设计方法有哪些?
61.LoadRunner 分为哪三个模块?请简述各模块的主要功能。

Virtual User Generator:用于录制脚步
Mercury LoadRunner Controller:用于创建、运行和监控场景
Mercury LoadRunner Analysis:用于分析测试结果

62.你对测试最大的兴趣在哪里?为什么?

最大的兴趣就是测试有难度,有挑战性!做测试越久越能感觉到做好测试有多难。曾经在无忧测试网上看到一篇文章,是关于如何做好一名测试工程师。一共罗列了 11,12 点,有部分是和人的性格有关,有部分需要后天的努力。但除了性格有关的 1,2 点我没有把握,其他点我都很有信心做好它。刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着做测试需要很多技能才能做的好,虽然入门容易,但做好很难,比开发更难,虽然当时我很想做开发(学校专业课我基本上不缺席,因为我喜欢我的专业),但看到测试比开发更难更有
挑战性,想做好测试的意志就更坚定了。
我觉得做测试整个过程中有 2 点让我觉得很有难度(对我来说,有难度的东西我就非常感兴趣),第一是测试用例的设计,因为测试的精华就在测试用例的设计上了,要在版本出来之前,把用例写好,用什么测试方法写?(也就是测试计划或测试策略),如果你刚测试一个新任务时,你得花一定的时间去消化业务需求和技术基础,业务需求很好理解(多和产品经理和开发人员沟通就能达到目的),而技术基础可就没那么简单了,这需要你自觉的学习能力,比如说网站吧,最基本的技术知识你要知道网站内部是怎么运作的的,后台是怎么响应用户请求的?测试环境如何搭建?这些都需要最早的学好。至少在开始测试之前能做好基本的准备,可能会遇到什么难题?需求细节是不是没有确定好?这些问题都能在设计用例的时候发现。
第二是发现 BUG 的时候了,这应该是测试人员最基本的任务了,一般按测试用例开始测试就能发现大部分的 bug,还有一部分 bug 需要测试的过程中更了解所测版本的情况获得更多信息,补充测试用例,测试出 bug。还有如何发现 bug?这就需要在测试用例有效的情况下,通过细心和耐心去发现 bug 了,每个用例都有可能发现 bug,每个地方都有可能出错,所以测试过程中思维要清晰(测试过程数据流及结果都得看仔细了,bug 都在里面发现的)。如何描述 bug 也很有讲究,bug 在什么情况下会产生,如果条件变化一点点,就不会有这个 bug,以哪些最少的操作步骤就能重现这个bug,这个bug产生的规律是什么?如果你够厉害的话,可以帮开发人员初步定位问题。

63.当开发人员说不是 G BUG 时,你如何应付?

开发人员说不是 bug,有 2 种情况,

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

因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比 ISO 质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。#####65.如果有机会转成开发人员,你会去做开发工作吗?
如果公司确实需要我可以从事开发,但我还是喜欢做测试,我认为我更适合做测试。

66.软件测试分哪些阶段?各阶段的含义?

分为单元测试、集成测试、确认测试、系统测试、验收测试。单元测试是最小单位的测试,测试独立模块;
集成测试主要测试模块之间的接口是否正常,
确认测试类似于冒烟测试通常在大规模系统测试之前验证版本主要功能是否实现,版本的稳定性是否可以进入系统测试,
系统测试是全面测试验证系统是否满足用户需求包括功能、性能、兼容性等等。
验收测试是用户参与的测试。

67.一份测试计划应该包括哪些内容?

背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。

68.什么是兼容性测试?请举例说明如何利用兼容性测试列表进行测试。

主要验证软件产品在不同版本之间的兼容性。包括向下兼容和交错兼容,向下兼容是测试软件新版本保留它早期版本功能的情况,
交错兼容是验证共同存在的两个相关但不相同的产品之间的兼容性。

69.对某软件进行测试,发现在 8 WIN98 上运行得很慢,怎么判别是该软件存在问题还是其软硬件运行环境存在问题?

看软件的运行环境要求。如果符合要求则是程序存在问题,若不符合要求则是硬件系统存在问题

70.需求测试的注意事项有哪些?

是否使用了公司的模板
文档内容是否符合规范
所有的需求是分级是否清析适当?
所有的需求是否具有一致性
需求是否可行(即,该需求组合有解决方案)
需求可否用己知的约束来实现
需求是否足够(即,可以把它送到一个规范的开发组织,并有一个生产出所需要产品的合理的可能性)
所有的其它需求是交叉引用是否正确
用户描述是否清楚
是否用客户的语言来描述需求
每个需求描述是否清楚没有岐义,可以移交给一个独立的组去实现时也能理解
是否所有的需求都是可验证的
是否每条需求都具有独立性,即使发生了变化也不会影响其它需求
性能指标是否明确
非功能性需求是否得到充分表现
是否完整列出适用的标准或协议
标准和协议之间是否存在冲突

71.请简述一下缺陷的生命周期。

提交分配处理返测关闭(返测和处理为循环
本文参考:http://blog.csdn.net/mj813/article/details/52451355

上一篇下一篇

猜你喜欢

热点阅读