当前位置:文档之家› 浅谈前端自动化测试

浅谈前端自动化测试

(3)断言方法 断言方法是任何单元测试的基本模块,它们是一些简单的布尔表达式,
可以指示一个给定语句为true还是false。断言失败时,就会产生一个错误。
JavaScript单元测试框架——JsUnit
下面是JsUnit 提供的断言方法(assert method) • assert([comment], booleanValue) • assertTrue([comment], booleanValue) • assertFalse([comment], booleanValue) • assertEquals([comment], value1, value2) • assertNotEquals([comment], value1, value2) • assertNull([comment], value) • assertNotNull([comment], value) • assertUndefined([comment], value) • assertNotUndefined([comment], value) • assertNaN([comment], value) • assertNotNaN([comment], value) • fail(comment) • 解释说明
• 它最简单的形式是:把两个已经测试过的单元组合成一个组件,测 试它们之间的接口。
确认测试
• 确认测试又称有效性测试。任务是验证软件的功能和性能及其它特 性是否与用户的要求一致。
• 对软件的功能和性能要求在软件需求规格说明书中已经明确规定。 它包含的信息就是软件确认测试的基础。
系统测试
• 系统测试,是将通过确认测试的软件,作为整个基于计算机系统的 一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其 它系统元素结合在一起,在实际运行环境下,对计算机系统进行一 系列的组装测试和确认测试。
选择warn,则只会显示由warn()函数发出的消息。
默认值为no tracing(不跟踪)
• 测试的基本概念 • JavaScript单元测试框架——JsUnit • 断言框架——chai • 测试框架——Mocha • React 测试
• 黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软 件界面和软件功能进行测试。
黑盒测试
• 具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、 错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图 法、场景法等。
八种黑盒测试案例分析
灰盒测试
• 灰盒测试,是介于白盒测试与黑盒测试之间的一种测试。
Alpha测试与Beta测试
• Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用 户在模拟实际操作环境下进行的测试。Alpha测试的目的是评价软件产品的 FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重产 品的界面和特色。
• Beta测试由软件的最终用户们在一个或多个客房场所进行。与Alpha测试不 同,开发者通常不在Beta测试的现场,因Beta测试是软件在开发者不能控 制的环境中的“真实”应用。用户Beta测试过程中遇到的一切问题(真实 在或想像的),并且定期把这些问题报告给开发者。接收到在Beta测试期 间报告的问题之后,开发者对软件产品进行必要的修改,并准备向全体客 户发布最终的软件产品。
(2)解压后,可以使用testRunner.html来运行jsunit/tests目录中找到 的任何测试页。
JavaScript单元测试框架——JsUnit
二. 如何编写测试 (1)函数要求
1)测试函数不能有任何参数
2)函数名称必须有test前缀
3)测试函数包含在一个测试页中
JavaScript单元测试框架——JsUnit
• 但是,在灰盒测试中,你还是无需关心模块内部的实现细节。对于 软件系统的内部模块,灰盒测试依然把它当成一个黑盒来看待。而 白盒测试则不同,还需要再深入地了解内部模块的实现细节。
从是否执行程序的角度:
• A.静态测试 ຫໍສະໝຸດ B.动态测试。测试的详细分类
静态测试与动态测试
• 静态测试方法是指不运行被测程序本身,仅通过分析或检查源程序 的语法、结构、过程、接口等来检查程序的正确性。
什么是测试?
• 软件测试是使用人工操作或者软件自动运行的方式来检验它是否满 足规定的需求或弄清预期结果与实际结果之间的差别的过程。
• 测试是为了发现程序中的错误而执行程序的过程。
测试的详细分类
从是否关心软件内部结构和具体实现的角度划分(按测试分类):
• A.白盒测试 • B.黑盒测试 • C.灰盒测试
• 动态测试方法是指通过运行被测程序,检查运行结果与预期结果的 差异,并分析运行效率、正确性和健壮性等性能。
• 动态测试方法由三部分组成:构造测试用例、执行程序、分析程序 的输出结果。
从软件开发的过程按阶段划分有:
• 单元测试 • 集成测试 • 确认测试 • 系统测试 • 验收测试 • 回归测试 • Alpha测试 • Beta测试
白盒测试
• 白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的 测试。
• 白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白 盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运 作的。
• 在使用这一方案时,测试者必须检查程序的内部结构,从检查程序 的逻辑着手,得出测试数据。
要求: 1.对程序模块的所有独立的执行路径至少测试一次;
白盒测试
2.对所有的逻辑判定,取 “ 真 ” 与取 “ 假 ” 的两种情况都至少测试一次;
3.在循环的边界和运行界限内执行循环体;
4.测试内部数据结构的有效性等。
具体包含的逻辑覆盖有: 语句覆盖–判定覆盖–条件覆盖– 判定/条件覆盖 –条件组合覆盖 –路径覆盖。
(2)注意: 1)测试页中可以包含多个其他函数或javeScript,但是如果把测试函数放
在单独的JavaScript文件中,就需要使用exposeTestFunctionNames()方法, 使JsUnit找到测试函数。
2)一般地,JsUnit会自动发现测试函数,如果不能如你所愿地发现测试函 数,使用exposeTestFunctionNames()方法就能解决这个问题。
JavaScript单元测试框架——JsUnit
• setUpPage()函数只对每个测试页调用一次(在页面加载后),即在所有测 试函数调用之前调用。
• 一定要保证setUpPage()函数完成时把setUpPageStatus变量设置为 complete,告诉JsUnit可以继续执行测试页上的测试了。
JsUnit支持3个跟踪级别:
JavaScript单元测试框架——JsUnit
warn(警告)< info(信息)< debug(调试)
即如果运行测试时选择debug,就会看到warn()、inform()或debug()函数发出的所有消息 。
如果选择info则会显示由warn()和inform()发出的消息。
测试的详细分类
单元测试
• 单元测试(模块测试)是开发者编写的一小段代码,用于检验被测 代码的一个很小的、很明确的功能是否正确。
• 通常而言,一个单元测试是用于判断某个特定条件(或者场景)下 某个特定函数的行为。
集成测试
• 集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所 有模块按照设计要求(如根据结构图)组装成为子系统或系统,进 行集成测试。
JavaScript单元测试框架——JsUnit
三. 如何测试 打开JsUnit包中的 testRunner.html ,输入你要测试的文件地址,
点击Run即可。
测试需要注意: • JsUnit不会为每次测试运行重新加载测试页,所以变量状态会在多
次测试之间保留。
• 测试会按测试页中声明的顺序执行,先从最上面的测试开始。
六种白盒测试方法案例分析
黑盒测试
• 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正 常使用。
• 在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序 内部结构和内部特性的情况下,在程序接口进行测试,它只检查程 序功能是否按照需求规格说明书的规定正常使用,程序是否能适当 地接收输入数据而产生正确的输出信息。
• setUp()会在每个测试之前调用 • tearDown()会在每个测试之后调用
四. 测试集
JavaScript单元测试框架——JsUnit
测试集把不同的测试页分组组织,这样只需运行一个测试集就能 一次运行类似的一组测试。
测试集其实就是一些特殊的测试页,其中包含的测试页或其他测 试集(相应地就有了一个主测试集)会按顺序运行。
4)addTestPage(testPage)向测试集中增加单个的测试页,参数为测试页文 件相对于测试运行工具(testRunner.html)的相对路径名;
5)addTestSuite(testSuite) 向测试集中增加另一个测试集,参数为在suite 函数所在的同一个页面中声明的JsUnitTestSuite;
• 测试的基本概念 • JavaScript单元测试框架——JsUnit • 断言框架——chai • 测试框架——Mocha • React 测试
JavaScript单元测试框架——JsUnit
• JsUnit官网:/ • JsUnit教程
一. 环境配置 (1)从官网上下载JsUnit zip文件,其大部分“核心”都在jsunit/app 目录中, jsUnitCore.js 、jsUnitTracer.js 、jsUnitTestManager.js等
五. 跟踪与日志
JavaScript单元测试框架——JsUnit
JsUnit支持跟踪!使用以下3个函数完成,任何测试都可以调用(注意 ,在每个函数中,value参数是可选的): • warn(message, [value]) • inform(message, [value]) • debug(message, [value])
相关主题