Monday 15 August 2016

Agile Methodology


What is Agile Model: Advantages and disadvantages when to use it ? 



Agile development model is also a type of Incremental model. Software is developed in incremental, rapid cycles. This results in small incremental releases with each release building on previous functionality. Each release is thoroughly tested to ensure software quality is maintained. It is used for time critical applications.  Extreme Programming (XP) is currently one of the most well known agile development life cycle model.

What is a Scrum Master – Roles and Responsibilities

Scrum Master is a Scrum Champion, ensures everyone follows the practices prescribed by Scrum.
  • He is a facilitator and Servant Leader who encourages and demands self-organization from the development team.
  • He enables close cooperation across all roles and functions, addresses resource issue and disobedience of scrum practices.
  • He protects the team from external and internal distractions.
  • He removes impediments so the team can focus on the work at hand and follow scrum practices.
  • He is not typically a manager or lead, but he is an influential leader and coach who does not do direct command and control.
Scrum Product Owner – Roles and Responsibilities

Product Owner in Agile is like a spokesperson for customer and needs to represent them,
  • This person owns the Product backlog and writes user stories and acceptance criteria.
  • Product Backlog is prioritized by him and he decides the release date and the content.
  • He accepts or rejects user stories.
  • He has the power to cancel the Sprint, if he thinks the Sprint goal is redundant.
  • He is the one who is responsible for the Return on Investment of the product.

What is the Role and Skills of a Tester in Agile Methodology?

Teamwork in Agile

Agile endorses the ENTIRE team approach where the developers, testers and business people work together to meet the sprint and release goal. The following is a list of behavioral traits that a Scrum team must have to produce desired results.
  • Cross-functional: The team members no longer work as component teams like development   and testing teams, instead they are all part of one team which helps the them to build a work item end-to-end and they take accountability of the outcome
  • Self-organizing: The team is self-directed to make own decisions. The team manages themselves to understand each other and is expected to make the right calls at the right time without external command and control from the managers as discussed in Organizational options for independent testing in Agile.
  • Co-located: The team is expected to sit together along with Scrum Master and Product Owner.
  • Collaborative: Testers and developers mingle together to behave as ONE Team without specialization silos along with the Product Owner and Scrum Master.
  • Empowered: The team takes their own operational and technical decisions regarding development and testing looping Scrum Master and Product Owner. The team’s empowerment may be disturbed if the Manager exercises command and control from outside.
  • Committed: The teams along with testers are committed to the product quality to satisfy the Product Owner and customer needs.
  • Transparent: The daily status is displayed on the Agile task board (seeCommunicating Test Status and Progress in Agile) and burn down chart.
  • Credible: There is always a mutual trust and accountability that must be built with the team of testers and stakeholders as far as the test results are concerned. The test strategy must be transparent and filled with integrity.
  • Open to feedback: Informal feedback given frequently to the peers within the teams at the time of retrospectives is an important tool for continuous improvement. Often feedback exchanged in the retrospectives is a good way to move forward on the action items.
  • Resilient: The sprint is a spiral of certain activities that takes place repeatedly and start over and over again. Responding to change is one of the most important activities that maximize the business value.
In Agile team, all developers and testers closely collaborate with each other to deliver business value. Every tester has to bring versatile skills on board to become a cross function team member.
Agile testers must have primary skills in automating test cases, test-driven development, and acceptance test-driven development, manual testing both white box and black-box testing.
Agile methods ask for greater collaboration, effective communication and interaction between team members and teams outside as well as stake holders who can directly or indirectly influence the product development.
Following are the few attributes that are expected out of Agile testers:
  • Great interpersonal skills with clarity in expression
  • Result oriented and positive attitude
  • Go getter and get it done attitude
  • Make test results visible to make a collective decision
  • High quality first mindset, intolerance to any imperfections
  • Someone who are good at organizing their task boards
  • Good analytical capabilities to evaluate test results
  • Understand the user stories and their acceptance criteria
  • Respond to change without impacting the business
  • Who are die-hard learners on everything related to testing
  • Who believe in team wins than individual wins
  • Constantly upgrade themselves using new tools and techniques
