测试开发工程师必知必会

来源:互联网 发布:node.js为什么不火了 编辑:程序博客网 时间:2024/05/21 03:20

本文转载:http://jingyan.baidu.com/article/c85b7a641404ee003bac95a7.html
    :http://www.cnblogs.com/siwy/p/5330099.html

回归测试、白盒测试、黑盒测试等概念

回归测试
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。

回归测试包括两部分:函数本身的测试、其他代码的测试。在

对被修改的函数重新测试。如果函数的设计功能没有变化,直接运行函数测试就可以了。如果修改了设计功能,则要根据增减的功能点,增加或删除测试用例。另外,还要完成白盒覆盖。

函数代码的修改可能导致调用该函数的代码产生错误,所以需要测试其他代码。如果函数是私有函数并且未涉及到全局变量,应运行类测试,否则应运行工程测试。在函数列表中选择类测试或工程测试,编译运行测试工程,即可执行对其他代码的回归测试。

白盒测试

  白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

  “白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。

黑盒测试

  黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。 “黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。

============================
白盒测试技术 (White Box Testing)
深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试。这一阶段测试以软件开发人员为主,在 JAVA 平台使用 Xunit 系列工具进行测试, Xunit 测试工具是类一级的测试工具对每一个类和该类的方法进行测试。
软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:
– 对程序模块的所有独立的执行路径至少测试一次;
– 对所有的逻辑判定,取 “ 真 ” 与取 “ 假 ” 的两种情况都至少测试一次;
– 在循环的边界和运行界限内执行循环体;
– 测试内部数据结构的有效性,等。
具体包含的逻辑覆盖有: – 语句覆盖 – 判定覆盖 – 条件覆盖 – 判定-条件覆盖 – 条件组合覆盖 – 路径覆盖。

黑盒测试技术( Black Box Testing )
黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,设计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术涵盖了测试的方方面面,可以考虑以下方面

正确性 (Correctness)
计算结果,命名等方面。

可用性 (Usability)
是否可以满足软件的需求说明。

边界条件 (Boundary Condition)
输入部分的边界值,就是使用一般书中说的等价类划分,试试最大最小和非法数据等等。

性能 (Performance)
正常使用的时间内系统完成一个任务需要的时间,多人同时使用的时候响应时间在可以接受范围内。 J2EE 技术实现的系统在性能方面更是需要照顾的,一般原则是 3 秒以下接受, 3-5 秒可以接受, 5 秒以上就影响易用性了。如果在测试过程中发现性能问题,修复起来是非常艰难的,因为这常常意味着程序的算法不好,结构不好,或者设计有问题。因此在产品开发的开始阶段,就要考虑到软件的性能问题

压力测试 (Stress)
多用户情况可以考虑使用压力测试工具,建议将压力和性能测试结合起来进行。如果有负载平衡的话还要在服务器端打开监测工具 , 查看服务器 CPU 使用率,内存占用情况,如果有必要可以模拟大量数据输入,对硬盘的影响等等信息。如果有必要的话必须进行性能优化 ( 软硬件都可以 ) 。这里的压力测试针对的是某几项功能。

错误恢复 (Error Recovery)
错误处理,页面数据验证,包括突然间断电,输入脏数据等。

安全性测试 (Security)
这个领域正在研究中,防火墙、补丁包、杀毒软件等的就不必说了,不过可以考虑。破坏性测试时任意看了一些资料后得知 , 这里面设计到的知识 \ 内容可以写本书了 , 不是一两句可以说清的,特别是一些商务网站,或者跟钱有关,或者和公司秘密有关的 web 更是需要这方面的测试,在外国有一种专门干这一行的人叫安全顾问,可以审核代码,提出安全建议,出现紧急事件时的处理办法等,在国内没有听说哪里有专门搞安全技术测试的内容。

兼容性 (Compatibility)
不同浏览器,不同应用程序版本在实现功能时的表现不同的上网方式,如果你测试的是一个公共网站的话。

白箱测试和黑箱测试是什么?什么是回归测试?答题建议:简述下概念即可。单元测试、集成测试、系统测试的侧重点是什么?答题建议:围绕重点简单概括即可。如下:单元测试的重点是系统的模块,包括子程序的正确性验证等。集成测试的重点是模块间的衔接以及参数的传递等。系统测试的重点是整个系统的运行以及与其他软件的兼容性。设计用例的方法、依据有那些?答题建议:测试分为白盒测试和黑盒测试,回答时,要注意分开说。白盒测试用例设计有如下方法:基本路径测试、等价类划分、边界值分析、覆盖测试、循环测试、数据流测试、程序插桩测试、变异测试。依据就是详细设计说明书及其代码结构。黑盒测试用例设计方法:基于用户需求的测试、功能图分析方法、等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验设计方法。依据是用户需求规格说明书,详细设计说明书。一个测试工程师应具备那些素质和技能?答题建议:一个好的测试工程师,不仅要基础扎实,对自身的性格、责任心都有非常高的要求。具体如下:(1)掌握基本的测试基础理论(2)本着找出软件存在的问题的态度进行测试,即客观吧,不要以挑刺形象出现(3)可熟练阅读需求规格说明书等文档(4)以用户的观点看待问题(5)有着强烈的质量意识(6)细心和责任心(7)良好的有效的沟通方式(与开发人员及客户)(8)具有以往的测试经验(9)能够及时准确地判断出高危险区在何处.集成测试通常都有那些策略?答题建议:大致说四点即可,当然说全更好。集成测试有十种策略:(1)大爆炸集成(2)自顶向下集成(3)自底向上集成(4)三明治集成(5)分层集成(6)基干集成(7)基于功能的集成(8)基于消息的集成(9)基于风险的集成(10)基于进度的集成.

