Android Applications Testing Training Course

Introduction

  • What is Android?
  • Android SDK
  • Android JVM
  • The Software Stack
  • The Development Tools (ADT)
  • User Interface
  • Installing Development Tools
  • Content Providers
  • Services
  • Intents
  • Activities
  • Views
  • Configuration File
  • Simple Hello World
  • Application Artifacts
  • Asset Packaging Tool
  • Entry Point Activity
  • Intent
  • Calling Other Activities
  • The Activities Stack
  • Paused & Stopped Activities
  • SQLite Database
  • System Management
  • Separated Processes
  • Component & Integration Architecture

Application Resources

  • What are Resources?
  • String Resources
  • Layout Resources
  • Code Samples
  • Resource Reference Syntax
  • Compiled Resources
  • Compiled Animation Files
  • Compiled Bitmaps
  • Compiled UI View Definitions
  • Compiled Arrays
  • Compiled Colors
  • Compiled Strings
  • Compiled Styles
  • Compiled Arbitrary Raw XML Files
  • Uncompiled Resources
  • The .apk File
  • Assets
  • Assets & Resources Directory Structure

The Intent Concept

  • Introduction
  • Intent Filter
  • Use Intent to Start Activity
  • Android Available Intentions
  • Code Samples
  • Intent Categories
  • Late Run-Time Binding
  • Use Intent to Start Service
  • Broadcast Receivers
  • The Intent Object Structure
  • The Intent Component Name
  • The Intent Action
  • The Intent Data
  • The Intent Category
  • The Intent Extras
  • The Intent Flags
  • Intents Resolution
  • Intent Filter Structure
  • The Action Test
  • The Category Test
  • The Data Test
  • Multiple Matches
  • Android Predefined Intents
  • Samples

User Interface Controls

  • Introduction
  • GUI Sample in Source Code
  • GUI Sample in XML
  • GUI Sample in XML & Source Code
  • TextView
  • TextView Sample
  • TextView Style Sample
  • EditText
  • EditText Sample
  • AutoCompleteTextView
  • AutoCompleteTextView Sample
  • MultiAutoCompleteTextView
  • MultiAutoCompleteTextView Sample
  • Button
  • Button Sample
  • ImageButton
  • ImageButton Sample
  • ToggleButton
  • ToggleButton Sample
  • CheckBox Control
  • CheckBox Control Sample
  • RadioButton Control
  • RadioButton Control Sample
  • ListView
  • ListView Sample
  • GridView Control
  • GridView Control Sample
  • Date & Time Controls
  • Gallery Controller
  • MapView
  • WebView

Layout Managers

  • Introduction
  • LinearLayout
  • Layout Weight
  • Gravity
  • Samples
  • TableLayout
  • Padding Properties
  • RelativeLayout
  • AbsoluteLayout
  • FrameLayout
  • TabsHost

Menus and Dialogs

  • Introduction
  • Menu Interface
  • MenuItem Interface
  • SubMenu Interface
  • Menu Items Group
  • Menu Items Attributes
  • Container Menu Items
  • System Menu Items
  • Secondary Menu Items
  • Alternative Menu Items
  • Creating Menu,Sample
  • Menu Items Groups
  • Menu Items Events Handling
  • Overriding Callback Function
  • Define Listener
  • Using Intents
  • Expanded Menu
  • Icon Menus
  • Sub Menus
  • System Menus
  • Context Menus
  • Samples
  • Handling Menu Events
  • Creating Menu using XML
  • Alert Dialog
  • Prompt Dialog
  • Samples

Location Based Services

  • Introduction
  • The Map Key
  • The MD-5 Signature
  • Google Maps Key
  • Required Permissions
  • Code Sample
  • The Map Controller
  • Code Samples
  • Maps Overlays
  • Code Samples
  • The Geocoder Class
  • The Address Class
  • The LocationManager Class
  • The LocationListener Interface
  • The Debug Monitor Service (DMS)

Android Security Model

  • Introduction
  • Deployment
  • The keytool Utility
  • The jarsigner Utility
  • Deployment using Eclipse
  • Separated Processes
  • Declarative Permission Model

Application Life Cycle

  • Introduction
  • Activity Life Cycle Methods
  • The onStart() and onResume() Methods
  • The onPause() and onStope() Methods
  • Return Back to Previous Activity
  • The onStop() and onDestroy() Methods
  • The onCreate() Method
  • The onPause() Method

SQLite Database

  • Introduction
  • SQLite Implementation
  • The SQLiteOpenHelper Class
  • The onCreate() Method
  • The onUpgrade() Method
  • The onOpen() Method
  • The getWriteableDatabase() Method
  • The getReadableDatabase() Method
  • The SQLiteDatabase Class,The execSQL() Method
  • The insert() Method,The delete() Method
  • The rawQuery() Method()
  • Code Samples
  • The query() Method
  • Code Samples

Providers

  • Introduction
  • Android Built-In Content Providers
  • SQLite Database
  • Content Providers Architecture
  • Content Providers Registration
  • Content Providers REST Access
  • Content Providers URL Structure
  • Content Providers Mime Types
  • Using Content Provider
  • Retrieving Records
  • Adding Records
  • The Cursor Object
  • The ContentValues() Object
  • Content Provider Demo

File Management

  • Introduction
  • Creating Files
  • Accessing Simple Files
  • Accessing Raw Resources
  • XML Files Resources
  • SD Card External Storage