To mitigate these risks, organizations may consider variations for preserving independence discussed in Organizational Options for Independent testing

Sunday 14 August 2016

Mobile Apps - Native,Web & Hybrid Apps

Native Apps:
---------------------------

-Binary executable, explicitly downloaded, stored on the file system
-Distributed through app store
-Executed directly on OS
    -Launch from OS
    -Does not require another "container app' to run it
-Makes explicitly use of OS APIs

For Native App Development understanding please find below screenshots:









Web Apps
---------------------------------
Pure mobile Web apps

-Installed and launched
-Interactive UI
-Touch Optimized
-Client side rendering
-Available offline


Pure mobile Websites
-Visit by browsing
-Static navigational UI
-Generic look and feel
-Server side rendering
-Require network connectivity
-------------------------------------------


-Written in HTML, CSS and JavaScript[JS] 
-Code is executed by browser not by OS
-Various Launch Mechanism
   -Typing URL, Clicking Hyperlink, scanning QR code, on-clicking home screen shortcut
-Installation in Optional
-Esily support multiple mobile OS [Cross-Platform]
-Can be extended with device specific enhancement to make them behave more like native app
-Touch optimize look and Feel
-No address bar
-Suggestion to Pin to home screen
-Offline Availability

For Web App Development understanding please find below screenshots:



Hybrid App
----------------------------
Hybrid app is native app embeded with HTML
-benefits of native apps
  -Full access to APIs, App Store presence, etc
  -Selected portion of app are written using web technologies
  -Web portion of the app can either be downloaded from the web or packaged with the app
  -This is available is available for iOS and Android
  -Most of HTML CSS and JS shared common only the native portion had to implement
 
  How do you create ?





Lets Summerize:



Wednesday 20 July 2016

MySQL


1. DDL
Data Defination Launguage

CREATE
     -To Create database and its objects like table/index/view/store procedure/function/triggers

ALTER
    -Alters the structure of existing database

DROP
     -Delete the object from database


TRUNCATE
     - Removes all records from tables

COMMENT
   - Add comment to data disctionary

RENAME
  -Rename and object

2. DML
Data Manipulation Language

SELECT
-Retrieve date from  database

INSERT
-Insert data into table

UPDATE
-Update existing data within table


DELETE
-Delete all records from database table

3.DCL
Data Control Language

GRANT
-Allow user access privileges to  databases

REVOKE
-Withdraw user access privileges given by using GRANT command

4.DQL
Data Query Language

SELECT
SHOW
HELP

5.DTL
Data Transaction Launguage

START TRANSACTIONS, SAVEPOINT  COMMIT, ROLLBACK


 

API Automation Testing

What is an API?
a set of functions and procedures that allow the creation of applications

API is an acronym for Application Programming Interface.
It enables communication and data exchange between two separate software systems

HTTP Methods
GET     -Requests data from a specified resource
POST    -Submits data to be processed to a specified resource
HEAD    -Same as GET but returns only HTTP headers and no document body
PUT    -Uploads a representation of the specified URI
DELETE  -Deletes the specified resource
OPTIONS -Returns the HTTP methods that the server supports
CONNECT -Converts the request connection to a transparent TCP/IP tunnel

Swagger is a simple yet powerful representation of your RESTful API

Test Cases for API Testing:
Return value based on input condition:
Does not return anything:  
Trigger some other API/event/interrupt:
Update data structure:
Modify certain resources:


What is JSON ?
    JSON stands for JavaScript Object Notation
    JSON is a lightweight data-interchange format
    JSON is language independent *
    JSON is "self-describing" and easy to understand


JSON Syntax Rules
JSON syntax is derived from JavaScript object notation syntax:

    Data is in name/value pairs
    Data is separated by commas
    Curly braces hold objects
    Square brackets hold arrays

