首页 > 话题社 > 文字游戏 > 百度开发测试面试题

百度开发测试面试题

时间:2018-04-19   来源:文字游戏   点击:

【www.gbppp.com--文字游戏】

百度开发测试面试题 第一篇_2014最新百度开发测试工程师笔试题

一、简答题

1、在浏览器输入一个url回车后,说明将要发生哪些过程。

2、一个输入框能输入文字,图片,视频;请编写一个测试用例。

3、简述C/S和B/S的不同。

二、编程题

1、长为N的数组A,元素大小范围是1~N-1,写一个算法判断数组A里是否有重复元素,要求复杂度为 O(n)。

2、一个数组比如 int a[] = {1,2,3,-6,2,4},求其最大的两个子数组的和,比如a数组分为{1,2,3}和{2,4},所以和为6+6 = 12

3、一个数组比如int a[] = {1,2,-3,2,4,-1,7},求其最大子数组的和的大小。比如a的最大子数组是{2,4,-1,7},所以最大子数组和为12.(注意第二题和第三题子数组的定义不同)

三、设计题

现在一般网站会提供一个功能,比如微博,当你进入微博,再关闭浏览器,当下次进入的时候直接进入主页而不需要你重新登录。

(1)、如何保证数据的安全性和有效性。

(2)、你如何设计,请画出简要设计图。

(3)、存在哪些安全问题,你怎么解决。

(4)、现在HTML5有哪些新的技术,可以用来解决上述问题吗?

百度开发测试面试题 第二篇_百度质量部面试题

针对质量部测试开发

1.几种常见算法看下,能够大概描述出来算法的过程,复杂度(排序、查找等)

2.给你设定几种场景,让你解答:比如给你两部手机,让你站在一百层楼高的地方,假设在第n层手机摔下就会摔破,问你怎样用着两部手机确定这个临界层。

(场景测试-百度质量部)

3.怎样知道一个链表里是否有环的存在,以及确定环的位置 如何确定两个链表是否有相同的部分

4.网络一些知识,比如http几次握手的情况,ack等包,结束是否只能由服务器段先断开之类的。网络几层,常见网络设备属于哪层?

5.测试几种方法.

6.给定一个很大文件,内存里放不下,怎样搜索里面是否有需要的关键字,从百度搜索内容,描述一下大致的过程

7. 从网上找找百度质量部面试面试题目

8. C语言 内存分配机制(堆栈区别,静态存储区)

9. 数组指针和指针数组有什么区别

10、海量搜索问题 找找海量搜索面试题看看

百度搜索关键字放在一个大文件里,该文件在内存里装不下,用户可以输入关键字,在文件里查找关键字,看关键字是否在该文件里,给一个解决方案。(用Hash方法)

11、搜索的原理 在百度页面输入关键字,得到搜索结果,解释一下这个过程是什么样的

12.深度搜索算法 单链表 就地 反转

13.Linux常见的命令看看(必考)

14、TCP与UDP的区别

15、网络设备

16、socket

1.对Linux内核有一定的了解;

2.熟悉数据库的使用,

3.熟悉基本的网络配置及路由器、交换机等网络设备的配置;

4.了解TCP/IP协议

5.测试流程 有几种方式像什么白盒 黑盒 功能测试 性能测试 单元测试等等

1.自我介绍啦 项目相关的

2.多准备 多看看常见面试题

3.还有网上关于质量部面试的题目 这些比较有针对性一些

实际遇到的面试题

一面

首先要自我介绍

1、进程与线程的区别

一面第一个问题,自我介绍都没介绍完说了我知道的一些,他都说没答到点子上,问到底要怎么答,面试的GG让我自己上网搜答案。。。

2、标准模板库STL 用过的库函数 (一面)

3、做过的有关测试的项目,没有问很细,测试用例是不是自己写的,根据做的项目,设计怎么测试自己的项目

4、静态函数库、动态函数库 区别 自己做的项目是属于动态的还是静态的

5、Linux编程怎么样(百度貌似基本上程序都跑在linux上,这个肯定要问到) 我直接答的linux常用命令还可以,在linux环境下做过实验,内核不了解

算法题

