Wednesday, June 12, 2013

Android Apps

Android is an open source, Linux based OS, optimized and used for mobile devices. Other Devices include tablets, Cameras, set-top-boxes and laptops etc.

Architecture:
Its a layered architecture. Libraries and drivers as abstraction layer and framework and apps as top layers.
App developer has access to all the APIs.
1. Apps
2. Framework
3. Libraries.
---Android Run-time
4. Linux Kernel.

Android Apps:
Apps are developed in Java. Eclipse ID + ADT (Android Development Toolkit) plugin is for app development. ADT also cares about libraries, packages and emulation of android apps.
Develop the app and archive the code, resources, etc into a .apk (Android Package) file.
Run this file on Android device, or virtual device.

Manifest.xml is a major component of android pp. It allows to declare permissions required by the app.
Other things in this file - components of app, minimum API level, h/w and s/w features used, and API libraries linked, etc.

Android Framework:
Android App have 4 components:
1. Activity
2. Service
3. Content Providers
4. Broadcast Receivers.

Activity is the UI that user interacts with. As if he is performing an activity  E.g in Music Player App, the Player screen and the Songs list screen are two activities. Activities interact with each other in an Application via Intents e.g. to pass on data, info, etc. Good thing about activities is that App1 can invoke Activity residing inside of App2. Now not all part of an application is UI. There are things to be done in background as well e.g. retrieving data over network or updating something. Services does the background stuff. It doesn't bother UI thread. It performs its stuff, and goes away. Notification can be invoked when a service finishes. Next thing an application need to complete itself is the data that it holds. Data could be accessed from some source like database or files. Content Providers does the task of accessing data from a source. Content Providers work as URIs. Now the application seems complete, but if it needs to communicate with the framework or the system OS? E.g. battery is low or screen lock event occurs. Broadcast Receivers allow this to happen. The system broadcasts these events and the Receivers (the app) receive it and perform appropriate action. This completes the Android Framework.

Friday, May 3, 2013

Appium - Automation for Mobile Apps

appium run WebDriver tests on Android and iOS.

appium is an HTTP server that creates and handles WebDriver sessions.

On iOS, appium proxies commands to a UIAutomation script running in Instruments.

On Android, appium proxies commands to a UiAutomator test case running on the device.

appium open doors for cross-platform mobile testing: one test - two mobile platforms.

Thursday, May 2, 2013

Automation Tools for Mobile Platforms (Android and iOS)

Automation Tools For iOS:

  • Calabash
  • Frank
  • UI Automation
  • ios-driver
  • KeepItFunctional
  • appium

Automation Tools For Android:

  • Calabash
  • MonkeyTalk
  • Robotium
  • UiAutomator
  • selendroid
  • appium

Thursday, April 4, 2013

Software Test Estimation - Part 1


What is Estimation?

We do estimation everyday! For example, going from home to office, going for interview tomorrow, or when we build a house we estimate how long it will take to be built etc. We do estimations about time, cost, effort, duration, resources and other things. For Projects, we do project estimations and for testing we do test estimations. Without proper estimations, projects become riskier. They have cost overrun, schedule overrun, low margins, etc

What we do in Estimation?

So when we do estimation, we quantify the outcome. Rather than having a rough idea about some activity, its better to quantify it. Quantify the cost, time, resources.

People involved in estimation:


Project Manager :- takes care of the overall estimation activity.
Seniors :- provide input on assumptions, risks involved, constraints.
Program Management :- verifies and consolidates the estimation data at organizational level.
Senior Management :- approves the project at organizational level.
Customers :- approves the estimates provided by you. They also provide inputs and requirements for which estimates are provided.

Uncertainty in Estimation!

Estimation is very much associative with uncertainty. This uncertainty is high during initial phase of project (when requirements are not clear or freezed). So initially we may estimate that a project will run for 50 weeks OR 10 weeks, whereas the actual time for its execution/completion actually takes 25 weeks.
Next, when requirements get freezed, and we define the scope of project, even then the Re-estimated data has 50% of uncertainty in it.