JSON Values
    A number (integer or floating point)
    A string (in double quotes)
    A Boolean (true or false)
    An array (in square brackets)
    An object (in curly braces)
    null

Example:
"employees":[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter","lastName":"Jones"}
]
====================================================================

Advantage of API Testing
-Testing core functionality
-Time Effective / Quick Response time
-Language Independent
-Easy Integration with GUI


API Testing Tools:
PostMan
RestLet Client
SOAP UI

REST:

-Representational State Transfer
-Its not protocol

XML, JSON,

What is Rest-Assured:

-is an pen Source Java Domain-Specific Language [DSL]
-Supports both XML & JSON
-Can eliminate large amount of code to test complex API Response and output

REST-Assured Support other Request
-POST -GET
-PUT-
-DELETE
-OPTIONS
-PATCH
-HEAD

*Only GET will give us data
*Other will make changes to server

http://rest-assured.io/

1.Creare Simple Maven Project
2.Add in pom.xml
<dependency>
  <groupId>io.rest-assured</groupId>
  <artifactId>rest-assured</artifactId>
  <version>${rest-assured.version}</version>
</dependency>
https://mvnrepository.com/artifact/io.rest-assured/rest-assured/

2.Add package
3. Add class

Paste this code
public class getData { @Test public void testResponseCode() { Response resp =RestAssured.get("http://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22"); int code =resp.getStatusCode(); System.out.println("Status Code is: " +code); Assert.assertEquals(code , 200); } }

Oputput



Open API Example:

1. https://openweathermap.org/
- Sign In to get API Key
-here we will get JSON Data exmple

2. http://parabank.parasoft.com/parabank/services/bank/customers/12212
here we will get xml data

to try Postman
https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en

Select GET and paste
http://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22






Monday 18 July 2016

Networking Basics for Software Tester



Define Network?
-----A network is a set of devices connected by physical media links. A network is recursively is a connection of two or more nodes by a physical link or two or more networks connected by one or more nodes.

Define Bandwidth and Latency?
------Network performance is measured in Bandwidth (throughput) and Latency (Delay). Bandwidth of a network is given by the number of bits that can be transmitted over the network in a certain period of time. Latency corresponds to how long it t5akes a message to travel from one end off a network to the other. It is strictly measured in terms of time.

 What is a gateway or Router?

-----A node that is connected to two or more networks is commonly called as router or Gateway. It generally forwards message from one network to another.

Define Routing
  ---- The process of determining systematically hoe to forward messages toward the destination nodes based on its address is called routing

Switches are used to connect multiple devices on the same network within a building or campus. For example, a switch can connect your computers, printers and servers, creating a network of shared resources. 

Routers, the second valuable component of your networking basics, are used to tie multiple networks together. For example, you would use a router to connect your networked computers to the Internet and thereby share an Internet connection among many users.

What is the communication protocol?
In telecommunications, a communications protocol is a system of rules that allow two or more entities of a communications system to transmit information via any kind of variation of a physical quantity.

Sunday 17 July 2016

Cloud Computing



What is it?

The practice of using a network of remote servers hosted on the Internet to store, manage, and process data, rather than a local server or a personal computer.

the ideologies and principles of cloud computing – “On demand availability”, “As a service” and “Pay for the usage”.  


Which are Models  in it?

Infrastructure as a Service (IaaS)
This is the most fundamental layer which forms the building block of the cloud. It mainly comprises of physical resources such as Storage, Network devices, compute servers, etc. All these computing resources are available on demand, where a user pays as per his usage.

Platform as a Service (PaaS)
The central layer in the cloud Is the platform. Here there is no control over the underlying infrastructure but you can access the deployed applications. Hence this provides the entire runtime environment on demand which could be a development or test environment. Hence in this model, most commonly you would have a VM that contains the complete environment like OS, required middleware, etc. available when you need it.


Software as a Service (SaaS) 

The topmost layer here is the application layer, which is generally visible to any user. Here, applications / products are available to the user on demand via the internet. Hence instead of having to acquire licenses for a particular user, this proves to be the most cost effective way of making sure that the license is always in use. Examples of this are Gmail, Google docs, Photoshop, etc.


