软件测试考试知识点分享

01

软件测试的流程是什么?(测试流程)

(1)需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价。

(2)制定初步的项目计划。

(3)测试准备:组织测试团队、培训、建立测试和管理环境等。

(4)测试设计:按照测试要求进行每个测试项的测试设计,包括测试用例的设计和测试脚本的开发等。

(5)测试实施:按照测试计划实施测试。

(6)测试评估:根据测试的结果,出具测试评估报告。

02

软件测试标准工作流程?(测试流程)


答案1:测试需求澄清;制定测试计划,任务分工明确;制定模块测试方案;编写测试用例;测试用例评审;测试环境测试数据准备;执行测试用例;缺陷提交跟踪闭环,交付功能稳定时在此阶段可进行性能、安全、易用性、兼容性等测试;输出测试报告,用户操作手册;产品或实施团队验收、用户验收;上线交付

答案2:获取测试需求;编写测试计划;指定测试方案;设计测试用例;执行测试;提交缺陷报告;测试分析与评审;提交测试总结

03

请回答以下测试的相关流程是什么?

需求测试—>概要设计测试—>详细设计测试—>单元测试—>集成测试—>系统测试—>验收测试

04

软件计划工作的目的是什么?工作的内容都包括什么?

(1)软件测试计划工作的目的是:知道测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅流通,跟踪和控制测试进度,应对测试过程中的各种变更。

(2)测试计划工作的内容从宏观上来说是规划测试活动的范围、方法和配置资源;从具体战术上是测试详细规格、测试用例

(3)最重要的是测试策略和测试方法(最好能先评审)。

05

测试计划编写6要素(5W1H)

why—为什么要进行这些测试;

what—测试哪些方面,不同阶段的工作内容;

when—测试不同阶段的起止时间;

where—相应文档,缺陷的存放位置,测试环境等;

who—项目有关人员组成,安排哪些测试人员进行测试;

how—如何去做,使用哪些测试工具以及测试方法进行测试

06

做好测试,要注意以下几点?

(1)熟悉需求。要将需求的每一个细节都熟悉到,才能够确保测试用例覆盖的全面。

(2)绘制脑图。要将分析好的需求,绘制成测试的思路图,条理清晰,方便测试。

(3)编写用例。根据分析好的需求,结合思维导图,编写测试用例。要充分测试每一个功能点,使用“等类价、边界值”等多种测试方法。

(4)跟踪bug。时刻跟进bug的修改进度。及时验证已经修复的bug。

(5)总结测试过程和遇到的问题,找到解决问题的方法,提升测试水平。

07

根据你的经验说说你对软件测试/质量保证的理解?

软件质量测试保证与测试是根据软件开发阶段的规格说明和程序的内部而精心设计的一批测试用例(即输入数据和预期的输出结果),并根据这些测试用例去运行程序,以发现错误的过程。它是对应用程序的各个方面进行测试以检查其功能、语言有效性及外观排布。


08

没有产品说明书和需求文档的情况下能够进行黑盒测试吗?

这个问题是国内测试工程师经常遇到的问题,根源就是国内软件开发文档管理不规范,对变更的管理方法就更不合理了。实际上没有任何文档的时候,测试人员是能够进行黑盒测试的,这种测试方式我们可以称之为探索测试,具体做法就是测试工程师根据自己的专业技能、领域知识等不断地深入了解测试对象、理解软件功能,进而发现缺陷。

在这种做法的基础上,把软件当成了产品说明书,测试过程中要和开发人员不断的进行交流。尤其在做项目的时候,进度压力比较大,可以作为加急测试方案。最大的风险是不知道有些特性是否被遗漏。


09

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

(1)功能性:功能完备性、功能正确性、功能适用性、功能性的依从性

(2)性能效率:时间特性、资源利用率、容量、性能效率的依从性

(3)兼容性:共存性、互操作性、兼容性的依从性

(4)易用性:可辨识性、易学性、易操作性、用户差错防御性、用户界面舒适性、易访问性、易用性的依从性

(5)可靠性:成熟型、可用性、容错性、易恢复性、可靠性的依从性

(6)信息安全性:保密性、完整性、抗抵赖性、可核查性、真实性、信息安全性的依从性

(7)维护性:模块化、易安装性、易替换性、可移植性的依从性

10

黑盒测试需要哪些技术和工具?


黑盒测试技术一般指设计测试案例技术,测试阶段,测试案例设计方面有常见的等价类,边界值,因果图,错误猜想,正交试验,容错,易用性,兼容性测试等;

工具有qc,数据库,ftp,fiddler,jira,jemeter等;测试阶段单元测试,集成测试,系统测试,回归测试,验收测试,上线后的试运行

