1、功能测试,性能测试,界面测试,安全测试(可以简单点,比如只涉及到 COOKIES 里 的内容),压力测试(商业性质的网站) 等等,B/S 软件也要根据其具体功能采用不同的测 试策略。
2、态度、责任心、自信、敏锐的观察力、良好的发散思维
3、先设计后开发模式,加强单元测试,加强代码走查,有一套完整的白盒测试方法。关键 是加强开发人员的质量意识,增进程序员向工程师水平发展。
4、意义嘛,就自己想吧。软件测试的分类,这个很多人都按各种方法去分。无明确答案给 你。
2、对测试的理解——基本的测试知识,对测试是否认可?
101、一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。
参考答案:
计划阶段、设计阶段、白盒单元、白盒集成、黑盒单元、黑盒集成、系统测试、回归测试、验收测试 一套完整的测试应该由五个阶段组成:
1)测试计划首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准。以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。
2)测试设计将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响测试结果的有效性)。 3)测试开发建立可重复使用的自动测试过程。
4)测试执行执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理,测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。
5)测试评估结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。
102、软件测试的类型有那些?分别比较这些不同的测试类型的区别与联系。
参考答案1: 软件测试的分类
从是否关心软件内部结构和具体实现的角度划分 A.白盒测试 B.黑盒测试 C.灰盒测试
从是否执行程序的角度 A.静态测试 B.动态测试
从软件开发的过程按阶段划分有 A.单元测试 B.集成测试 C.确认测试 D.系统测试 E.验收测试
* 测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试。
* 开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。
31
* 集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。
* 确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。
* 系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。
参考答案2:
黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性,只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。
白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。
单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。
集成测试:在单元测试的基础上,对单元模块之间的连接和组装w进行测试。 系统测试:在所有都考虑的情况下,对系统进行测试
103、测试用例通常包括那些内容?着重阐述编制测试用例的具体做法
参考答案:
软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。
用例编号: 测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则: PROJECT1-ST-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。
测试标题: 对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如 “ 测试用户登录时输入错误密码时,软件的响应情况 ” 。
重要级别: 定义测试用例的优先级别,可以笼统的分为 “ 高 ” 和 “ 低 ” 两个级别。一般来说,如果软件需求的优先级为 “ 高 ” ,那么针对该需求的测试用例优先级也为 “ 高 ” ;反之亦然,
测试输入: 提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。
操作步骤: 提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。
预期结果: 提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。
104、在分别测试winform的C/S结构与测试WEB结构的软件是,应该采取什么样的方法分别测试?他们存在什么样的区别与联系?
105、在测试winform的C/S结构软件时,发现这个软件的运行速度很慢,您会认为是什么原因?您会采取哪些方法去检查这个原因?
106、描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程
参考答案:
1、测试人员或开发人员发现bug后,判断属于哪个模块的问题,填写bug报告后,系统会自动通过Email通知项目组长或直接通知开发者。
2、项目组长根据具体情况,重新reassigned分配给bug所属的开发者。 3、开发者收到Email信息后,判断是否为自己的修改范围.
1) 若不是,重新reassigned分配给项目组长或应该分配的开发者。 2) 若是,进行处理,resolved并给出解决方法。(可创建补丁附件及补充说明) 4、测试人员查询开发者已修改的bug,进行重新
32
测试。(可创建test case附件)
1) 经验证无误后,修改状态为VERIFIED。待整个产品发布后,修改为CLOSED。 2) 还有问题,REOPENED,状态重新变为“New\,并发邮件通知。
5、如果这个BUG一周内一直没被处理过。Bugzilla就会一直用email骚扰它的属主,直到采取行 动。管理员可以设定最迟采取行动的期限,比如说3天,系统默认为7天。
107、你都用什么测试方法
针对不同的产品或者系统或者模块,有不同的测试方法。总体而言有白盒测试和黑盒测试。
108、怎么编写案例
案例的编写与测试阶段的定义有很大的关系。系统测试和unit测试的案例可能不同。总体而言测试案例根据系统的需求而定。
109、怎么才能够全面的测试到每一个点
测试的全面性主要需要在设计测试计划的时候考虑,从测试策略,产品需求等等多个角度考虑从而定义全部的测试点。
110、谈谈软件测试技术,以及如何提高 111、谈谈软件测试职业发展,以及个人的打算
112、谈谈软件测试在企业的地位,也可以结合软件生命周期来谈 113、一般公司里实际的软件测试流程是什么样的?你们公司又是怎样的? 114、软件工程师要具有那些素质? 115、你会哪些测试工具?怎么操作?
116、你能不能说下你的3到5年的职业计划(规划) 117、你觉得你来应聘有那些优势? 118、http与https的区别?
参考答案:
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议; http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443; http的连接很简单,是无状态的;
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全 其他问题:(有可能清晰的思路比确切的答案更重要)
对测试的理解——考查点:基本的测试知识,对测试是否认可
谈一谈过去自己的工作——考查点:了解经历、提供进一步提问的素材,表达能力、测试技能 测试设计的方法并举例说明——考查点:测试技术的使用 测试工具——考查点:熟悉程度,能否与当前工作匹配? 如何做计划?如何跟踪计划?——考查点:日常工作能力
如果开发人员提供的版本不满足测试的条件,如何做?——考查点:与开发人员协作的能力 熟悉unix系统、oracle数据库吗?——考查点:是否具备系统知识 做过开发吗?写过哪些代码?——考查点:开发技能
33
阅读英语文章,给出理解说明?——考查点:部分英语能力
文档的意义——考查点:是否善于思考?(最简单的概念,不同层次的理解) 假如进入我们公司,对我们哪些方面会有帮助?——考查点:讲讲自己的特长 随便找一件物品,让其测试——考查点:测试的实际操作能力
有一个新的软件,假如你是测试工程师,该如何做——考查点:实际项目经验、是否有带领测试团队的经验和潜力
开发及环境搭建类面试题
1、描述软件产生内存泄露的原因以及检查方式。(可以结合一种开发语言进行描述)
参考答案:
内存泄露的原因,主要是由于开发过程当中申请了计算机资源(例如对象、内存等),但是使用资源完成以后没有及时释放资源导致的。例如在C语言当中使用了malloc申请了内存,但是未使用free来释放内存。 2、简述什么是值传递,什么是地址传递,两者区别是什么?
参考答案:
值传递主调函数传递给被调函数的是值的拷贝,不是原值;地址传递主调函数传递给被调函数的是值的地址。区别是值传递被调函数中的操作不改变主调函数的值,而地址传递则不同。 3、结构化程序设计和面向对象程序设计各自的特点及优缺点是什么?
参考答案:(不需要回答如此复杂)
结构化程序设计思想采用了模块分解与功能抽象和自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子程序,便于开发和维护。它的重点在于把功能进行分解。但是由于在实际开发过程当中需求会经常发生变化,因此,它不能很好的适应需求变化的开发过程。结构化程序设计是面向过程的。
面向对象程序设计以需求当中的数据作为中心,来进行设计,具有良好的代码重用性。
封装性:也叫数据隐藏,用户无需知道内部工作流程,只要知道接口和操作就可以的,C++中一般用类来实现封装。
继承性: 一种支持重用的思想,在现有的类型派生出新的子类,例如新型电视机在原有型号的电视机上增加若干中功能而得到,新型电视机是原有电视机的派生,继承了原有电视机的属性,并增加了新的功能。
多态性:指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。
动态联编:指一个计算机程序自身彼此关联的过程,按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。 4、简述什么是存储过程和触发器?
参考答案:
存储过程:是数据库中的一个对象,Transact-SQL 语句的预编译集合,这些语句在一个名称下存储并作为一个单元进行处理。(可以理解为C语言中的函数,有参数、返回值等函数特性)
触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。
5、使用C语言编写一个函数,用于交换两个变量的值(地址传递)。
参考答案:
void Swap(int *a,int *b)
34
{
}
6、请简述DNS、活动目录、域的概念。
参考答案:
DNS:域名服务,作用是将网络域名解析成IP地址;
活动目录:微软提供的目录服务的一种,它存储有关网络上的对象信息,并使管理员和用户更方便的查找和使用这类信息;
域:网络系统的一个安全边界,在一个域当中,计算机和用户共享一些列的安全信息。 7、描述TCP/IP协议的层次结构,以及每一层中重要协议。
参考答案:(可以回答五层结构)
TCP/IP 协议 应用层/Application HTTP、SMTP、FTP 传输层/Transport TCP、UDP IP 网络层/Network 链路层/Link ARP、RARP
int temp; int temp=*a; int *a=*b; int *b=temp;
8、简述子网掩码的用途。
参考答案: 子网掩码主要用来判断两个IP地址是否处在同一个局域网当中;子网掩码是由连续的2进制1组成的。子网掩码和IP地址进行按位与运算后,结果一致,表示处于一个局域网当中,如果不一致,表示不再一个局域网当中,需要寻找路由。
9、说出4种以上常用的操作系统及其主要的应用范围(微软的操作系统除外)。
参考答案:
Linux(Red Hat、SUSE、Debian、Trubo Linux):主要用于搭建各类服务器 MAC OS:苹果机的操作系统,用于图像处理 Unix(AIX:IBM服务器的专用操作系统; Solaris:Sun操作系统;FreeBSD、NetBSD)
10、在Linux系统中,一个文件的访问权限是755,其含义是什么?
参考答案: 755表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。
11、Windows操作系统中PATH环境变量的作用是什么?
参考答案: PATH是Windows操作系统环境变量,PATH作用是用户在命令行窗口执行一个命令,则在PATH变量设置的目录下依次寻找该命令或对应的执行文件,若找到,则执行,若没有找到,则命令行窗口返回无效命
35