Tuesday, 27 June 2017

The Basics of Mobile Web Apps Testing On Real Devices Using Selenium / Appium


First Thing First: Appium Equals Selenium

Appium is just like Selenium – but only for mobile apps and games “. One should have heard about it many times, but in fact, Appium is much more than that.
selenium webdriver
It is also suitable for mobile web apps testing, where real devices and real browsers are used in testing. With the same effort and cost, a test automation framework can be built with Appium using real stuff or use an emulator/simulator for the automation.
In a nutshell, Appium is a mobile test automation tool that works for native, hybrid as well as mobile web apps for iOS and Android with the aid of Selenium server. Appium is an excellent choice for test automation framework as it can be used for all these different app/web types.
Fundamentally, Appium derives its root from Selenium and it uses JSON Wire Protocol inside to interact with iOS and Android apps using Selenium’s WebDriver.
In its architecture, Appium is an HTTP server written in Node.js which creates and handles multiple WebDriver sessions. Appium starts tests on the device and takes notes for commands from the main Appium server. It is basically the same as the Selenium server that gets HTTP requests from Selenium client libraries.
Appium has proven its flexibility and scalability in a native mobile app and game testing, as those apps and games tend to be much identical on both platforms i.e. Android and iOS. The benefit of having this cross-platform testing framework helps by using the identical script for running app/game on either platform. The same applies to the mobile web.
Appium scripts run smoothly when web testing is done on Chrome, Firefox, Safari, or WebKit-based browser on Android and iOS where applicable.
Another significant benefit of Appium is that users can write tests using their favourite development tools, environment and programming language, such as Java, Objective-C, JavaScript, PHP, Ruby, Python or C#, among many others.

How to get started and what things to consider?

Don’t worry about the learning curve. If you are familiar with Selenium, then you’ve got Appium covered: They use WebDriver and DesiredCapabilities in the same way. There is a great chance the existing Selenium scripts work as they are with Appium setup. However, configuring an application to run on Appium has a lot of similarities to Selenium — for example, as those of DesiredCapabilities.
Don’t know about Selenium – Follow the URL http://www.seleniumhq.org/ 
The below instructions provide everything to ensure a smooth start with Appium, real devices and real web browsers.
Bear in mind that the mobile ecosystem is very different compared to the desktop world. As mobile OEMs are building their own stuff, they also tend to ‘differentiate’ on various standards – such as browsers.
In fact, mobile browsers – regardless how standard they are – is also one of the areas where almost all devices manufacturers want to add their ‘innovation’.
This is quickly leading to a happy mix of different web kit versions with different functionalities; when combined with the OS version, hardware configuration, sizes of displays, memory and so on can significantly ‘differentiate’ what user gets as a form of these browsers. Building your test scripts with Appium/Selenium and automated testing can quickly get the understanding that how well does the web work on those devices and browsers.
Another area that any mobile web developer needs to pay attention at is performance:
Web page rendering time varies expressively from one device to another.
To ensure satisfactory end user experience it should be tested that how the CSS & Javascript renders across devices. There are already great benchmarks – such as BrowserMark by Rightware can be used to measure the performance of the hardware together with certain versions of browsers. This gives an understanding of the workload with certain device and web browser combination.
Selenium has already cemented its place in web test automation standard and Appium is providing very clean high-level API that can be quickly adopted by Selenium developers. It nicely abstracts a lot of the messy stuff related to parallel running tests.

Friday, 2 June 2017

Testing a CRM Application

testing-crm-application
CRM systems are progressively becoming strategic assets for organizations, helping them manage the entire customer life-cycle, streamline operations and improve customer satisfaction.
According to Gartner, CRM implementation failure rates exceed 50% due to lack of effective CRM strategy and user adoption.
Ensuring a successful CRM implementation requires focus on business objective, robust business processes and a focus on the Quality of implementation.
An independent Quality Assurance and Testing process helps identify real challenges for CRM implementation, assess robustness and ensure adherence to user requirements. This results in higher success rate. Having a verification and validation Testing Team helps achieve greater quality in terms of both technical & business specifications and higher ROI.
A buggy or improperly implemented feature of a CRM application can have direct impact on customer relationship and hurt the revenue. Equally, a well-implemented CRM can help you gain customer insight and improve customer satisfaction and loyalty.
CRMs also contain a lot of sensitive data about company as well as customers. Any CRM testing program should ensure that the data are accurate and secure during the storage and retrieval transactions.
A typical CRM work flow will look like the below demonstrated image.
workflow-crm
indiumsoft-testing
Testing Cycles for a CRM Application

Data Integrity and Conversion Check

The first test cycle in CRM testing should focus on issues related to data quality and conversion. At every step of a migration or update the testers should verify that the CRM is working as expected for both with and without data.
Below is the check list to ensure data quality:
  1. Duplication of data: No redundancy should be allowed.
  2. Hidden data is indeed hidden: Only the appropriate data should be visible according to the user roles and type.
  3. Data maps correctly: Grid issues where a selected row’s data goes out of alignment with the fields when scrolled down. This should be eliminated.
  4. New and updated data should be saved properly: Customer information and card information should save and update properly.
  5. Partial and full search work as desired: Users should be able to search by first name, last name, company, card is deemed necessary.
  6. No data is missing: All of the required data should be available to the right user levels.
  7. Graphs should represent data correctly: Critical data like store-specific and program-specific filters and sales percentages should be accurate.
  8. Data sorting: All of the fields that need to be sortable should works as desired.
  9. CRM installs correctly: No critical GUI issues should arise during installation even when the user misses the data during installation.
  10. Data saved in one field does not move to another field after saving it: Fields like address, which may need more than one field, should save to the correct fields.
  11. Check that data which is not supposed to be editable is indeed not editable: Data like date and time of transaction should not be editable.

Functional Testing

This deals with the application’s function and ensures that it fits during the migration of data from another legacy system. The values and other data should be populated in the correct fields.
Below is functional checklist for CRM Testing –
  • Organization wide default
  • Access level
  • Accessible to hidden data
  • Transaction processes
  • Connection lost
  • Proper exception handling
  • Avoid data mismatch
  • Pre-Authorization
  • Post-Authorization

Performance Testing

The CRM application should be tested under pressure or stress or load. This can measure the effects of concurrent users on the system’s performance.
Performance Check List for CRM Testing –
  • Response time
  • Server utilization
  • Peak hours testing
  • Loading speed
  • Error with any other integrated applications due to this
  • Maximum number of users

Integration Testing

This will be a challenge in CRM applications where we will be migrating or integrating third party applications into the CRM.
Listed are the must see features during integration testing of a CRM
  • Field and Labels matching
  • Dependencies Integration
  • Date format
  • Reports
  • Data Validation
  • Sorting order

Regression Testing

There will be regression testing always in an application like CRM where there is a need to test before migration and after migration. After migration whether the values are populated into the correct fields and validations are matched with the data. Other fields should not be disturbed because of this. This will measure Functional correctness and completeness of the CRM application. With the help of regression testing the reliability and performance of the application can be ensured.

Security Testing

CRM involves high volume of confidential data which should be secured. A proper security test plan allows how well the system protects the data against unauthorized internal and external access.
Are you into CRM Testing?