Pages

Wednesday, May 29, 2013

Automation Testing With Selenium - Introduction

Objective:  Learn about automation testing using selenium framework through Q&A.

Q1:    What is Selenium ?
A1:    It is an open source tool for web automation testing. Since this tool runs with browser and it does
         exactly what a user does while browsing a website. It was first found by Thought-Works in 2004.
         It supports tests in multiple languages (HTML, Java, C#, Perl, Python, Ruby)
         Selenium does not require backend.
         Its mainly consists of simple buttons: Record and Playback.
         Firefox has a directly plugin 'Selenium IDE',  which can be easily installed.
         To know more information click on this link selenium.org

Q2:    How to install Selenium IDE ?  
A2:    First you must have latest Firefox installed. Then click on 'Se' icon and download immediately Firefox
         plugin - Selenium IDE.
Firefox plugin - Selenium IDE

Selenium IDE - Version 2.0.0

Or

Click on this main link: http://docs.seleniumhq.org/download/
       
Q3:    What are the Advantages of Using Selenium ?
A3:    It is Free.
         It can be tested on multiple browsers.
         It is actual replication of user experience.
         It supports AJAX & CSS.
         User can choose from the multiple languages available (HTML, Java, C#, Perl, Python, Ruby).
         
Q4:    What are best methods for performing Selenium testing ? 
A4:    All tests should be controlled by source.
         Its always better to create a test run for each functionality instead of per page. 
         Automate during nights.
         Create auto runs based on different environments and platforms.
         Automate on fixed functionality.
         Modify existing test run code and create test run for new functionality.
         Use this method of testing from development stage to minimize bugs.
         Proper logs must be taken and good analysis is must.
         Need good HTML knowledge.
         
Q5:    What does Test automation support ?
A5:    • Regression testing.
         • Rapid feedback.
         • Unlimited iterations of automated test cases.
         • Support for Agile and Rapid methodologies
         • Accurate Documentation.
         • Defect reporting tools.
         • Finding defects missed during manual testing.

Q6:    To Automate testing or Not ?
A6:    It is not advisable to automate test cases frequently. Manual Testing is always the first option and
         the best. For e.g. In agile environment frequent changes in UI takes place then any automation used
         will not be applicable and it has to be rewritten. Also building automation is time consuming. So, for
         short deadlines and releases it is always advantageous to use Manual Testing rather than Automation
         Testing.

Q7:    What is 'Selenium’s Tool Suite' ?
A7:    Selenium consists of multiple software tools each has its own role:
         1. Selenium 2 (aka. Selenium Webdriver): It supports both WebDriver API and Selenium 1
            technology in creating test cases.
         2. Selenium 1 (aka. Selenium RC or Remote Control): Selenium 1 is still the used for maintenance
            projects and it supports multiple programming languages (Java, Javascript, Ruby, PHP, Python, Perl
            and C#) and not only this, but it also supports almost all the popular browsers.
         3. Selenium IDE (Integrated Development Environment): It a very simple recording tool for building
             test cases. Its a Firefox plugin and can be very easily installed. It helps to record, re-record, save
             etc. These test cases can be exported or rewritten and it supports multiple programming languages.
         4. Selenium-Grid: It allows Selenium RC to scale for large test suites and it can be run in multiple
            environments. Selenium Grid also allows you parallel test multiple test cases at the same time using
            remote machines. It saves time and same test case can be run on different environment at same time.

Q8:     What if you are not familiar with programming languages ?
A8:     If you do not know programming or scripting language its always better to start with Selenium IDE
          and get familiarise with Selenium commands. As it is very simple to use and easy to create test cases.

Q9:     Name the browsers and platforms Selenium supports ?
A9:   



Monday, May 27, 2013

iPhone Application Testing

The line of smartphones released by Apple are 3G, 3GS, 4, 4S and 5. The iPhone applications could be downloaded from the iTunes Store. The store consists of different types of applications, music, videos etc.

iPhone Application Testing
Reference Link: http://www.textually.org/textually/archives/2012/10/12/apple-iphone-apps-3.jpeg


iPhone Applications Testing has different phases which must be considered:

INITIAL SET UP PHASE:

1. The tester must need a unique UDID (Unique Device IDentifier) when testing on mobile device. This can be obtained for free app ad-hoc helper or you can get it from iTunes.

2. An Ad-hoc provisioning profile must be obtained. It could be obtained from the business owner or by individual from apple website.

3. Connect the iPhone to the iTunes using USB cable and then click on the serial number. When clicked on the serial number the UDID appears. This UDID must be added to the provisioning portal user (http://developer.apple.com). 

4. In above link provided go to 'Devices' tab then add the 'Device Name' and 'Device ID'. Once added, tap on 'Provisioning' tab on 'Distribution' and create 'New Profile'.

5. While creating 'New Profile' select the Ad-Hoc distribution method. Give a profile name and then select the Apple ID, from the drop down list. Then select the device type from the list of options available. After submitting these details. The Distribution profile is generated with the Profile name you have given. Download that Distribution Profile.

Note: This Distribution profile is helps to restrict the application privacy or misuse during development stage.

DEVELOPMENT PHASE:

1. Now the developers will add this Distribution profile in their Xcode. The Developer builds for the device required and then releases Ad-Hoc provisioning profile. The developer then shares the application built with the Ad-Hoc mobile provisioning profile through email (Attachment size should be <10MB). 

Note: The application designed by developer could be sent in the different formats (.app, .ipa, .zip) and for Ad-Hoc mobile provisioning profile (.mobileprovision). Mostly the objective C programming is used for most of the applications.

2. Unit testing is a must and it should be done by the developer before releasing the build. This helps to reduce large number of bugs and also helps to reduce the development life cycle. 

INSTALLATION PHASE:

1. The tester needs to just simply connect the device which is already ready for testing. Extract the files and directly drag and the application with provisioning profile to the Library. 

2. Now from Library drag and drop the application into the device connected. 

3. Please make sure that the application is installed with its provisioning profile. Then only the tester can test the app, else the application will not launch.

4. It is always advisable to disconnect the USB cable after application is installed successfully. Once the cable is disconnected launch the application. Now the App is ready for testing.

TESTING PHASE: 

Bug submission - When ever any bug is found it must be reported using bug reporting tool.

Feedback - Tester must be able to provide proper feedback based on friendliness of the application and further improvements as per customer application usage.

BRD - Business Requirement Documentation it is a must for the tester while testing. To understand the functionality and required outcome when testing any feature.







Mobile Application Testing

New Mobile Technologies and increasing demand for complex integration has made mobile applications testing incredibly difficult and more expensive. Yes, more expensive because there is no bug free mobile application and the cost will directly impact the business, as customers will be in directly using the application once the build is live into the market.
IOS, Android and Windows are the three major operating systems used to build these complex mobile applications.

Mobile App Testing may be as categorized based on following types:

Mobile Application Testing
Mobile Application Testing


1. Functional Testing - This is very critical and based on the business development requirement specification documents the developers develop the application functionalists. These functionalists will be initially tested by the developer in the Unit Testing phase. Then each build will be given to mobile app tester for further in depth testing. During the functional testing the tester will need to collect the bug report while installing, launch, login, browsing the app, crash reports etc. 

2. Security Testing - Mobile applications are easily vulnerable and can easily be hacked by the hackers. So special team will be handling the security reports and log traces to check the leaks. This is very critical for banking or payment related applications.

3. Performance and Load Testing  - The application performance plays a very great impact when there are peak users using the app at the same time. The performance of the application should remain consistent.

4. Usability Testing - The UX experts and developers should make the application more user friendly. The simple the user interface the easier and more popular the application becomes. So, Usability testing should not be ignored.





Saturday, May 11, 2013

Software Testing for beginners - Quiz 1

This is an Closed book test, kindly make close all the other websites and KB Portals.
1. This Quiz is an Attempt to help beginners, to test their knowledge in software testing.
2. By taking this quiz multiple times, will help the beginner learn testing more easily and effectively.
3. Read the questions carefully as they may help you in clearing Interviews.
Please attempt all 25 questions