Background Applications

  • Introduction
  • Services
  • Background Threads
  • Making Toasts
  • Notifications
  • Other System Services
  • Background Activity Sample

Activity Data

  • Introduction
  • The Intent Class
  • Start Activity Methods
  • Passing Data between Activities
  • Coherent User Experience
  • Code Sample

Web View

  • Introduction
  • The WebView Class
  • The android.webkit Package
  • The INTERNET Permission
  • The loadUrl() Method
  • JavaScript Support
  • The loadData() Method
  • The WebView Methods
  • The WebViewClient Class
  • The WebChromeClient Class

Java Language

  • Introduction
  • The Limits
  • Third Party Java Libraries

Debugging

  • Introduction
  • Eclipse Java Editor
  • Eclipse Java Debugger
  • Logcat
  • Android Debug Bridge
  • Dalvik Debug Monitor Service
  • Traceview

Accelerometer

  • Introduction
  • The SensorManager Class
  • The SensorListenr Interface

Localization

  • Introduction
  • Default Resources
  • Current Locale
  • Testing
  • Custom Locale
  • Code Samples

Speech Input

  • Introduction
  • The RecognizerIntent Class
  • Start Speech Recognition
  • Google Server Side
  • The Language Model
  • Free Form Language Model
  • Web Search Language Model

Development Tools

  • Introduction
  • The aapt Tool
  • The adb Tool
  • The android Tool
  • The ddms Tool
  • The dx Tool
  • The draw9patch Tool
  • The emulator Tool

Android Applications Testing Practices – 4 Hours

Automated Testing

  • JUnit Testing
  • Using Assertions
  • Instrumentation Framework

On Device Testing

  • User Interface & Consistency
  • Functionality of Interaction with the OS
  • Networking Testing
  • Stress Test Conditions
  • International Support Testing
  • General Requirements

On Device Remote Testing

  • DeviceAnywhere Platform
  • Scenarios To Be Care Of

Test Driven SOLID Principles

Understand the SOLID principles and how they can help you build better software.

Learn how to apply each of the SOLID principles in a practical way.

Learn how to write tests that validate the behaviour of your code.

Gain practical experience applying SOLID principles and TDD to a sample application.

Learn best practices for designing and building software that is easy to maintain and extend.

Requirements

  • Basic understanding of object-oriented programming principles.
  • Familiarity with any OOPS programming language such as Java or C#
  • Access to any development environment such as Visual Studio or IntelliJ IDEA.
  • Willingness to learn and practice SOLID principles and TDD techniques through hands-on exercises and real-world examples.

Description

In this course, you will learn how to build robust and maintainable software by applying SOLID principles in a test-driven way. SOLID principles are a set of guidelines for designing object-oriented software that is easy to maintain and extend over time. By combining SOLID principles with test-driven development (TDD), you can create code that is not only correct but also flexible and easy to change.

The course will begin with an introduction to the SOLID principles and how they can help you build better software. You will learn about each of the SOLID principles – Single Responsibility Principle, Open/Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle – and how they relate to each other.

With a solid understanding of both SOLID principles and using TDD, you will start building a sample application using Java and the JUnit testing framework. You will begin by writing tests that describe the behavior of the application, and then fix the test & implement the requirements by applying SOLID principles one by one.

Throughout the course, you will learn how to apply SOLID principles in a practical way, using real-world examples and exercises. By the end of the course, you will have a deep understanding of SOLID principles and familiarity with TDD, and the skills to build robust and maintainable software using these techniques.

Who this course is for:

  • Software developers who want to improve their understanding of SOLID principles and how to apply them in a test-driven way
  • Developers who want to write better code that is easier to maintain and extend over time
  • Technical leads who want to set coding standards and best practices for their team
  • Students and recent graduates who want to learn SOLID principles and TDD as part of their software development education
  • Anybody who wants to learn how to write better software that is more reliable, maintainable, and extensible.

Course content

6 sections • 20 lectures • 1h 29m total lengthExpand all sections

Introduction & Initial Code Setup5 lectures • 14min

  • SOLID Principles Intro01:05
  • Banking App – Deposit Money03:59
  • Banking App – Withdraw Money03:15
  • Banking App – Loan Interest02:46
  • Banking App – Send OTP03:16

Single Responsibility Principle (SRP)3 lectures • 10min

  • SRP Intro03:06
  • Fixing tests & implementing requirement using SRP Part 104:12
  • Fixing tests & implementing requirement using SRP Part 203:10

Open & Close Principle (OCP)3 lectures • 11min

  • OCP Intro02:40
  • Fixing tests & implementing requirement using OCP Part 103:47
  • Fixing tests & implementing requirement using OCP Part 204:33

Liskov Substitution Principle (LSP)3 lectures • 14min

  • LSP Intro04:33
  • Fixing tests & implementing requirement using LSP Part 104:18
  • Fixing tests & implementing requirement using LSP Part 204:47

Interface Segregation Principle (ISP)3 lectures • 24min

  • ISP Intro02:23
  • Fixing tests & implementing requirement using ISP Part 111:19
  • Fixing tests & implementing requirement using ISP Part 210:14

Dependency Inversion Principle (DI)3 lectures • 16min

  • DI Intro03:30
  • Fixing tests & implementing requirement using DI Part 105:47
  • Fixing tests & implementing requirement using DI Part 206:34