软件测试的方法根据软件工程的组织和实现方式,有很大差别,有些是比较技术化的方法,有些则是工程方法,主要分为: 黑盒测试方法群:等价类划分、边界值、因果图、基路径法、专家测试法、smoking、场景测试等 白盒测试方法群:同行评审、需求审查、代码审查、接口测试(调用测试和返回测试,需要结合等价类和因果图方法)等。
当在单元层面黑盒而在集成层面白盒时,基本上两类方法就会有结合了,就会出现习惯上说的灰盒测试(说实话,不做到纯产品级开发,基本上都是用的灰盒测试)。
(1)黑盒测试(black-box testing):只关心输入和输出的结果 (2)白盒测试(white-box testing):去研究里面的源代码和程序结构2、按是否运行程序分为:(1)静态测试(static testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在的错误的过程。
静态测试包括:对于代码测试,主要是测试代码是否符合相应的标准和规范。对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。(5)动态测试(dynamic testing),是指实际运行被测程序,输入相应的测试数据,检查输出结果和预期结果是否相符的过程3、按阶段划分:(1)单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
桩模块(stud)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。(2)集成测试(integration testing),是单元测试的下一阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部门。
集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。(3)系统测试(system testing),指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
系统测试的主要依据是《系统需求规格说明书》文档。(4)验收测试(acceptance testing),指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。
验收测试又分为a测试和beta测试,其中a测试指的是由用户、测试人员、开发人员等共同参与的内部测试,而beta测试指的是内测后的公测,即完全交给最终用户测试。4、黑盒测试分为功能测试和性能测试:1)功能测试(function testing),是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
包括逻辑功能测试(logic function testing) 界面测试(UI testing)UI=User Interface 易用性测试(usability testing):是指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。兼容性测试(compatibility testing):包括硬件兼容性测试和软件兼容性测试2)性能测试(performance testing) 软件的性能主要有时间性能和空间性能两种 时间性能:主要指软件的一个具体事务的响应时间(respond time)。
空间性能:主要指软件运行时所消耗的系统资源。软件性能测试分为:一般性能测试:指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。
稳定性测试也叫可靠性测试(reliability testing):是指连续运行被测系统检查系统运行时的稳定程度。负载测试(load testing):是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
压力测试(stress testing):是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。(Validate the system or software can allowed the biggest stress.)5、其他测试类型:回归测试(regression testing)是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。
(When a new build or release is deployed, repeat all the test cases which has executed in the last build or release.) 冒烟测试(smoke testing),是指在对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。(validate the major function is deployed or not in software of system when a new build or release is implement.) 随机测试(random testing),是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
(means or all the test data is random, to validate the some edge bugs.)。
1、从是否关心内部结构来看 (1)白盒测试:又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
(2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。(3)灰盒测试:是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。
2、从是否执行代码看 (1)静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。(2)动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
3、从开发过程级别看 (1)单元测试:又称模块测试,是针对软件设计的最小单位----程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。
(2)集成测试:又叫组装测试或联合,是单元测试的多级扩展,是在单元测试的基础上进行的一种有序测试。旨在检验软件单元之间的接口关系,以期望通过测试发现各软件单元接口之间存在的问题,最终把经过测试的单元组成符合设计要求的软件。
(3)系统测试:是为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。在系统测试中,对于具体的测试类型有:(1)功能测试:对软件需求规格说明书中的功能需求逐项进行的测试,以验证功能是否满足要求。
(2)性能测试:对软件需求规格说明书的功能需求逐项进行的测试,以验证功能是否满足要求。(3)接口测试:对软件需求规格说明中的接口需求逐项进行的测试。
(4)人机交互界面测试:对所有人机交互界面提供的操作和显示界面进行的测试,以检验是否满足用户的需求。(5)强度测试:强制软件运行在异常乃至发生故障的情况下(设计的极限状态到超出极限),验证软件可以运行到何种程序的测试。
(6)余量测试:对软件是否达到规格说明中要求的余量的测试。(7)安全性测试:检验软件中已存在的安全性、安全保密性措施是否有效的测试,(8)可靠性测试:在真实的或仿真的环境中,为做出软件可靠性估计而对软件进行的功能(其输入覆盖和环境覆盖一般大于普通的功能测试) (9)恢复性测试:对有恢复或重置功能的软件的每一类导致恢复或重置的情况,逐一进行的测试。
(10)边界测试:对软件处在边界或端点情况下运行状态的测试。(11)数据处理测试:对完成专门数据处理功能所进行的测试。
(12)安装性测试:对安装过程是否符合安装规程的测试,以发现安装过程中的错误。(13)容量测试:检验软件的能力最高能达到什么程度的测试。
(14)互操作性测试:为验证不同软件之间的互操作能力而进行的测试。(15)敏感性测试:为发现在有效输入类中可能引起某种不稳定性或不正常处理的某些数据的组合而进行的测试。
(16)标准符合性测试:验证软件与相关国家标准或规范(如军用标准、国家标准、行业标准及国际标准)一致性的测试。(17)兼容性测试:验证软件在规定条件下与若干个实体共同使用或实现数据格式转换时能满足有关要求能力的测试。
(18)中文本地化测试:验证软件在不降低原有能力的条件下,处理中文能力的测试。4、从执行过程是否需要人工干预来看 (1)手工测试:就是测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输 入执行,包括与被测软件进行交互(如输入测试数据、记录测试结果等),然后观察测试结果,看被测程序是否存在问题,或在执行过程中是否会有一场发生,属于比较原始但是必须执行的一个步骤。
(2)自动化测试:实际上是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;半自动测试就是指在自动测试过程中,需要手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试)5、从测试实施组织看 (1)开发测试:开发人员进行的测试 (2)用户测试:用户方进行的测试 (3)第三方测试:有别于开发人员或用户进行的测试,由专业的第三方承担的测试,目的是为了保证测试工作的客观性6、从测试所处的环境看 (1)阿尔法测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试 (2)。
1. 等价类划分
常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
2. 边界值分析法
边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
3. 错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.
错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例.
4. 因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.
5. 正交表分析法
有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6. 场景分析方法
指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题
详细的描述一个测试活动完整的过程。1. 项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功
第一类测试方法是试图验证软件是“工作的”,所谓“工作的”就是指软件的功能是按照预先的设计执行的;而第二类测试方法则是设法证明软件是“不工作的”。
还有两大类:白盒法和黑盒法。
白盒法:你清楚程序的流程时,用不同的数据测试你程序的代码,验证程序的正确性,有:条件测试,路径测试,条件组合。。。。
白盒法用在程序开发阶段的前期。
黑盒法:主要用于程序开发阶段的后期,即程序的流程测试正确后,测试程序的结果。有什么因果法,边缘值法等。
具体你可以买本软件工程方面的书看看。
还有一下方法:
功能测试:可接受性测试:用户界面测试:探索或开放'型的测试:性能测试:回归测试:强力测试:集成与兼容性测试:装配/安装/配置测试:国际化支持测试:本地化语言测试:
这些都是测试的方法.
1、恢复测试 恢复测试主要检查系统的容错能力。
当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。恢复测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。
对于自动恢复需验证重新初始化(reinitialization)、检查点(checkpointing mechanisms)、数据恢复(data recovery)和重新启动 (restart)等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。 2、安全测试 安全测试检查系统对非法侵入的防范能力。
安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。例如,①想方设法截取或破译口令;②专门定做软件破坏系统的保护机制;③故意导致系统失败,企图趁恢复之机非法进入;④试图通过浏览非保密数据,推导所需信息,等等。
理论上讲,只要有足够的时间和资源,没有不可进入的系统。因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值。
此时非法侵入者已无利可图。 3、强度测试 强度测试检查程序对异常情况的抵抗能力。
强度测试总是迫使系统在异常的资源配置下运行。例如,①当中断的正常频率为每秒一至两个时,运行每秒产生十个中断的测试用例;②定量地增长数据输入率,检查输入子功能的反映能力;③运行需要最大存储空间(或其他资源)的测试用例;④运行可能导致虚存操作系统崩溃或磁盘数据剧烈抖动的测试用例,等等。
4、性能测试 对于那些实时和嵌入式系统,软件部分即使满足功能要求,也未必能够满足性能要求,虽然从单元测试起,每一测试步骤都包含性能测试,但只有当系统真正集成之后,在真实环境中才能全面、可靠地测试运行性能系统性能测试是为了完成这一任务。性能测试有时与强度测试相结合,经常需要其他软硬件的配套支持。
1)按照测试技术划分
黑盒测试:功能测试,必须
白盒测试:逻辑结构测试,代码的逻辑、算法、结构是否正确,要求必须懂得代码,需要编写测试用例,可选
灰盒测试:介于中间
注意:在单元测试时,白盒应用相对较多,在集成测试时,灰盒测试应用相对较多,在系统、验收测试时一般就不会使用白盒测试和灰盒测试了。
2)按是否需要运行代码划分
静态测试:界面测试,文档测试,代码测试【重点关注代码的规范性,一般检查变量的命名,注释的频率,编程的规范性,不需要写测试用例,一般只需要有代码审查单】
注意:一般经常把白盒测试和静态测试的要素结合在一起,形成静态白盒测试
动态测试:运行程序进行检查,检查实际输出结果和预期结果是否相符
3)按软件特性分类
功能测试
性能测试
这个应该先分析下常见的软件测试安全都包括哪些,比如针对手游类应用,测试维度覆盖:游戏通信协议、服务器健壮性、客户端函数安全、脚本逻辑安全、内存安全、静态资源安全、变速测试等维度。
主要方法有黑盒模型:将程序看作黑盒子、白盒模型:将程序看作路径的组合、模式匹配方法:将程序看作字符串、状态机模型:将程序看作状态机等。
我了解到腾讯有一个平台腾讯WeTest是专门做移动应用测试服务的,建议你去了解下wetest.qq.com
说明:在最符合你的句子前打钩。
每组只选一个答案,请拿出纸和笔写下题目序号和对应的答案,做完全部三十道题目后,按提示分序号计算。 1、关于人生观,我的内心其实是: A 希望能够有尽量多的人生体验,所以会有非常多样化的想法。
B 在小心合理的基础上,谨慎地确定自己的目标,一旦确定会坚定不移地去做。 C 更加注重的是取得一切有可能的成就。
D 宁愿剔除风险而享受平静或现状。 2、如果爬山旅游,在下山回来的路线选择上,我更在乎: A 好玩有趣,所以宁愿新路线回巢。
B 安全稳妥,所以宁愿原路线返回。 C 挑战困难,所以宁愿新路线回巢。
D 方便省心,所以宁愿原路线返回。 3、通常在表达一件事情上,我更看重: A 说话给对方感受到的强烈印象。
B 说话表述的准确程度。 C 说话所能达到的最终目标。
D 说话后周围的人际感受是否舒服。 4、在生命的大多数时候,我的内心其实更加欣喜于和希望多些: A 刺激。
B 安全。 C 挑战。
D 稳定。 5、我认为自己在情感上的基本特点是: A 情绪多变,经常情绪波动。
B 外表上自我抑制能力强,但内心感情起伏极大,一旦挫伤难以平复。 C 感情不拖泥带水,较为直接,只是一旦不稳定,容易激动和发怒。
D 天性情绪四平八稳。 6、我认为自己在整个人生中,除了工作以外,在控制欲上面,我: A 没有控制欲,只有感染带动他人的欲望,但自控能力不算强。
B 用规则来保持我对自己的控制和对他人的要求。 C 内心是有控制欲和希望别人服从我的。
D 不会有任何兴趣去影响别人,也不愿意别人来管控我。 7、当与情人交往时,我倾向于着重: A 兴趣上的相容性,一起做喜欢的事情,对他的爱意溢于言表。
B 思想上的相容性,体贴入微,对他的需求很敏感。 C 智慧上的相容性,沟通重要的想法,客观地讨论辩论事情。
D 和谐上的相容性,包容理解另一半的不同观点。 8、在人际交往时,我: A 心态开放,可以快速建立起友谊和人际关系。
B 非常审慎缓慢地进入,一旦认为是朋友,便长久地维持。 C 希望在人际关系中占据主导地位。
D 顺其自然,不温不火,相对被动。 9、我认为自己大多数时候更是: A 感情丰富的人。
B 思路清晰的人。 C 办事麻利的人。
D 心态平静的人。 10、通常我完成任务的方式是: A 经常会赶在最后期限前完成。
B 自己做,精确地做,不要麻烦别人。 C 先做,快速做。
D 使用传统的方法,需要时从他人处得到帮忙。 11、如果有人深深惹恼我时,我: A 内心感到受伤,认为没有原谅的可能,可最终很多时候还是会原谅对方。
B 深深感到愤怒,如此之深怎可忘记?我会牢记,同时未来完全避开那个家伙。 C 会火冒三丈,并且内心期望有机会狠狠地回应打击。
D 我会避免摊牌,因为那还不到那个地步,那个人多行不义必自毙,或者自己再去找新朋友。 12、在人际关系中,我最在意的是: A 得到他人的赞美和欢迎。
B 得到他人的理解和欣赏。 C 得到他人的感激和尊敬。
D 得到他人的尊重和接纳。 13、在工作上,我表现出来更多的是: A 充满热忱,有很多想法且很有灵性。
B 心思细腻,完美精确,而且为人可靠。 C 坚强而直截了当,而且有推动力。
D 有耐心,适应性强而且善于协调。 14、我过往的老师最有可能对我的评价是: A 情绪起伏大,善于表达和抒发情感。
B 严格保护自己的私密,有时会显得孤独或是不合群。 C 动作敏捷又独立,并且喜欢自己做事情。
D 看起来安稳轻松,反应度偏低,比较温和。 15、朋友对我的评价最有可能的是: A 喜欢对朋友述说事情,也有能量说服别人去做事。
B 能够提出很多周全的问题,而且需要许多精细的解说。 C 愿意直言表达想法,有时会直率而犀利地谈论不喜欢的人、事、物。
D 通常与他人一起是多听少说。 16、在帮助他人的问题上,我倾向于: A 多一事不如少一事,但若他来找我,那我定会帮他。
B 值得帮助的人应该帮助,锦上添花犹胜雪中送炭。 C 无关者何必要帮,但我若承诺,必欲完之而后释然。
D 虽无英雄打虎之胆,却有自告奋勇之心。 17、面对他人对自己的赞美,我的本能反应是: A 没有也无所谓,特别欣喜那也不至于。
B 我不需要那些无关痛痒的赞美,宁可他们欣赏我的能力。 C 有点怀疑对方是否认真或者立即回避众人的关注。
D 赞美总是一件令人心情非常愉悦的事。 18、面对生活的现状,我的行为习惯更加倾向于: A 外面怎么变化与我无关,我觉得自己这样还不错。
B 这个世界如果我没什么进步,别人就会进步,所以我需要不停地前进。 C 在所有的问题未发生之前,就应该尽量想好所有的可能性。
D 每天的生活开心快乐最重要。 19、对于规则,我内心的态度是: A 不愿违反规则,但可能因为松散而无法达到规则的要求。
B 打破规则,希望由自己来制定规则而不是遵守规则。 C 严格遵守规则,并且竭尽全力做到规则内的最好。
D 不喜被规则束缚,不按规则出牌会觉得新鲜有趣。 20、我认为自己在行为上的基本特点是: A 慢条斯理,办事按部就班,能与周围的人协调一致。
B 目标明确,集中精力为实现目标而努力,善于抓住核心要点。 C 慎重小心,为做好预防及善后,会不惜一切而尽心操劳。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.911秒