Sarah Lottman, SAP September, 2016

Slides:



Advertisements
Similar presentations
Which TV program is the video? 中国达人秀 China’s Got Talent 选秀节目 talent show talent n. 天资;天赋.
Advertisements

考研英语复试 口语准备 考研英语口语复试. 考研英语复试 口语准备 服装 谦虚、微笑、自信 态度积极 乐观沉稳.
2014 年上学期 湖南长郡卫星远程学校 制作 13 Getting news from the Internet.
Healthy Breakfast 第四組 電子一甲(電資一) 指導老師:高美玉 組長:B 侯昌毅
第9章 系統建置.
Java Programming Hygiene - for DIDC
2012 Project Planning 2012 年技术规划
打開學習錦盒 學習活動系列講座問卷 感謝出席本系列講座,希望今天的安排您會滿意。 離開前,請留下寶貴意見,以作為日後專題講座主題之參考。
商業智慧與資料倉儲 課程簡介 靜宜大學資管系 楊子青.
第八章 分析與設計階段 – 物件導向設計(OOD)
Academic Year TFC EFL Data Collection Outline 学年美丽中国英语测试数据收集概述
Agile Software Engineering, OPA5, UI5, Test Automation
深層學習 暑期訓練 (2017).
Homework 4 an innovative design process model TEAM 7
one Counting units 2 ones 3 ones.
Module 5 Shopping 第2课时.
軟體原型 (Software Prototyping)
初二英语写作课 课件 福建省闽清县第一中 王国豪
Unit title: 嗨!Hi! Introducing yourself in Chinese
从UNIX到Windows的 电信软件移植实践
Creating Animated Apps (I) 靜宜大學資管系 楊子青
Lecture 2 Lecture An Introduction To The HTML Language
中国散裂中子源小角谱仪 的实验数据格式与处理算法 报告人:张晟恺 中国科学院高能物理研究所 SCE 年8月18日
Becky Ann Hughes PlayFirst公司产品管理副总裁
單元3:軟體設計 3-2 順序圖(Sequence Diagrams)
移动系统的安全: 攻击和防御 杜文亮 教授 Dept. of Elec. Eng. & Comp. Sci.
BizTalk Server 2004.
Guide to Freshman Life Prepared by Sam Wu.
Special English for Industrial Robot
課務組 Curriculum Section
创建型设计模式.
WME小组工作计划 苏伟 李冠宇 赵燕娟 景珂.
网站优化—— 让每个网页都带来潜在客户 Make each page of your website bring prospects
主你永遠與我同在 危難臨到 我信靠你 深知你必領我渡過 你信實 為我堅持到最後
但是如果你把它发给最少两个朋友。。。你将会有3年的好运气!!!
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
Visual Studio Team System 简介
Remember the five simple rules to be happy 快樂的五個簡單常規
Lesson 44:Popular Sayings
大學專題介紹 M-Kaigo老人心靈介護系統
Try to write He Mengling Daqu Middle School.
Could you please clean your room?
服務於中國研究的網絡基礎設施 A Cyberinfrastructure for Historical China Studies
冀教版 七年级下册 Lesson 38 Stay Healthy!.
Customer Expectations of Service
Area of interaction focus
Android智慧型手機程式設計實務應用班
SAP R/3架構及前端軟體安裝 Logical View of the R/3 System SAP Frontend 6.2安裝
Version Control System Based DSNs
Guide to a successful PowerPoint design – simple is best
Build an app to measure ECG-base HRV via a Smart wristband
Good Karma 善業 原稿:牛Sir 配楽:懺悔經 捕頭恭製 按鍵換頁.
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
虚 拟 仪 器 virtual instrument
Common Qs Regarding Earnings
中央社新聞— <LTTC:台灣學生英語聽說提升 讀寫相對下降>
徐迎晓 复旦大学软件学院 实现模型 徐迎晓 复旦大学软件学院.
Philosophy of Life.
高考应试作文写作训练 5. 正反观点对比.
李宏毅專題 Track A, B, C 的時間、地點開學前通知
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
創造思考的開發與培養.
怎樣把同一評估 給與在不同班級的學生 How to administer the Same assessment to students from Different classes and groups.
React.js.
SAP 架構及前端軟體安裝 Logical View of the SAP System SAP Frontend 7.1安裝 SAP登入
Usage Eclipse 敏捷方法工具介紹 實驗室網站:
OrientX暑期工作总结及计划 XML Group
Unit 1 Book 8 A land of diversity
When using opening and closing presentation slides, use the masterbrand logo at the correct size and in the right position. This slide meets both needs.
箴言系列信息(6) 神的言語句句煉淨 遠離虛謊 鍛鍊的一年.
Presentation transcript:

Sarah Lottman, SAP September, 2016 Customer Automated Testing Sarah Lottman, SAP September, 2016

Agenda What should be tested OPA5 Qunit

Testing in WebIDE

Why Test Automation? Reduce manual testing efforts Automated Tests enable fast feedback cycles • Keep the system running – avoid regressions • Build in quality – submit tested code • Write better code ( loosely coupled code, enables refactoring ) Keep your mainline healthy 为什么要进行测试的自动化? 1. 减少手动测试的时间。 2. 自动化测试能够形成快速的反馈环机制。 2.1 保证系统持续运行在最新状态,避免过多的手动回归测试。 2.2 通过不断提交测试过的代码,改进代码质量 2.3 书写更加健壮的代码(松散耦合,持续重构) 3. 保证主线分支健康