Types of Clouds

  1. Private Cloud: Herecomputing resources are deployed for one particular organization.  This method is more used for intra-business interactions.  Where the computing resources can be governed, owned and operated by the same organization.
  2. Community Cloud: Herecomputing resources are provided for a community and organizations. 
  3. Public Cloud: This type of cloud is used usually for B2C (Business to Consumer) type interactions.  Here the computing resource is owned, governed and operated by government, an academic or business organization. 
  4. Hybrid Cloud: This type of cloud can be used for both type of interactions -  B2B (Business to Business) or B2C ( Business to Consumer). This deployment method is called hybrid cloud as the computing resources are bound together by different clouds.

Tuesday 12 July 2016

Advance Selenium

Advance Selenium


Advance Selenium Reporting
     -   Default report in Selenium using TestNG
     -   Generate XSLT report via ANT
     -   Advance Selenium report with Screenshot part 1             
     -   Advanced Selenium report  with screenshot part 2

Features of Extent Report

  • Allow is to generate logs inside HTML.
  • Generate PIE Chart based on test case status.
  • Generate Step summary.
  • We can filter reports depends on status.
  • It provides execution history.
  • It fetches system details like OS, Java Version, and Memory and so on.
  • Allow us the attach screenshot in report that is most important feature.


Monday 4 April 2016

Java Basics Help


Data Types:
 
There are two data types available in Java:
  • Primitive Data Types
    There are eight primitive data types supported by Java. Primitive data types are predefined by the language and named by a keyword.

    byte,short,int,long,char,double,float,boolean
  • Reference/Object Data Types
    • Reference variables are created using defined constructors of the classes. They are used to access objects. These variables are declared to be of a specific type that cannot be changed. For example, Employee, Puppy etc.
    • Class objects, and various type of array variables come under reference data type.
    • Default value of any reference variable is null.
    • A reference variable can be used to refer to any object of the declared type or any compatible type.
Variables:

You must declare all variables before they can be used.
The basic form of a variable declaration is shown here:

data type variable [ = value][, variable [= value] ...] ;
 
Here data type is one of Java's datatypes and variable is the name of the variable. To declare more than one variable of the specified type, you can use a comma-separated list.

Following are valid examples of variable declaration and initialization in Java:

int a, b, c;         // Declares three ints, a, b, and c.
int a = 10, b = 10;  // Example of initialization
byte B = 22;         // initializes a byte type variable B.
double pi = 3.14159; // declares and assigns a value of PI.
char a = 'a';        // the char variable a iis initialized with value 'a' 

There are three kinds of variables in Java:
  • Local variables
  • Instance variables
  • Class/static variables
types of variable


Local Variable

A variable that is declared inside the method is called local variable.

Instance Variable

A variable that is declared inside the class but outside the method is called instance variable . It is not declared as static.

Static variable

A variable that is declared as static is called static variable. It cannot be local.


Monday 15 February 2016

Eclipse Help

1. How to install ANDROID SDK

In Eclipse go to Help
Install New Software ---> Add
inside Add Repository write the Name: ADT (as you want)
and Location: https://dl-ssl.google.com/android/eclipse/
after loading some time you will get Developer Tools and NDK Plugins
check both if you want to use NDK in the future or check Developer Tool only
click Next
Finish

Sunday 17 January 2016

Questions

1. What is difference between For loop and While loop ?
    
The while loop is usually used when you need to repeat something until a given condition is true:

inputInvalid = true;
while(inputInvalid)
{
    //ask user for input
    invalidInput = checkValidInput();
}


On the other hand, the for loop is usually used when you need to iterate a given number of times:

for(var i = 0; i < 100; i++)
{
    ...//do something for a 100 times.
}

MobileAutomation - Handle Pop-ups, Alerts and Prompts in Automate and App Automate Tests

This article shows you how to handle user permission pop-ups, alerts, and prompts in your automated tests on BrowserStack. Introductio...