软件测试分类技术分享 |
做为测试,那些不得不掌握的测试技术体系本⽂节选⾃霍格沃兹测试学院内部教材
软件测试技术是软件开发过程中的⼀个重要组成部分,是贯穿整个软件开发⽣命周期、对软件产品(包括阶段性产品)进⾏验证和确认的活动过程。其⽬的是尽快尽早地发现在软件产品中所存在的各种问题,与⽤⼾需求、预先定义的不⼀致性。检查软件产品中可能存在的 Bug ,并且编写缺陷报告,交于开发⼈员修改。软件测试⼈员的基本⽬标是发现软件中的错误。
软件测试技术就相当于是软件测试⼈员的武器。作为软件测试⼈员,必须要清楚了解可以通过哪些⼿段去保障产品的质量。只有知道了这些,才能更好的完成测试的⼯作。
软件测试的分类可以按照不同的维度去划分,⼀般来说可以按照下⾯的这些维度去划分。
单元测试
软件测试的方法有哪些
集成测试
冒烟测试
系统测试
验收测试
α 测试:⾮正式验收测试
β 测试:内测后的公测
按开发阶段分类
按测试实施组织分类
按测试执⾏⽅式分类
静态测试:不启动被测对象的测试,⽐如代码⾛读,代码评审,⽂档评审,需求评审等。
动态测试:启动被测试对象的测试,⽐如⽩盒测试,⿊盒测试等。
按是否查看代码分类
⿊盒测试:指的是把被测的软件看作是⼀个⿊盒⼦,不去关⼼盒⼦⾥⾯的结构是什么样⼦的,只关⼼软件的输⼊数据和输出结果。
⽩盒测试:指的是把盒⼦盖⼦打开,去研究⾥⾯的源代码和程序结果。
按是否⼿⼯执⾏分类
⼿⼯测试:由⼈去⼀个⼀个的去执⾏测试⽤例,通过键盘⿏标等输⼊⼀些参数,查看返回结果是否符合预期结果。通常⽤于⿊盒测试⽅法或系统测试阶段。
⾃动化测试:把以⼈为驱动的测试⾏为转化为机器执⾏的⼀种过程。
按测试对象分类
性能测试:检查系统是否满⾜需求规格说明书中规定的性能。
安全测试:各种的攻击⼿段,例如 SQL 注⼊、XSS 等。
兼容性测试: 软件和硬件之间是否能够发挥很好的效率⼯作,会不会影响导致系统的 崩 溃。
⽂档测试:测试软件产品中的各类⽂档。
易⽤性测试:⽤⼾体验测试。
业务测试: 测试⼈员将系统的各个模块串接起来运⾏、模拟真 实 ⽤⼾实际的⼯作流程,满⾜永续需求定义的功能进⾏测试的过程。
界⾯测试:也称为 UI 测试。测试⽤⼾界⾯的功能模块的布局是否合理,整体⻛格是否⼀致、各个控件的放置位置是否符合客⼾的使⽤习惯,还要测试操作界⾯操作便捷性、导航简单易懂性、⻚⾯元素的可⽤性,⻚⾯元素的可⽤性、界⾯中⽂字是否正确,命名是否统⼀,⻚⾯是否美观、⽂字、图⽚组合是否完美。
安装测试:测试程序的安装、卸载。
其他分类
回归测试:修改了旧代码后,重新执⾏测试以确认修改后没有引⼊新的错误或导致其他代码产⽣错误。
随机测试:指测试中的所有输⼊数据都是随机⽣成的,其⽬的是模拟⽤⼾的真实操作,并发现⼀些边缘性的错误。
探索性测试:试可以说是⼀种测试思维技术。它没有很多实际的测试⽅法、技术和⼯具,但是却是所有测试⼈员都应该掌握的⼀种测试思维⽅式。探索性强调测试⼈员的主观能动性,抛弃繁杂的测试计划和测试⽤例设计过程,强调在碰到问题时及时改变测试策略。
⿊盒测试⼜叫功能测试、数据驱动测试或基于需求规格说明书的功能测试。该类测试注重于测试软件的功能性需求。
采⽤这种测试⽅法,测试⼯程师把测试对象看作⼀个⿊盒⼦,完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求⽂档,检查程序的功能是否符合它的功能说明。测试⼯程师⽆需了解程序代码的内部构造,完全模拟软件产品的最终⽤⼾使⽤该软件,检查软件产品是否达到了⽤⼾的需求。
⿊盒测试⽅法能更好、更真实地从⽤⼾⻆度来考察被测系统的功能性需求实现情况。在软件测试的各个阶段,如单元测试、集成测试、系统测试及验收测试等阶段中,⿊盒测试都发挥着重要作⽤,尤其在系统测试和确认测试中,其作⽤是其他测试⽅法⽆法取代的。
⽩盒测试⼜称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。⽩盒法可以全⾯了解程序内部逻辑结构、对所有逻辑路径进⾏测试。
⽩盒测试常⽤的⽅法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法。
其中 Unit 代表单元测试,API 代表接⼝测试,UI 代表⻚⾯级的系统测试。分层的⾃动化测试倡导产品的不同层次都需要⾃动化测试,这个⾦字塔也正表⽰不同层次需要投⼊的精⼒和⼯作量。对于测试⾦字塔,越靠下越容易⾃动化,越靠下成本越低,越靠下效率越⾼。
分层测试顾名思义就是分多个层次⼀个层次⼀个层次的测试,⽐如先测完中间接⼝层,再测最上层的界⾯。当然了,也可以同时测试。
分层测试的测试⽅法还是原来的测试⽅法,但对测试⼈员的代码能⼒还有⾃动化测试⽔平有较⾼要求,同时要求测试⼈员和开发团队真正的理解敏捷开发和敏捷测试,甚⾄要求开发团队达到开发即测试、测试即开发的能⼒。
单元测试
对软件中的最⼩可测试单元进⾏检查和验证。具体的说就是开发者编写的⼀⼩段代码,⽤于检验被测代码的⼀个很⼩的、很明确的功能是否正确。通常⽽⾔,⼀个单元测试是⽤于判断某个特定条件(或者场景)下某个特定函数的⾏为。
接口测试
接⼝测试是测试系统组件间接⼝的⼀种测试,主要⽤于检测外部系统与系统之间以及内部各个⼦系统之间的交互点。
测试的重点是要检查接⼝参数传递的正确性,接⼝功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。
接⼝测试可以更早介⼊,介⼊越早越能更早的发现问题,还可以缩短项⽬周期,能够发现更底层的 Bug,减少开发成本。
因为不同端(前 端 ,后端)的⼯作进度不⼀样,所以要针对最开始出来的接⼝,以及需要调⽤其他公司的(银⾏,⽀付宝,,QQ 等)⼀些接⼝进⾏接⼝测试及验证数据,从安全层⾯来说,只依赖前端进⾏限制已经完全不能满⾜系统的安全要求(绕过前⾯实在太容易),需要后端同样进⾏控制,在这种情况下就需要从接⼝层⾯进⾏验证。 前后端传输、⽇志打印等信息是否加密传输也是需要验证的,特别是涉及到⽤⼾的隐私信息,如⾝份证,银⾏卡等。
UI 测试
UI 测试测的是应⽤中的⽤⼾界⾯是否如预期⼯作。⽐如,⽤⼾的输⼊需要触发正确的动作,数据需要能展⽰给⽤⼾看,UI 的状态需要发⽣正确变化等。
对于 UI 测试,可以采⽤静态测试⽅法,也可以采⽤动态测试⽅法。
对于⽤⼾界⾯的布局,⻛格,字体,图⽚等与显⽰相关的部分测试应该采⽤静态测试,⽐如点检表测试,即将测试必须通过的项⽤点检表⼀条⼀条列举出,然后通过观察确保每项是否通过。
对⽤⼾界⾯中各个类别的控件应该采⽤动态测试,即编写测试⽤例或者点检表,对每个按钮的响应情况
进⾏测试,是否符合概要设计所规定的条件,还可以对⽤⼾界⾯在不同环境下的显⽰情况进⾏测试。
UI 测试需要关注的内容包括通过浏览测试对象可正确反映业务的功能和需求,这种浏览包括窗⼝与窗⼝之间、字段与字段之间的浏览。各种访问⽅法 (Tab 键、⿏标移动和快捷键)是否⽀持。还有窗⼝的对象和特征,⽐如菜单、⼤⼩、位置、状态和中⼼等都符合标准。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。