Rules and Tools Rules: Don‘t test UI5 framework functionality! Just test the code in the UI layer Better let a human check the UX and visualization Component Tests QUnit/OPA5 (frontend), ABAP Unit (backend), 为什么要进行测试的自动化? 1. 减少手动测试的时间。 2. 自动化测试能够形成快速的反馈环机制。 2.1 保证系统持续运行在最新状态,避免过多的手动回归测试。 2.2 通过不断提交测试过的代码,改进代码质量 2.3 书写更加健壮的代码(松散耦合,持续重构) 3. 保证主线分支健康 Unit Tests QUnit (frontend), ABAP Unit (backend), Jasmin (HANA content) automated

SAPUI5 Application Testing What Should You Test? Availability of certain controls (example: OnInit) Controller logic, e.g. events Check if the controls appear based on model binding Did Model in backend receive my request? Check if the data is correct What Should You NOT Test? DOM of UI5 controls (not API) All properties of a control, only the most relevant UI5 framework functionality 这个页面主要介绍了这些规则的具体体现。 1. 具体某个控件是否可以获得,包括可视性,可操作性等。 2. 控件的逻辑,触发的行为 3. 检查控件的基于数据绑定的表现,比如数据的展示是否和预期一致。 4. 检查模型后台数据的请求和发送是否和预期一致。 5. 检查数据的正确性。 不应该测试的内容: UI5 控件的DOM 控件的所有属性 UI5框架的功能

OPA5

What’s OPA? OPA5 is an API for SAPUI5 controls. It hides asynchronicity and eases access to SAPUI5 elements. This makes OPA5 especially helpful for testing user interactions, integration with SAPUI5, navigation, and data binding. The OPA5 library is JavaScript-based. This means that you can write your tests in the same language in which your app is written. TDD (Testing Driven-Development, the pattern is Given, When, Then)

OPA5 and SAPUI5 Limitation of OPA Advantages of OPA tests Screen capturing Testing across more than one page Remote test execution End-to-end tests are not recommended with OPA due to authentication issues and fragility of test data Advantages of OPA tests Integration tests implemented in same programing language as application No need to learn an additional programing language (Java – for the Selenium tests) Test execution is faster than with Selenium Tests are executed in the same way as unit QUnit tests Work well with mock data from the SAP UI5 Mock Server Things to consider implementing OPA tests Investing in reusable OPA5 artefacts for usage within application tests (similar to Selenium page objects) Having solid mock data in good quality https://wiki.wdf.sap.corp/wiki/display/webapptoolkit/OPA+testing+conclusions 优点 OPA5是JS实现的,所以对于Fiori 或者UI5的项目,编程语言是一致的。方便测试代码的调用和集成,debug。 语言一致,所以基本不需要学习额外的语言。 使用异步模式,执行速度比Selenium, 以我个人的观点,还是比较慢的。特别是在debug模式下 和QUnit测试执行的方法基本一致。后面附录部分有一页链接专门说明如何运行的。 通过Mock Data可以和Mock Server一起工作得很好 支持TDD和BDD的测试方法 局限: 不支持屏幕捕获 无法支持多个页面同时测试 (少部分可以支持2个页面,比如launchpad 选择tile 跳转到app) 无法进行远程执行 E2E 不推荐使用OPA 主要考虑是认证和测试数据的不稳定性 所以一般使用Mock Server 的方式进行 实现OPA 测试需要考虑的设计问题 将可复用的一些方法集成到common中 为了保证测试的稳定性使用mock data 使用iframe支持在url中使用参数, hash测试用到。

QUnit QUnit is a framework for unit testing JavaScript code From jQuery open source project Used by jQuery, SAP UI5, . . . Supports asynchronous tests Provides stand-alone test runner or integrates with SAPUI5 CI environment Included in SAP UI5 distribution

QUnit Example QUnit.module("Calculator", { setup : function() { this.calculator = new }, teardown : function() {} }); // Calculator(); // in the future beforeEach Executed before each test // in the future afterEach case QUnit.test("show zero initially", function(assert) { assert.equal(this.calculator.display(), 0); }); QUnit.test("display entered digit", function(assert) { this.calculator.press("1"); assert.equal(this.calculator.display(), 1); });

Basic Assertion Toolkit assert.ok(1, "1 should have been truthy"); assert.ok(!false, "!false should have been truthy"); assert.equal(1 + 1, 2, "1+1 should have equaled 2"); assert.equal(1, true, "1 should have been converted to assert.strictEqual("there", "there"); true"); assert.notEqual(Math.PI, 3.1415); assert.notEqual({}, {}); assert.notStrictEqual(1, "1"); assert.deepEqual({}, {}); assert.deepEqual([1, 2], [1, 2]); assert.notDeepEqual({ f : "this" }, { f : "that" }); assert.throws(function() { "anna".reverse(); }, TypeError, "function should have thrown TypeError");

QUnit Test Runner

Thank you

The Grid Drawing area Headline area White space