大部分是告诉他思路,面试官哥哥会把问题简化,再一点点启发,一点点给问题加条件,要把自己思想解释懂给他听,练练口才啊~还有准备好纸笔,一些代码,不好凭空想象~

1、在栈中,找出最小值,给出push pop 求最小值min函数(不破坏栈的原始的顺序、用最小的时间)

2、矩阵中 横排 每行的数据是从小到大的,竖排 每一列也是从小到大 给出一个数用最快的时间查找一个数是否在矩阵中(空间复杂度)

3、括号匹配 { 【 ( 看左右括号是否匹配 数学规则:{【(

1)不考虑数学规则

2)考虑数学规则

最后要把第三个 跟面试GG讨论完解决的思路后,把这个代码写一下,发给他,限时近一个小时,可以用伪代码,一开始说的,写代码的时候不用挂电话,后来就是说了机房不能说话,就让我把电话挂了~

二面

二面还是先自我介绍,的第一个问题,集合数的存储模式,一听就有点懵了,啥是集合数??委婉的告诉她不知道什么是集合数,她就说,存储模式有数组等,我当时很乱,就把我自己理解的,所有在内存中存储模式的,那些,数组、链表、栈、堆、常量区等等,都答了,想想真2。

之后围绕之前做过的项目问的比较多,比较详细,详细到了一些功能的实现,遇到的问题,怎么解决的等等,根据项目问了数据库的语句,找出数据中最大的前十个,给忘了,就说了C++中的实现方法,还自己引申了一下,答了内存中放的下的数据怎么处理、放不下怎么处理、找出最大的前十个怎么处理,前一万个怎么处理。。。

也是回答了一些测试的题,测试一个函数,设计测试用例,函数功能:两个已经排好序的数组,合并成为一个有序数组。

做过的白盒测试 实验 自动化测试 有没有写过脚本语言

问了 测试网络是否连通 ping命令

Linux 我还是像一面那么答的,这回让我列出了我自己熟悉的linux命令,我就说了一些,她问了一个退出vim怎么退出,就回答了,保存退出,不保存退出的命令等等。

还问了 编码量最大的项目,最近半年自学的东西,自学的途径等等。

我每次最后都要面试我的人给我一些建议,一是有些人给的建议很诚恳,像小米,直接说基础太差,要我好好学习基础;二是,基本上可以知道还有没有机会接着面了~直接问有没有戏,别人不一定会说。

百度开发测试面试题 第三篇_一套比较完整的软件测试人员面试题

你为什么选择软件测试行业

因为之前有了解软件测试这个行业,觉得他的发展前景很好。也对

我在里面主要是负责所分到的模块执行测试用例。 结合你以前的学习和工作经验,你认为如何做好测试。 根据我以前的工作经验,我认为做好工作首先要有一个好的沟通,只有沟通无障碍了,才会有好的协作,才会有跟好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就问,实时与同事沟通这样的话才能做好测试工作。

你觉得测试最重要的是什么

尽可能的找出软件的错误

怎样看待加班问题

加班的话我没有太多的意见,但是我还是觉得如果能够合理的安排时间的话,不会有太多时候会加班的。 如果一个很有个性的程序员认为自己的BUG不是BUG,怎么解决?

首先我要确定我所提的在我认为是不是bug,如果我认为是的话我会在他面前重现这个bug和他讲这是个bug,和他沟通,或者我会找到我的直系领导让他解决。

为什么在团队中要有测试

因为软件有错误,如果没有专业的测试人员很难发现软件的一些错误。

在测试时代学习自己最大的收获是什么?

在测试时代我除了学习了测试的知识外,还看到了老师们对待测试的一种态度,明白了做任何工作都要有沟通,做测试的也要有很好的沟通才可以做好。知道自己在项目组中的位置,和开发的关系。 我想在工作中慢慢的积累经验,使自己强大起来,能够担任更重要的职务。

自己优势及缺点 爱说话,习惯做不习惯说,但是和人沟通还是没有问题的。

你为什么选择测试时代不选择51testing

因为相对比来看测试时代价钱相对公道,师资也不错,还有一个原因就是在网上查了一下测试时代的口碑不错,也是网放心过来的原因。 13.请谈谈您对测试工作的理解 我认为测试工作是找出软件产品的错误,

14.你认为测试人员需要具备哪些素质? 我认为做测试的应该要有一定的协调能力,因为测试人员要经常与开发接触处理一些问题,如果处理不好的话会引起一些冲突这样的话工作上就会做不好。还有测试人员要有一定的耐心,有的时候做的测试很枯燥乏味的。除了要有耐心之外还要细心,不放过每一个可能的错误。

15.你为什么能够做测试这一行。 虽然说我的测试技术还不是很纯熟,但是我觉得我还是可以胜任软件测试这个工作的,因为做软件测试不仅是要求技术好,还要有一定的沟通能力,耐心、细心等外在的因素。综合起来看我认为我是胜任这个工作的。

1测试的目的是什么?

测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。

资料来源:中国教育在线

/retype/zoom/04ef3a7fa5e9856a5712602d?pn=3&x=0&y=0&raww=165&rawh=20&o=jpg_6_0_______&type=pic&aimh=20&md5sum=cd7b7591b251666cb7dd2f1225aa3cc8&sign=961ab9e115&zoom=&png=23206-34765&jpg=13756-15347" target="_blank">

首先我要测它的外观、颜色是否符合要求、她所占的空间是多大、是否环保、接下来测它的质量、这支笔是否能够写字流畅、写出的自得颜色是否符合要求、能使用多长时间等

Bug出现的位置、可重现的步骤、所使用的数据、bug的截图、发现人及日期。

26. 请列举一些Oracle数据库中的SID语句

27. W和H模型的区别

W模型强调的是测试伴随整个软件开发周期,而且测试的对象不仅是程序,需求也需要进行测试,测试与开发是同步进行的。 H模型是讲测试活动玩却的独立出来,形成了完全独立的流程,可以实现迭代而W模型不支持迭代这是两者最打的区别。

28. 没有任何说明书,如何进行测试?

首先是通过对软件测使用来熟悉整个软件,接着是与开发沟通掌握软件的特性并一一记录下来,作为测试的依据。

29. 测试计划包括那些内容那些重要? 测试计划包括:产品基本情况的调研、测试需求说明、本阶段测试策略和记录、测试资源配置、计划表、问题跟踪报告、测试计划的评审、结果等。 重要的有产品的调研、资源配置、计划表、问题跟踪报告、评审。

31. 什么是回归测试

回归测试是代码别修改后,或bug被修改后,进行的测试。主要目的是确认修改的程序火别修改的bug没有引起新的错误或者导致其他代码产生错误。

33. 执行SQL脚本工具的是? 查询分析器

34. java web应用的三层结构

35. cookie和session什么意思,有什么区别

Cookie是在浏览网页是留在本地的记录,不是很安全。

Session与cookie功能相似,比期安全

36. 负载测试、可靠性测试、可用性测试的定义,有什么区别

负载测试是持续加压是的表现,测系统处理数据的能力表

资料来源:中国教育在线 /retype/zoom/04ef3a7fa5e9856a5712602d?pn=4&x=0&y=0&raww=601&rawh=19&o=jpg_6_0_______&type=pic&aimh=15.174708818635606&md5sum=cd7b7591b251666cb7dd2f1225aa3cc8&sign=961ab9e115&zoom=&png=34766-46242&jpg=15348-20068" target="_blank">

53你用的手机,有一天突然不能输入“6”,你怎么来判断问题出在哪

资料来源:中国教育在线 /retype/zoom/04ef3a7fa5e9856a5712602d?pn=5&x=0&y=0&raww=175&rawh=19&o=jpg_6_0_______&type=pic&aimh=19&md5sum=cd7b7591b251666cb7dd2f1225aa3cc8&sign=961ab9e115&zoom=&png=46243-57600&jpg=20069-21766" target="_blank">

与开发、客户在一起评审,对需求文档进行测试。 熟悉所给的文件,熟悉网站,写出测试计划、方案,由测试组长分配模块,再由每个人些本模块的测试计划、方案,接着进行测试用例的编写、对用例的评审、用例的执行、bug的跟踪、提交bug报告

58. Gogo项目的测试计划是如何出来的?

根据说明文档找处整个网站的重点模块,根据其要求和对网站实际操作得来的信息在于同组人协商讨论写出测试计划。

59. 请使用DOS命令备份一个名为:TEST,用户名及密码为:user/password的oracle数据库到d盘根目录下保存文件名为test。简述在oracle中建立一个可用实例的主要步骤(提示:从建库描述到初始基本数据)可用性判断标准主要是主观的感觉,请思考,有没有一些量化的标准,从而可以更加客观地评价可用性的好坏?

60. 现在一个程序实现这样的功能:读入三个整数值,这三个整数值表示三角形的三个边长,该程序打印信息表明三角形是不等边三角形、等腰三角形或等边三角形。请开发一个测试用例集测试该程序,注意涵盖尽可能多的情形,并加入适当的出错处理

(1)正常的不等边三角形

(2)正常的等边三角形【百度开发测试面试题】

(3)正常的等腰三角形,包括两条相等的边的三种不同的排列方法

(4)正常的直角三角形

(5)正常等腰直角三角形,包括两边相等的三种不同的排列方法

(6)退化的三角形(即,两边之和等于第三边),包括三种不同的排列方法

(7)三条边不能构成三角形(两边之和小于第三边),包括三种排列方法

(8)一条边长度为零,两条边为零,三边为零的9种排列方法

(9)输入数据包含负数

(10)输入数据不全(只知道2边的长度不知道第三边) (11)输入的数据不符合程序规定的数据类型.

下表为程序测试的数据:

测试功能 测试数据

a b c

1. 等边 8,8,8 –,–,–, –,–,–

2. 等腰 8,10,8 10,8,8 8,8,10

3. 不等边 8,10,12 8,12,10 12,10,8

资料来源:中国教育在线

百度开发测试面试题 第四篇_阿里巴巴测试开发工程师笔试题

1、关于无向图经常采用的存储方式及其描述错误的是____。

A、如果采用关联链表存储,那么表头节点数一般就是顶点个数

B、如果采用关联链表存储,那么边表节点数一定是偶数

C 如果采用关联矩阵存储,那么当边稀疏时,存储效率较低

D 如果采用关联矩阵存储,那么当边稀疏时,存储效率较低

E 如果采用关联矩阵存储,当节点是固定的时候,可以用二维数组来表示该关联矩阵

F 如果采用关联矩阵存储,当删除某一节点,那么只需将节点对应的行全置为0即可

2、假设一棵二叉查找树有5个不同的键,已知在查找时出现了最坏的情况(即查找某个键时,需要遍历树上的所有节点),那么符合条件的二叉查找树共有____种形态。

3、一张1024×640分辨率的图片,假定每个像素用16位色彩表示,用位图文件(bitmap)格式存储,则这张图片文件需要占用多大的存储空间____。

4、t1表有4笔记录,t2表有5笔记录,下列表连接的写法中,____一定会返回20笔记录。

A select * from t1 left outer join t2 on t1.c1=t2.c1;

B select * from t2 left outer join t2 on t2.c1=t1.c1;

C select * from t1, t2;

D select * from t1 inner join t2 on t1.c1=t2.c1;

E select * from t1 full outer join t2 on t1.c1=t2.c1;

F 以上都不会

5、一台刚刚接入互联网的WEB服务器第一次被访问到时,不同协议的发生顺序是下面中的____。

A ARP -> DNS -> HTTP

B ARP -> HTTP -> DNS

C DNS -> HTTP -> ARP

D DNS -> ARP -> HTTP

E HTTP -> ARP -> DNS

F HTTP -> DNS -> ARP

6、两个市区C1和C2,其人口比率是1:3,从今年的患病统计来说,C1市区由于污染严重,患癌的概率是0.1%,而C2市的患癌概率是0.02%,现在医院接收到一位患癌病人,他是C1市区来的概率是____。

7、在一个6*6的棋盘里放置4个互不攻击的车的方案数为____。

8、

#include <stdint.h>

#include <stdio.h>

void print_size(int32_t array[10]){

printf("%d\n", sizeof(array));

}

int main () {

int32_t myArray[10];

printf("%d ", sizeof(myArray));

print_size(myArray);

}

9、有8只球队,采用抽签的方式随机配对,组成4场比赛。假设其中有4只强队,那么出现强强对话(任意两只强队相遇)的概率是____。

10、给定一个整数sum,从有N个有序元素的数组中寻找元素a、b,使得 a+b 的结果最接近sum,最快的平均时间复杂度是____。

12、以下关于STL的描述中,____是错的。

A STL容器是线程不安全的

B 当容量不够时,vector内部内存扩展方式是翻倍

C std::sort可以是不稳定排序

D std::string中可以存储多个’\0’字符

E std::bitset是一个存储bit的STL容器

F std::stack默认是用deque实现的

13、一个具有513个节点的二叉树,有___种可能的层高。

14、一张1024×640分辨率的图片,假定每个像素用16位色彩表示,用位图文件(bitmap)格式存储,则这张图片文件需要占用多大的存储空间____。

15、假设一棵二叉查找树有5个不同的键,已知在查找时出现了最坏的情况(即查找某个键时,需要遍历树上的所有节点),那么符合条件的二叉查找树共有____种形态

16、用一个整形数组实现一个有固定上界为100个的堆栈,实现push,pop,size方法并编写代码对堆栈进行功能测试,语言使用Java,C#或C++均可

17、一个有generic的固定上界的堆栈,class Stack<T> {…}, 有

push,pop,size方法。编写测试程序,并编写一个测试数据生成器,能够为测试这个堆栈生成所需的测试数据。

18、定义broad match,一个词组的单词如果是另一个词组单词的子集,就认为是个borad match,例如对于 "a b c","a", "b c" "c a" "a b c"都匹配,而 "a d"不匹配。现有一个搜索匹配模块,输入为用户的查询来匹配一个词组字典,找到字典中所有可以和输入broad match的词组,输出预定的词组整型序号。例如"cheap iphone in china",字典中

有 1. "cheap iphone", 2. "cheap mobile", 3 "china iphone",则1和3匹配。设计性能测试报告(语言描述)以完整描述述被测模块的性能,例如但不限于 "性能曲线y反映查询速度相对x变化,其他不变时的查询速度,x单位为Ux,y单位为Uy"

百度开发测试面试题 第五篇_软件测试基础(经典测试面试题答案)

软件测试基础教程

测试的基本概念

测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的稳定化阶段。

1、 测试的分类:

从测试方法的角度可以分为手工测试和自动化测试。

手工测试:不使用任何测试工具,根据事先设计好的测试用例来运行系统,测试各功能模块。 自动化测试:利用测试工具,通过编写测试脚本和输入测试数据,自动运行测试程序。目前最常用的自动化测试工具是基于GUI的自动化测试工具,基本原理都是录制、回放技术。 从整体的角度可以分为单元测试、集成测试、系统测试、确认测试。

单元测试:是针对软件设计的最小单位—程序模块,进行正确性检验的测试工作。一般包括逻辑检查、结构检查、接口检查、出错处理、代码注释、输入校验、边界值检查。

单元测试的依据是系统的详细设计;一般由项目组开发人员自己完成。

集成测试:在单元测试的基础上,将所有模块按照设计要求组装进行测试。一般包括逻辑关系检查、数据关系检查、业务关系检查、模块间接口检查、外部接口检查。

系统测试:系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。

确认测试:模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。

从测试原理上分为:白盒测试、黑盒测试和灰盒测试。

白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。

黑盒测试:是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时,把程序看作一个不能打开的黑盆子, 在完全不考虑程序内部结构和内部

特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求

规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。黑盒测试

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

等价类划分:

是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.

1) 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,

【百度开发测试面试题】

可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.

有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.

无效等价类:与有效等价类的定义恰巧相反.

设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性.

边界值分析:

长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,

而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以

查出更多的错误。

错误推测法:

基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例。

灰盒测试:灰盒测试就像黑盒测试一样是通过用户界面测试,但是测试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的。甚至于还读过部分源代码。因此测试人员可以有真对性地进行某种确定的条件/功能的测试。

从软件特性上分为功能测试和性能测试。

功能测试:是指为了确保软件系统功能实现的正确性,完整性和其他特性而进行的测试。

性能测试:是指为了评估软件系统的性能状况,和预测软件系统性能趋势而进行的测试和分析。

2、 BUG的定义:

BUG:(小错误,缺陷,不足,过失 „) 一个计算机bug指在计算机程序中存在的一个错误

(error)、缺陷(flaw)、疏忽(mistake)或者故障(fault),这些bug使程序无法正确的运行。Bug产生于程序的源代码或者程序设计阶段的疏忽或者错误。

Defect:(缺陷) 在软件工程(Software Engineering)中,软件与它的需求(requirements)不一致,常常指软件无法正确完成需求所要求的功能,也称之为bug。

Fault:(故障)被定义为存在于组件、设备或者子系统中异常的条件或者缺陷,常常会导致系统的失败。

Error:(错误) 一个error是指编写错误的代码,通常是无意中造成的。一般有两类主要的错误,一是语法错误(syntax error),该类错误易于检测,因为代码在编译阶段无法解析而不能正常编译通过。另一个是逻辑错误(logical error),因为它与代码的实际执行密切相关所以不易发现。

二、 项目测试的规划

项目测试内容:

将项目测试分为项目开发阶段测试和项目完工验收测试两个部分。

开发阶段测试内容主要包括:模块功能测试、集成测试和文档检查。

模块功能测试:确保系统各功能模块能够正常运行,数据的IPO符合系统设计的要求。单元和模块功能满足需求定义。

集成测试:系统各模块组装后,根据业务流程的要求,能够正确地完成各业务功能,并且数据的处理和输出正确。

文档检查:在项目开发阶段,按照项目进度表,根据《项目文档测试规范与标准》,对提交的项目文档和记录(技术文档和管理文档)进行检查和验证,以符合公司质量体系和项目制度的要求,对于技术类文档的关键要素,验证是否能够达到通过标准。

完工验收测试内容主要包括:安装测试、功能验证、性能测试、需求验证、文档测试。完工验收测试实际上是项目在结项前的一个全面的检查和验证。可以作为项目结项的依据和放行条件。 需求测试:检查软件产品是否满足该项目的需求说明书中规定的功能需求,检查需求的完整性、一致性、最新性,该项测试重点是需求满足的完整性。

安装测试:根据项目提供的安装文档中的安装步骤,搭建系统运行环境,检查系统安装过程是否正确。可能包括数据库服务器的安装与配置、应用服务器、控件注册、客户端的安装与配置、应用软件的安装。

功能验证:按照需求说明书和系统概要设计,逐项检查各项功能(功能单元、功能模块)的可运行性和正确性。

文档测试:文档测试从项目立项时就开始了,实际上就是文档检查,包括规范性检查和有效性检查。目的是使项目相关的文档和记录既规范又有意义,不是为了应付的无用文件。对于技术文档如:需求说明书、概要设计、详细设计等,在技术评审时也进行了评测。用户文档,如安装手册、用户操作手册,根据文档检查规范进行。

性能测试:这部分测试的来源,严格来讲,取决于用户对软件特性的一些特定要求,另外,就是公司的开发部门对产品的一些基本的性能要求。若用户从业务的角度考虑,对软件产品本身有特定的非功能要求,则必须在软件需求说明书中加以说明,使之具有可度量和可测试性。对于一些多用户环境或数据处理能力和负载方面的测试,很难通过手工搭建测试环境来测试,所以可以参考使用一些专门的性能测试工具和手工测试相结合的方式。

项目测试的基本流程:

1、 项目测试启动:项目立项后,在测试配置库中创建项目。

2、 测试计划:系统详细设计后,制定测试计划,准备测试资源。

3、 设计测试用例,主要是与业务相关的测试用例。

4、实施功能模块测试,搭建运行或开发环境,采用功能模块测试表的方式,开发人员在功能模块测试表中更新进度状态,测试人员在该表中描述测试进度。形成测试错误列表,该表对每个错误都有相应的测试记录与之链接,在测试记录中,详细描述错误的情况。在测试记录中还要包括修正信息和验证信息。

5、错误关闭后,测试人员维护测试记录表和更新测试用例库和问题库,作为经验积累。

6、项目在结项时,测试人员进行项目完工验收测试,填写项目测试报告。该测试报告可作为用户验收的输入工件。

三、 功能测试方法与内容

1、数据输入测试:向系统输入数据或输入数据库操作命令时,一般是测试系统对数据库中数据操作的过程。

数据类型测试:由于不同的数据库系统对数据类型要求的不同,在定义数据库表时,也规定了数据字段的数据类型。测试步骤和方法:在系统的数据维护功能界面上,录入或修改数据时,特意输入非系统设计的数据类型,检查系统是否可以接受,若不能接受则检查是否满足了系统在这方面的设计要求,如即刻清除非法内容、输入焦点不能到下一输入位置、出现系统自定义的提示信息、不允许出现开发工具的报错信息等。若系统可以接受并保存,则要看数据库表的字段类型设计是否与用户或习惯上不一致,并且要注意其他模块在调取该数据时,是否有特定要求。

边界值测试:根据数据取值范围的要求,输入符合取值范围的数据、取值范围的上、下限和超过取值范围的数据。注意,除要测试数据库系统本身数据类型取值范围外,还要根据软件系统设计中的一些特定要求,设计测试用例来测试。

数据合法性测试:测试人员除了要测试输入数据是否满足所使用数据库系统本身的数据类型和取值范围的要求外,还应该根据经验和软件系统和需求的特定要求检查输入数据的合法性。比如:日期合法性(出生年月、参保日期、发生时间、根据习惯和业务逻辑顺序对日期合理性的要求等)。工资、比例、率等,都要注意输入的合理、合法性。【百度开发测试面试题】

单引号和双引号:不要忽略输入单引号和双引号可能引起的错误和数据问题。在功能录入界面上,在某字段的输入框输入了包括单引号和双引号的数据,以后在通过Select 语句查询时可能会出问题。特别在基于WEB方式的系统,输入了单引号,在查询数据记录时,肯定会出现页面链接错误(页面无法链接或找不到或链接对象错误)。

空值测试:在测试数据录入或修改的功能界面时,若不输入任何东西,系统又没有设计成NOT NULL,则这时,要非常注意其影响。因为数据可以正常保存,但数据表该字段是空值,那么所有与该字段有关的操作,如:查询(AND)、计算(累加、连乘)等,则可能出现数据问题(计算结果为0,无记录返回)。对于测试人员首先要检查系统到底是作为空值,还是作为空串或空字符处理。另外对于允许不输入任何值的字段,在测试过程中,要检查是否在界面显示或打印报表时,这些字段作为了关键要素或标题等情况。

空格:在数据维护的功能界面上,输入数据时,要注意是否在输入位置有空格,首先看系统设计时,是怎么考虑的,若系统允许输入空格,则检查条件查询或作为调用参数时的数据返回情况;另外检查程序是否使用了去掉空格的函数。

数据校验的不一致:测试时,对于一些编号、编码、代码等主键或作为查询或调用条件的字段,要注意系统对他们的输入合法性检查与查询或调用条件的要求是否是一致的。特别是对于数据结构设计中没有特定约束,而由程序进行校验控制的情况。

分析:数据输入测试的主要目的是保证输入到系统中数据的合法、合理性。我觉得,数据输入过程的检查是非常重要的,若在编程过程中,不注重数据的校验功能,虽然看起来加快了开发进度,但给以后会带来一些不可预计的编程或维护工作量。

2、目录路径测试:测试系统中规定的路径要求,更改路径,检查系统的是否可以正确运行及系统的排错功能。测试时,根据系统设计说明书(详细设计)或通过对程序源代码的熟悉,找出系统运行过程中指定的路径或在运行过程中,需要使用者选择路径的地方。特意更改路径(选择正确的路径、选择另外的路径、输入不存在的路径)。检查系统是否具有路径上的容错性和灵活性。比如,原则上在程序中,最好不要写绝对路径,另外可以提供配置路径的对话框,若输入了非法路径,系统有无提示等。

3、 数据操作测试:包括数据操作测试和用户界面操作的测试。

修改、新增数据:对于新增和修改数据,要注重以下几个方面的测试。界面上,新增数据成功后,数据列表是否立即刷新,输入有错误时,是否清空错误的数据,输入焦点是否得以控制。在提示信息上,是否有保存成功的提示,输入有错误时,提示的错误信息是否准确,可读。数据方面,要通过SQL检查数据提交是否正确。

删除数据:

本文来源:http://www.gbppp.com/hts/437675/

推荐访问:测试面试题百度云 百度软件测试面试题

热门文章