在本篇章开始之前,先对之前的内容进行一个简单的总结回顾一下:
基于需求设计测试用例,这里有个测试用例的万能公式:
边界值,边界值上重要的三个点,上点、内点、离点。
判定表:关系(与或非恒等)
正交表,场景设计法,错误猜想法...
本课程主要讲解软件测试的各种技术。作为一个测试人员,需要不断扩充自己的知识,并将各种知识用于项目测试中。在这里我们根据以上的测试技能图来讲解
界面很好理解,登录之后就可以直接看到的就是界面。
例如我们wbb 端登录csdn,或者是app 上,还有微信里的那些小程序,以及各个公众号.....
这是个看脸的时代,这个界面就是程序的脸,这个很重要,用户和软件进行交互的时候,通常都是通过界面和软件进行沟通的,这里决定了用户对其的第一印象。
可靠性(Availability)即可用性,是指系统正常运行的能力或者程度,一般用正常向用户提供软件服务的时间占总时间的百分比表示。
可靠性 = 正常运行时间/(正常运行时间+非正常运行时间)*100%
系统非正常运行的时间可能是由于硬件,软件,网络故障或任何其他因素(如断电)造成的,这些因素能让系统停止工作,或者连接中断不能被访问,或者性能急剧降低导致不能使用软件现有的服务等。
可用性指标一般要求达到4个或5个“9”,即99.99%或者99.999%
如果可用性达到99.99%,对于一个全年不间断(7*24的方式)运行的系统,意味着全年(252600min),不能正常工作的时间只有52min,不到一个小时。
如果可用性达到99.999%,意味着全年不能正常工作的时间只有5min。
看到上面的运行时间,怪不得啊,服务器老是坏掉,几千个服务器,每天轮流坏也坏不玩啊;怪不得干运维的和对象出去约会也得背着个电脑!!
服务器一年只有 5 分钟休息,我们要测试,不可能坐在电脑面前守着,所以我们需要借助一些工具,编写一些脚本,让那些脚本自动运行,自动运行之后会有报告,程序猿只需要看报告就好。
总之;一旦涉及到性能测试,就得借助工具,不能依靠人工进行测试。
容错性测试是指系统能够处理异常,用户的错误操作而不至于系统崩溃,从而能够提高系统的可用性。
容错性测试包含以下方面:
我们数据都是存在数据库中的,服务器也一样,一旦服务器宕机,重启就可以了,但是数据需要从数据库中重新交互而来。但是一旦数据库遭到了物理上的毁灭性打击,那么服务器就废了,所以一般那些大公司,他们的数据库存放都不在同一个地方,激素hi为了放置上述情况产生,进而导致服务器崩溃。
我们大致分为三大类:
–开发文件:可行性研究报告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗。
–用户文件:用户手册、操作手册,用户文档的作用:改善易安装性;改善软件的易学性与易用性;改善软件可靠性;降低技术支持成本。
–管理文件:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告。
在实际的测试中,最常见的是用户文件的测试,例如:手册说明书等。也会有一些公司对需求文档进行测试,来保证需求文档的质量。
文档测试的关注点:
兼容性测试需求是指明确要测试的兼容环境,考虑软,硬件的兼容,就软件兼容来说,主要考虑以下几个方面:
对于环境(操作系统,应用平台)兼容性的测试不仅仅局限在操作系统,浏览器这两个因素,还包括以下,32位,64位CPU;手机平台Android ,iOS,Windows Phone;支持不同的Internet连接速度。
对于iOS和Android两个平台,还要区分手机和平板电脑,考虑不同的型号(屏幕尺寸,分辨率等)。
对于硬件而言我们主要考虑以下几个方面:
软件设计需要符合大众审美,就比如我们常见的红绿灯:红灯停、绿灯行、黄色代表着"警告"和"提示"。我们写的代码也是一样,绿色表示通过、黄色表示警告、红色表示报错。
软件使用灵活、软件设计出来要简明知意:
看这个日历
应用的安装和卸载在任何一款APP中都属于最基本功能。一旦出错,就属于优先级为紧要Critical的缺陷。主要需要考虑以下方面:
在软件测试岗位的面试中,常常被面试官问到的概念就是黑盒和白盒的测试了
测试人员不关注代码的内部实现,通过一些科学手段,向测试系统发起测试数据,关注测试结果是否于预期结果一致。
黑盒测试的优点:
黑盒测试的缺点是不可能覆盖所有代码
白盒测试又称为结构测试或逻辑测试,它一般用来分析程序的内部结构,针对程序的逻辑结构来设计测试用例进行测试
简单来说,就是白盒测试只关注代码层面的实现。
优点:代码覆盖率高
缺点:只关注了代码,一旦将模块结合到一起,那么就会出现问题
主要包含六种测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
总之,无论我们选择哪个测试都无所谓,只要是适合目前业务的。能够保证软件质量的就是好测试方法。
这里有个测试金字塔:
这里我们主要讲两个重点的测试,后面几章测试内容都围绕着这两个测试
单元测试(Unit Testing)
集成测试(Integration Testing)
后面就要开始讲解代码了。
α测试(Alpha Testing)
手机出厂前最后一次测试,开发和测试人员不参与。
β测试(Beta Testing)
新手机购买回来,参与测试的人是购买者,使用的场所及环境已不再是手面厂商的环境及场所。
Beta测试是一种验收测试。Beta测试由软件的最终用户们在一个或多个场所进行
α测试与Beta测试的区别:
手工测试(Manual testing)
手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。总结优缺点:
自动化测试(Automation Testing)
就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。简单说自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
自动化测试比如功能测试自动化、性能测试自动化、安全测试自动化。
自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。接口测试的ROI(产出投入比)要比UI测试高。