11

发现的缺陷越多,说明软件缺陷就多么?


这是一个比较常见的现象。测试工程师在没有找到缺陷前会绞尽脑汁的思考,但是找到一个后,会接二连三的发现很多缺陷,颇有个人成就感。其中的原因主要如下:

(1)代码复用、拷贝代码导致程序员容易犯相同的错误。类的继承导致所有的子类会包含基类的错误,反诬拷贝同一代码意味可能也复制了缺陷。

(2)程序员比较劳累是可以导致某些连续编写的功能缺陷,程序员加班是一种司空见惯的现象,因此体力不只是容易编写一些缺陷较多的程序,而这些连续潜伏缺陷恰恰是测试工程师大显身手的地方。

(3)“缺陷一个连着一个”不是一个客观规律,只是一个常见的现象。如果软件编写的比较好,这种现象就不常见了。测试人员只要严肃认真的测试程序就可以了。

12

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


软件产品的质量特性有8个,分别为:

(1)功能性:功能完备性、功能正确性、功能适用性、功能性的依从性

(2)性能效率:时间特性、资源利用率、容量、性能效率的依从性

(3)兼容性:共存性、互操作性、兼容性的依从性

(4)易用性:可辨识性、易学性、易操作性、用户差错防御性、用户界面舒适性、易访问性、易用性的依从性

(5)可靠性:成熟型、可用性、容错性、易恢复性、可靠性的依从性

(6)信息安全性:保密性、完整性、抗抵赖性、可核查性、真实性、信息安全性的依从性

(7)维护性:模块化、易安装性、易替换性、可移植性的依从性

13

软件测试有哪些分类?(三种划分方式)


按照不同的划分方式,有不同的分类。

(1)按照开发阶段划分:

软件测试可分为:单元测试、集成测试、系统测试、确认测试和验收测试

(2)按照测试实施组织划分:

软件测试可分为开发方测试、用户测试、第三方测试。

(3)按照测试技术划分:软件测试可分为:白盒测试、黑盒测试、灰盒测试

也可划分为静态测试和动态测试


14

你觉得怎么才能最大限度地保证软件质量?


测试并不能够最大限度的保证软件的质量,软件的高质量是开发和设计出来的,而不是测试出来的,它不仅要通过对软件开发流程的监控,使得软件开发的各个阶段都要按照指定的规程进行,通过对各个阶段产物的评审,QA对流程的监控,对功能及配置的审计来达到开发的最优化。当然测试也是保证软件质量的一个重要方式,是软件质量保证工程的一个重要组成部分。

15

你在测试中发现一个bug,但开发经理认为这不是bug,你该怎么办


首先,将问题提交到缺陷管理库进行备案

然后,要获取判断的依据和标准:(1)根据需求说明书,产品说明、设计文档等,确认实际结果是否与计划又不一致的地方,提供缺陷是确认的直接依据;(2)如果没有文档依据,根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;(3)根据用户的一般使用习惯,来确认是否是缺陷;(4)与设计人员,开发人员和客户代表等相关人员探讨,确认是否是缺陷;

继而,合理论述,客观严谨的向测试经理说明自己的判断理由

最后,等待测试经历做出最终的决定,如果仍然存在争议,可以向公司政策所提供的渠道,向上级反映,并由上级作出决定。

16

描述测试人员在每个软件生命周期中所负责的?


需求分析阶段:测试需要了解项目是干什么的、业务是什么?功能都有哪些?充分了解后有助于书写测试用例覆盖完整,评估测试工作范围提前安排;

概要设计阶段:测试需要了解软件的实现架构\原理,方便测试深入及定位问题

开发计划:测试需要掌握开发的计划,以便于书写测试的计划。评估测试的时间、风险,以达到上线的时间要求;

编码:编码阶段研发提测可能会分阶段提交,测试就可以介入进行集成测试;

提测:正式提测后,需要进行系统测试工作;

上线:上线后不算结束,测试需要进行线上跟踪测试,以防不可预知的问题出现。

17

测试分工有什么好处?

测试分工能避免人员思维局限性,同样一个案例,由不同人来执行,可能发现不同的问题,因为不同测试人员思维方式、能力、经验不一样,因此合理分工、交叉测试能避免遗漏Bug

18

进入正式测试前要做什么?


应该先进行冒烟测试,冒烟测试通过后才能进入正式测试,提前准备好数据和搭建好测试环境


19

回归测试要注意哪些问题?

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,因此首先要意识到回归测试的必要性,不要麻痹大意。而且回归测试假如时间非常紧,我们需要注意选择最合适的测试用例执行回归。

