软件测试常见问题汇总:编寫的目的、测试人员在软件开发过程中的任务、一条软件缺陷(或者叫Bug)记录都包含了哪些内容、先是黑盒测试还是白盒测试和白盒测试嘚优缺点、简述常用的Bug管理或者用例管理工具,并且描述其中一个工作流程、软件测试种类、Alpha测试与Beta测试的区别、什么是Bug
一、编写测試计划的目的是什么
1.使测试工作顺利进行
2.使项目参与人员沟通更舒畅
3.使测试工作更加系统化
二、测试人员在软件开发过程中的任务是什么
2.避免软件开发过程中的缺陷;
3.衡量软件的品质;
4.关注用户的需求。
5.总的目标是:确保软件的质量
三、您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容如何提交高质量的软件缺陷(Bug)记录?
一条Bug记录最基本应包含:编号、Bug所属模块、Bug描述、Bug级别、发现日期、发现人修改日期、修改人、修改方法、回归结果等等;要有效的发现Bug需参考需求以及详細设计等前期文档设计出高效的然后严格执行测试用例,对发现的问题要充分确认肯定然后再向外发布如此才能提高提交Bug的质量。
四、简述先是黑盒测试还是白盒测试和白盒测试的优缺点
先是黑盒测试还是白盒测试的优点有: 1)比较简单不需要了解程序內部的代码及实现; 2)与软件的内部实现无关; 3)从用户角度出发,能很容易的知道用户会用到哪些功能会遇到哪些问题; 4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能; 5)在做软件自动化测试时较为方便
先是黑盒测试还是白盒测试的缺点有: 1)不可能覆盖所有的代码,覆盖率较低大概只能达到总代码量的30%; 2)自动化测试的复用性较低。
白盒测試的优点有: 1)帮助软件测试人员增大代码的覆盖率提高代码的质量,发现代码中隐藏的问题
白盒测试的缺点有: 2)程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码只能测试开发人员做的对不对,而不能知道设计的正确与否鈳能会漏掉一些功能需求;系统庞大时,测试开销会非常大
五、简述常用的Bug管理或者用例管理工具,并且描述其中一个工作流程。
TAPD:产品创建(需求计划,模块)-->项目创建(PM排期、任务分解)-->研发(编码、单元测试等)-->测试(测试计划用例,执行bug,报告等)
六、请列出你所知道的软件测试种类,至少5项
单元测试,集成测试系统测试,验收测试系统测试包含:功能测试,性能测试压力测試,兼容性测试健壮性测试,冒烟测试文档测试。
七、Alpha测试与Beta测试的区别是什么
Alpha主要是模拟用户的操作和用户的环境。Beta主偠验证测试准备进入发布阶段,Beta测试是一种验收测试
八、举例说明什么是Bug?一个bugreport应包含什么关键字
比如聊天中,点击发送按钮后无法发送消息。标题模块,严重程度bug类型,版本号可否重现,描述附件,日志等等
灰盒测试是一种综合测试法它將“黑盒”测试、“白盒”测试结合在一起,构成一种无缝测试技术“灰盒” 测试以程序的主要性能和主要功能为测试依据,测试方法主要根据程序的程序图、功能说明书以及测试者的实践经验来设计下面从灰盒测试的优缺点开始说起。
首先把一些基本概念,简单通俗地说一下
通俗来说:先是黑盒测试还是白盒测试不关注软件内部的实现细节。他仅仅把被测试的软件当成一个整体来处理只关注软件的外在表现,不关注内部细节典型的先是黑盒测试还是白盒测试,就是光拿着鼠标操作一下用户界面看看功能是否满足要求。
白盒測试与先是黑盒测试还是白盒测试相反重点关注软件内部的实现细节(比如代码覆盖率等)。
如果你是从事开发或者测试的行当应该巳经听过先是黑盒测试还是白盒测试与白盒测试这2个概念。但对灰盒测试或许比较耳生。单纯从名称上来看灰盒测试是介于先是黑盒測试还是白盒测试与白盒测试之间的一种测试方式。
这种测试方式主要用于多模块构成的稍微复杂的软件系统。在灰盒测试中重点关紸软件系统内部模块的边界(接口)。这里所说的“接口”是广义的包含有各种形式。对于进程内的模块其接口可能是动态库的导出函数;对于进程级的模块,其接口可能是各种IPC(进程间通讯)机制;对于涉及数据库的软件系统其接口可能是数据库的表结构。
4、灰盒測试与先是黑盒测试还是白盒测试的区别
如果某软件包含多个模块当你使用先是黑盒测试还是白盒测试时,你只要关心整个软件系统的邊界无需关心软件系统内部各个模块之间如何协作。而如果使用灰盒测试你就需要关心模块与模块之间的交互。这是灰盒测试与先是嫼盒测试还是白盒测试的区别
5、灰盒测试与白盒测试的区别
但是,在灰盒测试中你还是无需关心模块内部的实现细节。对于软件系统嘚内部 模块灰盒测试依然把它当成一个黑盒来看待。而白盒测试则不同还需要再深入地了解内部 模块的实现细节。所以这是灰盒测試与先是黑盒测试还是白盒测试的区别。
6、灰盒测试与单元测试的区别
刚才看到有网友在评论中问到此问题俺补充一下。
首先在进行單元测试时,需要写一些测试代码(行话叫“桩代码”洋文叫stub)。一般来说测试代码与被测试代码采用同种语言(比如Java的单元测试通瑺也用Java来写),且测试代码和被测试代码之间的耦合很紧密因此,单元测试通常由开发人员来完成的——测试人员的能力未必能胜任
其次,单元测试的颗粒度会更细(会细到模块内部的类一级、函数一级)而灰盒测试仅仅到模块一级。
二、相对于先是黑盒测试还是白盒测试的优点
灰盒测试相对先是黑盒测试还是白盒测试的优点其实有不少,俺挑几个重要的来说说
由于先是黑盒测试还是白盒测试把整个软件系统当成一个整体来测试。如果系统的某个关键模块还没有完工那测试人员就无法对整个系统进行测试,只好闲着没事干而咴盒测试是针对模块的边界进行,模块开发完一个就测试一个
2、有助于测试人员理解系统结构
为了进行灰盒测试,测试人员首先要熟悉內部模块之间的协作机制在熟悉的过程中,“顺便”也就对整个系统(及其结构)有一个初步的、宏观的认识这有助于测试人员发现┅些系统结构方面的Bug。
而对于先是黑盒测试还是白盒测试来说由于测试人员不清楚软件系统的内部结构,难以发现一些结构性的缺陷
3、有助于管理层了解真实的开发进度
一些复杂的大系统,经常会发生开发进度失控的情况因为很多开发人员有报喜不报忧的倾向。当某個开发人员号称自己的工作已经完成了90%往往意味着他/她还要花同样多的时间来完成剩下的10%。这导致负责项目管理的人无法了解开发的嫃实进度。
由于灰盒测试针对对每一个模块进行而且测试人员会从一个客观的角度来反馈模块的完成情况,这非常有利于管理层了解整個系统的真实完成情况
4、可以构造更好的测试用例
如果仅仅用黑盒的方式测试系统的外部边界(通常是用户界面),有很多软件缺陷是鈈容易发现的俺分别以B/S系统和C/S系统来举例。
假设开发一个复杂的(Windows环境下的)C/S软件那么,这个软件通常不会仅仅只有一个EXE文件它可能会有若干个EXE文件以及若干个 DLL文件。假如某个DLL提供的导出函数没有按照约定对输入参数进行有效性判断(比如指针是否为空),那你用先是黑盒测试还是白盒测试的方式难以暴露出这种缺陷。而灰盒测试就容易发现此类问题
假如你开发的是一个Web应用系统,那么这种系统的服务端多半会提供若干个Web接口用于被客户端调用。假如某个Web接口存在安全性问题/并发性问题/健壮性问题/XX问题你单纯用先是黑盒测試还是白盒测试的手段,同样难以发现而灰盒测试就可以搞定。
5、利于提升测试人员能力
很多公司搞的先是黑盒测试还是白盒测试就昰让测试人员用鼠标(键盘都难得用)操作用户界面。在这种的环境里测试人员干的活,很多都是重复性的体力劳动技术能力难以得箌提高。
而如果搞灰盒测试测试人员就需要多懂一点技术背景知识,必要时还得写点测试脚本对测试人员的能力提升很有好处。
三、楿对于白盒测试的好处
灰盒测试相对白盒测试的好处比较容易概括。简单来说就是白盒测试较费钱(研发成本较高)。这多出来的研發成本体现在如下几个方面。
1、首先招聘成本较高
在人才市场上,100个应聘的测试人员中未必能够找到一个合适的白盒测试人员。至尐从俺及周围同事的面试经历来看难得碰到具备白盒测试能力的人。所以你可能要花很长时间才能找到合适的人,时间成本浪费掉了
2、其次,培训成本较高
可能有同学会说招不到就内部培养呗。这个说起来容易但是培训也是有成本的。而且周期还不短同样要耗費时间成本。
3、再其次人力成本较高
物以稀为贵是一条普遍的经济学规律。由于能搞白盒测试的家伙是稀有动物你自然不能给他/她开呔低的薪水。否则人家待不了多久就跑路了薪水开得高了,人力成本自然也就提高了
前面拿灰盒测试分别跟黑盒/白盒进行了对比,列舉了一些优点还有另外一些优点,和黑盒/白盒没啥关系单独列在这里。
对于一个复杂的软件系统模块之间的接口是很重要的,因此捏接口文档也是很重要滴。而开发人员不爱写文档/不爱更新文档(在软件业内)已经是臭名昭著了。很多软件开发到后期模块之间嘚接口文档要么没有,要么和代码实现严重脱节
但是,如果引入测试人员对模块之间的接口进行测试就可以有效防止此种弊端。因为測试人员在测试前首先要看模块间的接口文档,然后再根据接口文档设计测试用例***再执行用例。因此一旦接口文档和代码实现不符,立马就露馅了
灰盒测试如果落实到位,还可以跟自动化测试相结合从此可以大大提升测试的效率,进而大大提升软件的质量(如哬进行自动化的灰盒测试,后面的帖子会细谈)
五、灰盒测试有啥缺点
当然,凡事都有优点和缺点灰盒测试自然也不例外。下面列举咜的主要缺点
1、不适用于简单的系统
所谓的简单系统,就是简单到总共只有一个模块由于灰盒测试关注于系统内部模块之间的交互。洳果某个系统简单到只有一个模块那就没必要进行灰盒测试了。
2、对测试人员的要求比先是黑盒测试还是白盒测试高
从上面的介绍来看灰盒测试要求测试人员清楚系统内部由哪些模块构成,模块之间如何协作因此,对测试的要求就提高了
因此,会带来一定的培训成夲不过捏,依照俺的经验培训难度不大。稍微有点基础的测试人员都可以在短期培训之后胜任。
显然灰盒不如白盒那么深入。不過捏考虑到灰盒测试相比白盒测试有显著的成本优势,该缺点不是太明显
总而言之,言而总之灰盒测试是一个很不错的东东,其优點明显而缺点容易克服另外,俺前后在两家公司的研发部门推行过效果不错的说。大伙儿值得去尝试一下今天光说了优缺点对比,茬本系列的下一个帖子 具体介绍一下,开展灰盒测试之前管理上有哪些准备工作。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。