测试开发工程师面试题目

1、什么是兼容性测试?兼容性测试侧重哪些方面?

主要检验的是软件的可移植性,检查软件在不同的硬件平台软件平台上是否可以正常的运行。细分会有:平台的兼容,网络兼容,数据库兼容,数据格式的兼容等。

2,常用的测试方法有哪些?

黑盒测试,白盒测试,静态测试和动态测试,手工测试和动态测试,回归测试,公测。

3,白盒测试和黑盒测试的区别?

黑盒测试是功能性测试,一般采用穷举输入测试,不会考虑内部的逻辑和实现。兼容性,安全性测试,压力测试,性能测试。

白盒测试是结构测试,一般是穷举路径测试,检测内部逻辑驱动结构。 – 语句覆盖 – 判定覆盖 – 条件覆盖 – 判定-条件覆盖 – 条件组合覆盖 – 路径覆盖。

4,静态测试和动态测试有什么区别?

静态测试是指不运行程序本身,仅通过分析程序文档结构,软件执行过程,检测程序的正确性,主要有变量,借口,递归等。

动态方法是指运行程序,检查运行结果与预期结果对比差异,并分析抗压性,健壮性等,这种测试包括三部分:构造测试实例,执行程序,分析程序输出结果。

区别一:静态测试是用于预防的,动态测试是用于矫正的
区别二:多次的静态测试比动态测试要效率和效益高
区别三:静态测试综合测试程序代码
区别四:在相当短的时间里,静态测试的覆盖度能达到100%,而动态测试经常是只能达到50%左右,原因动态测试发现的bug大部分只是在测试实际执行的那部分代码
区别五:动态测试比静态测试更花时间
区别六:静态测试比动态测试更能发现 bug
区别七:静态测试的执行可以在程序编码编译前,动态测试只能在编译后才能执行
区别八:静态测试能发现动态测试所不能发现的一些:”Syntax error,code that hard to maintain,code that hard to test,code that does not confirm to coding standard, and ANSI violations”

5、正交表测试用例设计方法的特点是什么?

  参考答案:

  用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;

  对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;

  具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。

6、什么是bugzilla?

是一套开源的bug追踪系统,可以管理软件开发中bug的提交,指派,修复,关闭等功能管理。提高测试和开发人员沟通效率。

7、测试用例设计的完整过程?

    1,需求分析,

    2,根据需求分析,得出测试需求

    3,设计测试方案

    4,评审设计方案,

    5,通过后设计测试用例,

    6,测试用例评审

    7,测试

8、什么是loadrunner

是一个自动化负载测试工具,通过模拟上千万用户实施并发负载及实时性能检测,他能预测系统行为并评估系统性能,原理是通过代理方式获得客户端与服务器端的数据流。分为用户动作设计,场景设计,测试数据设计三个部分。

9、Beta测试与Alpha测试有什么区别?

Beta是用户实际使用的测试,没有开发者在场,Alpha测试是公司内部测试,有开发者监控。

10、工作版本的定义

一般一个软件在不断的升级优化中会产生不同的版本号,每一次变化较大或有重大特点出现的时候,会升级版本号第一个号,比如1.x,2.x,版本发布后一般会有bug修复的版本,这时候就是1.x,2.x等。

11、什么是桩模块?什么是驱动模块?

集成测试前要为被测模块编辑一些模拟其下级功能的子模块的替身,以代替被测模块的借口,接受或者传递数据,这些假模块被称为桩模块。

驱动模块一般为主程序,它接收测试数据并将这些数据传递到被测试模块。

12、什么是扇入和扇出?

扇入是指该模块被调用的次数,扇入大,说明该模块的复用性好。

扇出是指该模块调用其他模块的个数,扇出大,说明该模块的业务逻辑复杂。

13、你认为做好测试工作的的关键是什么?

目的,管理,规范。

  1. 明确测试的目标,增强测试计划的实用性,2.坚持“5W”规则,明确内容与过程

3.采用评审和更新机制,保证测试计划满足实际需求,4. 分别创建测试计划与测试详细规格、测试用例

14、简述一下缺陷的生命周期?

提交->确认->分配->修复->验证->关闭

15,、软件的安全性应该从哪几个方面去测试?

    1,用户认证机制,

    2,加密机制

    3,安全防护策略,安全日志等,

    4,数据备份和恢复

    5,防病毒系统。

16、单元测试,集成测试,系统测试的区别?

测试方法不同:单元测试属于白盒测试,集成测试属于灰盒测试,系统测试属于黑盒测试。

考察范围测试重点不同:单元测试注重单元内部的数据结构,逻辑控制,异常处理。

集成测试注重模块之间的接口及接口之间的数据传递,系统测试注重满足需求。

基准不同:单元测试主要的逻辑覆盖,集成测试主要是接口覆盖,系统测试是测试用例对需求规格的覆盖率。

17、用户文档包括哪些?

用户手册

安装设置

联机帮助,指南向导,

示例模板,

授权注册登记表

最终用户许可协议

0 0
原创粉丝点击