20

什么是敏捷测试?或者叫迭代测试?


敏捷、渐进、迭代测试就是说项目为了快速上线供客户使用,先出一个基础版本,再在

这个版本基础的上不断的进行迭代开发、测试、上线。我们公司基本上一个月有两个版本。

21

敏捷测试测试要点在哪?

敏捷测试如果迭代的速度比较快的话,一定要做好回归测试,在迭代过程中,新的功能可能在上个版本的功能上进行更改的,所以如果回归测试没有做好的话,容易漏测试点。老的功能比较容易出问题。这也是敏捷测试比较大的风险。

22

请描述如何划分缺陷与错误严重性和优先级级别?


严重性表示软件缺陷所造成的危害和恶劣程度;优先级表示修复缺陷的重要程度和次序。

严重性划分为:

(1)严重:系统崩溃、数据丢失、数据毁

(2)较严重:操作性错误、结果错误、遗漏功能

(3)一般:小问题、错别字、UI布局、罕见故障

(4)建议:不影响使用的瑕疵或更好的实现。

优先级

(1)最高级优先级:立即修复,停止进一步测试

(2)次高级优先级:在产品发布之前必须修复

(3)中等优先级:如果时间允许应该修复

(4)最低优先级:可能会修复,但是也可能会发布

23

Bug的生命周期?


23、bug的生命周期?

答:Bug的生命周期,就是一个bug被发现到这个bug被关闭的过程,生命周期中一般缺陷状态:新建、指派、已解决、待验、关闭。如果待验证的bug在验证是没有解决好,我们需要重新打开(激活)→指派→已解决→待验,循环这个过程,中间其他状态:重新打开、拒绝、延期等。

24

软件的缺陷等级应如何划分?


A类—严重错误,包括以下各种错误:

1. 由于程序所引起的死机,非法退出 

2. 死循环 

3. 数据库发生死锁

4. 因错误操作导致的程序中断

5. 功能错误

6. 与数据库连接错误 

7. 数据通讯错误

B类—较严重错误,包括以下各种错误:

1. 程序错误

2. 程序接口错误

3. 数据库的表、业务规则、缺省值未加完整性等约束条件

C类—一般性错误,包括以下各种错误:

1. 操作界面错误(包括数据窗口内列名定义、含义是否一致)

2. 打印内容、格式错误 

3. 简单的输入限制未放在前台进行控制 

4. 删除操作未给出提示 

5. 数据库表中有过多的空字段

D类—较小错误,包括以下各种错误:

1. 界面不规范 

2. 辅助说明描述不清楚 

3. 输入输出不规范 

4. 长操作未给用户提示 

5. 提示窗口文字未采用行业术语

6. 可输入区域和只读区域没有明显的区分标志E类—测试建议

25

一条软件缺陷记录应该包含哪些内容?如何提交高质量的软件缺陷记录?


答:一条bug信息至少需要以下几条:

1.bug标题阐述

2.bug大体的内容bug产生的模块

3.bug对应的版本

4.bug严重级别

优先级:

1.bug详细现象

2.描述包括bug出现的操作步骤

3.报错日志信息

4.bug截图等等。

提交高质量的软件缺陷记录需要做到以下几点:唯一性。一个bug说明一个问题或者说明一类问题可重现。提供这个bug的精确步骤,要让开发人员容易看懂一致性。Bug描述及所有信息要前后一致,不可有歧义完整性。能附带bug现象截图的就带截图,有报错日志的就贴上日志信息客观性。Bug描述不要带有个人观点,不要对开发人员进行评价,对事不对人

26

请说一下如何写测试用例?


(1)测试人员尽早介入,彻底理解清楚需求,这个是写好测试用例的基础

(2)如果以前有类似的需求,可以参考类似需求的测试用例,然后还需要看类似需求的bug情况

(3)清除输入、输出的各种可能性,以及各种输入的之间的关联关系,理解清楚需求的执行逻辑,通过等价类、边界值、判定表等方法找出大部分用例

(4)找到需求相关的一些特性,补充测试用例

(5)根据自己的经验分析遗漏的测试场景

(6)多总结类似功能点的测试点,才能够写出质量越来越高的测试用例

(7)书写格式一定要清晰

27

Get和Post的区别

1)请求参数位置不同,post在正文,get在url后边用?隔开

2)post一般用来发送数据,get一般用来请求数据

3)post请求相对安全一点

4)get容易被浏览器缓存,post不会被浏览器缓存

5)get请求数据不超过2K,post无限制

28

Join连接

1)内外连接:只显示满足on条件的数据