So, when do we do Estimation?

Estimation spans the entire project life cycle. At the start of a project, we can prepare for estimation. This means to collect historical data for similar projects, requirements breakdown, brainstorming, estimation approach. Next we actually start preparing estimates. Then, once the project kicks off, we do compare the estimated with the actual at different milestones during project execution. And if required, re-estimation is also done. For example, if requirements change, scope changes, project characteristics have changed. Once the project is closed, we gather data from the project to be used as historical data with in the organization and that helps in improving the estimation process.

Estimation Techniques?

Bottom Up Strategy:-
Prepare a Work Breakdown Structure, define the tasks to be performed in an activity, provide effort to do each task at a granular level. That gives you the estimates. You estimate the duration, dependencies and resources. Here team members, seniors, experts collectively give estimates. This strategy is good for New projects, and for projects where you do not have any historical data.

Top Down Strategy :-
Use your experience, or historical data to provide estimates for projects. Here project size and complexity also plays a vital role and we take the information from past experience to draw out estimates. Average effort per test case in the past projects is also taken into account.

In majority, most of the projects take top down approach for test estimation.



To be Continued....

Wednesday, November 30, 2011

Optimal test artifacts...

Ref: http://test.techwell.com/articles/weekly/tester-know-your-product
The author starts her article asking a question "What's your product as a tester?". Then provides a lsit of answers, and i abide by that. She tries to prove that testing activity should be clever and devote more time in thinking rather than on documentation. Her point is wuite provocative that redundant info in test artifacts is not worth spending time and energy on it. She explains to think about the minimum set of artifacts.

Tuesday, November 15, 2011

3 Tips for Greater Success - Make an Attitude Investment

Reference: http://manage.techwell.com/articles/weekly/make-attitude-investment

Tip 1: Be Selfish on the Inside
It’s impossible for you to be positive for others until you have taken care of yourself. you can give yourself time, pride, or things. invest in yourself in ways that build you up

Tip 2: Stop Blaming Your Circumstances
It’s not the rain or the car or the phone or the product. It’s you. You have a choice in everything you do. Choose a better way. By taking personal accountability for improving the situation, you’ll make things happen.

Tip 3: Invest Your Time, Don’t Spend It
Look at some common attitude-busting ways of spending time—watching the local news or TV reruns, aimlessly browsing the Internet, etc. Invest time each day in something that improves us as individuals. Take that time and invest in your attitude. Invest in a skill that helps you achieve a bigger goal, whether in your career or in your personal life. E.g. stop having the TV on from dinner time to bedtime—a clear way to spend time and lose it. You can invest this time to reading.

About author: http://www.bridging-the-gap.com/

Tuesday, January 19, 2010

UTC - Unified Testing Criteria

UTC for Java based mobile applications

UTI - unified testing initiative:
A joint effort by SUN microsystem, device manufacturers, and network operators.
Testing initiative for Java™ technology-based applications for mobile devices.

UTI Members:
AT&T, LG Electronics, Motorola, Nokia, Orange, Samsung, Sony Ericsson, Sun Microsystems and Vodafone Group

UTC
certify some general set of tests under Java Verified Program. UTC Doc

Testing Criteria before UTC:
  • Motorola J2ME Generic Test Guide.
  • Nokia OK MIDP
  • SUN Mobile Certification Test Criteria
  • Vodafone Certification Requirements for J2ME
UTC: Test Categories:
Application Characteristics (AC)
Stability (ST)
Application Launch (AL)
User Interface (UI)
Localization (LO)
Functionality (FN)
Connectivity (CO)
Personal Information Management (PI)
Security (SE)
Retesting (RE)

Links:
http://www.jbenchmark.com/
http://javaverified.com

Followers

About Me