为什么要对软件测试进⾏分类软件测试是软件⽣命周期中的⼀个重要环节具有较⾼的复杂性对于软件测试可以从不同的⻆度 加以分类使开发者在软件开发过程中的不同层次、不同阶段对测试⼯作进⾏更好的执⾏和管理测试 的分类⽅法。按照测试⽬标分类界⾯测试软件只是⼀种⼯具软件与⼈的信息交流是通过界⾯来进⾏的界⾯是软件与⽤⼾交流的最直接的 ⼀层界⾯的设计决定了⽤⼾对我们设计的软件的第⼀印象界⾯如同⼈的⾯孔具有吸引⽤⼾的 直接优势设计合理的界⾯能给⽤⼾带来轻松愉悦的感受。 如果不严格按照设计图来进⾏界⾯测试结果可能就会出现⼩岳岳版本~界⾯测试简称UI测试)指按照界⾯的需求⼀般是UI设计稿和界⾯的设计规则对我们软件界 ⾯所展⽰的全部内容进⾏测试和检查⼀般包括如下内容• 验证界⾯内容显⽰的完整性⼀致性准确性友好性。⽐如界⾯内容对屏幕⼤⼩的⾃适应换 ⾏内容是否全部清晰展⽰• 验证整个界⾯布局和排版是否合理不同板块字体的设计图⽚的展⽰是否符合需求• 对界⾯不同控件的测试⽐如对话框⽂本框滚动条选项按钮等是否可以正常使⽤有效 和• ⽆效的状态是否设计合理• 界⾯的布局和⾊调符合当下时事的发展。 找茬~请你根据给定的设计图找出实现的⻚⾯有哪些界⾯问题~功能测试功能测试就是对产品的各功能进⾏验证根据功能测试⽤例逐项测试检查产品是否达到⽤⼾要 求的功能。根据产品特性、操作描述和⽤⼾⽅案测试⼀个产品的特性和可操作⾏为以确定它们满⾜设计需求。 本地化软件的功能测试⽤于验证应⽤程序或⽹站对⽬标⽤⼾能正确⼯作。使⽤适当的平台、浏览器 和测试脚本以保证⽬标⽤⼾的体验将⾜够好就像应⽤程序是专⻔为该市场开发的⼀样。功能测试 是为了确保程序以期望的⽅式运⾏⽽按功能要求对软件进⾏的测试通过对⼀个系统的所有的特性和 功能都进⾏测试确保符合需求和规范。如何进⾏功能测试设计功能测试⽤例参考产品规格说明书进⾏⽤例的编写具体的测试⽤例需要使⽤⿊盒设计测试⽤ 例的⽅法如等价类、边界值、判定表法、正交法、场景法、错误猜测法等。性能测试我们在使⽤软件的时候有时会碰到软件⽹⻚打开时越来越慢查询数据时很⻓时间才显⽰列表软件 运⾏越来越慢等问题这些问题都是系统的性能问题引起的。要进⾏软件产品的性能问题要对产品的性能需求进⾏分析然后基于系统的性能需求和系统架构 完成性能测试的设计和执⾏最后要进⾏持续的性能调优。可靠性测试可靠性Availability即可⽤性是指系统正常运⾏的能⼒或者程度⼀般⽤正常向⽤⼾提供软件 服务的时间占总时间的百分⽐表⽰。可靠性正常运⾏时间/正常运⾏时间⾮正常运⾏时间*100%隔壁村有个⼈叫⽼王 让⽼王请吃饭要求了⼗次但是他只请了⼀次那么我们说⽼王的可靠性是10%那么我们称⽼ 王这⼈不可靠 如果让⽼王请吃饭要求了⼗次每次他都请客了可靠性是100%那么⽼王是个可靠的⼈纯纯 ⼤冤种~~ 系统⾮正常运⾏的时间可能是由于硬件软件⽹络故障或任何其他因素如断电造成的这些因 素能让系统停⽌⼯作或者连接中断不能被访问或者性能急剧降低导致不能使⽤软件现有的服务 等。可⽤性指标⼀般要求达到4个或5个“9”即99.99%或者99.999%如果可⽤性达到99.99%对于⼀个全年不间断7*24的⽅式运⾏的系统意味着全年 252600min)不能正常⼯作的时间只有52min不到⼀个⼩时。如果可⽤性达到99.999%意味着全年不能正常⼯作的时间只有5min。不同的应⽤系统可⽤性的要求是不⼀样的⾮实时性的信息系统或⼀般⽹站要求都很低99%和 99.5%就可以了但是军事系统要求则很⾼安全性测试安全性是指信息安全是指计算机系统或⽹络保护⽤⼾数据隐私完整保护数据正常传输和抵御 ⿊客病毒攻击的能⼒。安全性测试属于⾮功能性测试很重要的⼀个⽅⾯系统常⻅的安全漏洞和威胁如下• 输⼊域如输⼊恶性或者带有病毒的脚本或⻓字符串• 代码中的安全性问题如SQL/XML注⼊• 不安全的数据存储或者传递• 数据⽂件邮件⽂件系统配置⽂件等⾥⾯有危害系统的信息或者数据• 有问题的访问控制权限分配等• 假冒ID⾝份欺骗• 篡改对数据的恶意修改破坏数据的完整性安全性测试的⽅法有代码评审渗透测试安全运维等常⽤的静态安全测试⼯具有Coverity IBMAppscanSourceHPFortify常⽤的动态安全测试有OWASP的ZAPHPWebInspect等。其 中静态安全测试是常⽤的安全性测试的⽅法。安全如此重要咱们的私⼈电脑需要安装杀毒软件吗...易⽤性测试许多产品都应⽤⼈体⼯程学的研究成果是产品在使⽤起来更加灵活和舒适。软件产品也始终关注 ⽤⼾体验让⽤⼾获得舒适易⽤的体验针对软件这⽅⾯的测试称之为易⽤性测试。 易⽤性在ISO25020标准中指容易发现容易学习和容易使⽤。易⽤性包含七个要素符合标准和规 范直观性⼀致性灵活性舒适性正确性和实⽤性。我们主要讨论以下⼏个⽅⾯1标准性和规范性对于现有的软件运⾏平台通常其UI标准已经不知不觉地被确⽴了成为⼤家的共识。多数⽤⼾已 经习惯并且接受了这些标准和规范或者说已经认同了这些信息所代表的的含义。⽐如安装软件的 界⾯的外观在什么场合使⽤恰当的对话框等。所以⽤⼾界⾯上的各中信息应该符合规范和习惯否则⽤⼾使⽤起来会不舒适并得不到⽤⼾的认 可。 测试⼈员需要把与标准规范习惯不⼀致的问题报告为缺陷2直观性⽤⼾界⾯的直观性要求软件功能特性易懂清晰。⽤⼾界⾯布局合理对操作的响应在⽤⼾的预期 之中。⽐如数据统计结果⽤报表的形式条形图扇形图等展⽰清晰直观现在主流的很多搜索引 擎和⽇历的设计也有直观性的特点3灵活性软件可以有不同的选项以满⾜不同使⽤习惯的⽤⼾来完成相同的功能。但是灵活性的设计要把握好 度不然可能由于太多的⽤⼾状态和⽅式的选择增加了软件设计的复杂性和程序实现的难度。例如 ⼿机键盘有九宫格和全键盘还⽀持⼿写满⾜了不同⽤⼾的需求4舒适性舒适性主要强调界⾯友好美观操作过程顺畅⾊彩⽤运恰当按钮的⽴体感等。例如左⼿⿏标的 设置给习惯⽤左⼿的⼈带来了便利也为右⼿⼗分劳累时提供了另⼀种途径 舒适性主要强调界⾯友好美观操作过程顺畅⾊彩⽤运恰当按钮的⽴体感等。例如左⼿⿏标的 设 置给习惯⽤左⼿的⼈带来了便利也为右⼿⼗分劳累时提供了另⼀种途径按照执⾏⽅式分类静态测试所谓静态测试statictesting就是不实际运⾏被测软件⽽只是静态地检查程序代码、界⾯或⽂档 中可能存在的错误的过程。不以测试数据的执⾏⽽是对测试对象的分析过程仅通过分析或检查源程序的设计、内部结构、逻 辑、代码⻛格和规格等来检查程序的正确性。常⻅的静态测试⽅式有代码⾛查代码扫描⼯具等。动态测试动态测试dynamictesting指的是实际运⾏被测程序输⼊相应的测试数据检查实际输出结 果和预期结果是否相符的过程所以判断⼀个测试属于动态测试还是静态的唯⼀的标准就是看是否运⾏程序。⼤多数软件测试⼯作都属于动态测试按照测试⽅法⽩盒测试⽩盒测试⼜称为结构测试或逻辑测试它⼀般⽤来分析程序的内部结构针对程序的逻辑结构来设 计测 试⽤例进⾏测试。⽩盒测试的测试⽬的是通过检查软件内部的逻辑结构对软件中的逻辑路径进⾏覆盖测试在程序 不同地⽅设⽴检查点检查程序的状态以确定实际运⾏状态与预期状态是否⼀致。⽩盒测试主要分为静态测试和动态测试两种。静态测试常⻅于桌⾯检查、代码审查、代码⾛查、代 码扫描⼯具动态测试⽅法主要包含六种测试⽅法语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆 盖、路径覆盖。给出简单的案例接下来了解⼀下⽩盒测试⽅法的概念和使⽤语句覆盖每个语句⾄少执⾏⼀次。 针对AandBA为T且B为T 针对CorDC为T或者D为T 得出⽤例 ⽤例1A为TB为TC为TD为F判定覆盖AandB要为T ATBT① AandB要为F ATBF或者AFBT或者AFBF② CorD要为T CTDT/F或者CT/FDT③ CorD要为F CFDF④ 得出⽤例 ⽤例1ATBT CTDF满⾜①③ ⽤例2ATBFCFDF满⾜②④条件覆盖ATF BTF CTF DTF ⑤⑥ 得出⽤例 ⽤例1ATBT CTDT ⽤例2AFBF CFDF 判定条件覆盖 结合判定覆盖和条件覆盖。得出⽤例 ⽤例1ATBT CTDT满⾜①③⑤ ⽤例2AFBF CFDF满⾜②④⑥条件组合覆盖A B∣C D T T∣T T T F∣T T F T∣T T F F∣T T 每⾏就可以是⼀个⽤例⼀共四个⽤例。路径覆盖以个⼈编写的代码来设计测试⽤例需要覆盖的测试路径 13,12 23,4,3,12 33,4,5,4,3,12 43,4,5,678,4,3,12总结• ⽩盒测试主要应⽤于单元测试阶段• 先执⾏静态设计⽤例的⽅法再执⾏动态设计测试⽤例的⽅法• 设计⽤例⼀般使⽤路径测试重点模块追加使⽤逻辑覆盖⽅法⿊盒测试⿊盒测试就是在完全不考虑程序逻辑和内部结构的情况下检查系统功能是否按照需求规格说明书的 规定正常使⽤、是否能适当的接收输⼊数据⽽输出正确的结果满⾜规范需求。 所以⿊盒测试⼜称之为数据驱动测试只注重软件的功能⿊盒测试的优点不需要了解程序内部的代码以及实现不关注软件内部的实现。 从⽤⼾⻆度出发设计测试⽤例很容易的知道⽤⼾会⽤到哪些功能会遇到哪些问题锻炼测试⼈ 员的产品思维 测试⽤例是基于软件需求开发⽂档不容易遗漏软件需求⽂档中需要测试的功能。⿊盒测试的缺点是不可能覆盖所有代码。⿊盒测试⽤到的测试⽅法有等价类边界值因果图场景法错误猜测法等灰盒测试灰盒测试是介于⽩盒测试与⿊盒测试之间的⼀种测试灰盒测试多⽤于集成测试阶段不仅关注 输出、输⼊的正确性同时也关注程序内部的情况。但是灰盒测试没有⽩盒测试详细和完整⿊盒测试是覆盖产品范围最⼴的测试因此灰盒测试基 本是不能够替代⿊盒测试否则需要很⼤的代价设计⾮常多的⽤例。常⻅⾯试题你知道的测试⽅法有哪些哪种⽤的⽐较多常⻅的测试⽅法有⿊盒测试⽩盒测试和灰盒测试。开发⼈员主要⽤⽩盒测试和灰盒测试测试⼈ 员主要⽤⽩盒测试和⿊盒测试。对于测试⼈员来说相较于⽩盒测试⿊盒测试⽤的更多⼀些。