2)左外连接:join左边的表为主表,左表数据全显示,右表数据只显示满足on条件的数据,其他的用null代替

3)右外连接:join右边的表为主表,右表数据全显示,左表数据只显示满足on条件的数据,其他用null代替

4)全外连接:两表数据全显示,不满足on条件的用null代替

29

测试用例有哪些模块

编号,名称,功能模块,操作步骤,预置条件,预期结果,测试结果,备注

30

测试报告中包含哪些内容

1) 首页

2) 引言:目的、背景、缩略语、参考文献。

3) 测试概要:测试方法、测试范围、测试环境、测试工具。

4) 测试结果与缺陷分析:功能测试、性能测试。

5) 测试结论与建议:项目概况、测试时间、测试情况、结论性能汇总。

6) 附录:缺陷统计

31

Bug管理工具

tapd,禅道,jira等

32

编写测试用例的具体方法

1.等价类,2 边界值,3.错误推导法 T 4.场景法,因果图,判定表

33

如何判断是不是一个Bug

A.根据需求,需求文档明确说了,但是软件不符合,

B.任何影响用户使用,或者用户认为不好用,或者不好看的,都可以认为是 Bug.

34

Alpha和Beta的区别Alpha测试

是在真实的环境,由公司内部人员执行 beta 测试:俗称公测,比如很多游戏在正式上线之前都有一个公测,是指在真实的环境,由 真实的用户来测试。

35

Bug的生命周期

bug生命周期:新建--提交--确认--分配制--修复--验证bai--关闭。

36

Bug缺陷记录都包含哪些内容

编号,标题,缺陷类型,所属模块,前置条件,重现步骤,预期结果和实际结果

37

测试模板图

V模型图:是软件开发瀑布模型的变种,对于测试的地位起到了强调的作用,但是测试介入的时间还是太晚,容易让问题在项目后期才发现。

W模型图:测试在一开始就介入,可以及早发现问题尽早解决。但是W模型只适合从需求阶段开始的首次开发项目

33

测试分类


按照阶段划分-单元测试、集成测试、系统测试、验收测试

按照实施方划分-alpha测试、beta测试、第三方测试

按照技术划分-黑盒 白盒 冒烟 随机 性能 功能 安全。。。

39

Bug定位

bug定位前端页面提示看console报错network看请求参数判断是否是前端问题network看响应,看日志判断是否是后端问题查询服务器日志网络 请求/响应数据信息  代码debug调试信息执行sql

40

Cookie和Session的区别

Cookie是浏览器本地存储

Session是服务器为了追踪会话状态,存储在服务器

Cookie里面会存储sessionid,跟session绑定

41

Http与Https的区别

加密/不加密,带证书,不带证书,默认端口

"协议名不一样

https加密传输,http明文传输

https需要安装证书,http不需要

默认端口号不同

https默认端口号为443

http默认端口号为80"

42

常见Http响应状态码

200 成功

302 重定向

400 请求错误

404 请求资源不存在

405 请求方法不支持

415 请求媒体类型不支持

500 服务器内部错误

502 网关错误"

43

Tcp协议三次握手四次挥手

三次握手

 客户端请求建立连接

 服务同意建立连接

 客户端建立连接成功

四次挥手

 客户端请求断开连接

 服务器同意断开连接

 服务器与客户端的连接

 客户端确认断开连接

44、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!   

黑盒测试的优点有:比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关;  从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;在做软件自动化测试时较为方便。

黑盒测试的缺点有:不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;自动化测试的复用性较低。

白盒测试的优点有:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐    藏的问题。

白盒测试的缺点有:程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。


45、说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试

自顶向下集成

优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。

缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。

适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。

2、自底向上集成

优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。

缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

46:你所了解的的软件测试类型都有哪些,简单介绍一下。

按测试策略分类:1、静态与动态测试2、黑盒与白盒测试 3、手工和自动测试 4、冒烟测试 5、回归测试;

按测试阶段分类:单元测试、集成测试、系统测试;

其他常见测试方法:1、功能测试 2、性能测试 3、压力测试 4、负载测试 5、易用性测试 6、安装测试 7、界面测试 8、配置测试 9、文档测试 10、兼容性测试 11、安全性测试 12、恢复测试

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

白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果

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

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

因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

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

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

50:测试结束的标准是什么?

从微观上来说,在测试计划中定义,比如系统在一定性能下平稳运行72小时,目前Bug Tracking System中,本版本中没有一般严重的BUG,普通BUG的数量在3以下,BUG修复率90%以上等等参数,然后由开发经理,测试经理,项目经理共同签字认同版本Release。

如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。

你可能感兴趣的:(软件测试考试知识点分享)