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:



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...