About Me

My photo
Jijitha Anand is an Software tester by Profession . She has 5+ years of testing experience.

Monday, November 18, 2019

Automation Testing

Automation Testing:-

Automation Testing means using automation tools for executing the test case. Here the machine performs testing in place of a human being. The automation software can also enter test data into the System Under Test, compare expected and actual results and generate detailed test reports.


Which Testcase to Automate:-

1) Testcase Critical for Business2) Repeatedly executed test case3) If test case has prerequisite test case already automated



When do you run the automated test cases:-


Running an Automated test case varies from project to project. Automation testing is done in many phases.
1)     When the environment is created for testing, the automation test suite is run to check the stability of the environment in which testing needs to be carried out. 

2)     Regression testing, Santinty testing, smoke testing e.t.c, and few testing types were automation testing is carried out. 
3)     The automation test suite is executed in the Maintenance phase.

4)The automated test case is executed every day or fourth night depending on the projects. 

How does selenium work?


There are three major steps carried out in selenium or any automation tool to work:-

1)Identification( Identifion of web element using locators)
2)Action( sendkey(), click action)
3)Validation (checking the result)


Locators:-


Locator is a command that tells Selenium IDE which GUI elements ( say Text Box, Buttons, Check Boxes, etc) it needs to operate on. The identification of correct GUI elements is a prerequisite to creating an automation script. Locators are way to identify the element from the web screen.

Different types of:- 

  ID Locator:
  Name Locator:
  Class Name Locator:
  Tag Name Locator:
  Link Text Locator:
  Partial Link Text:
  CSS Selector Locator:

  XPath Locator:

ID and XPath are the most used Locators.









Saturday, November 9, 2019

DEVOPS


DevOps (DEVELOPMENT AND OPERATIONS):-

DevOps (development and operations) is an enterprise software development phrase used to mean a type of agile relationship between development and IT operations. The goal of DevOps is to change and improve the relationship by advocating better communication and collaboration between these two business units.
           DevOps is a set of practices that combines software development and information technology operations which aim to shorten the systems development life cycle and provide continuous delivery with high software quality. 

DevOps Professional Principles:-

                   DevOps is not based on stringent methodologies and processes: it is based on professional principles that help business units collaborate inside the enterprise and break down the traditional silos. The guiding principles of DevOps include culture, measurement, automation and sharing.
DevOps is considered to be a new approach to the more traditional ALM process.


Sanity testing v/s Smoke testing


SMOKE TESTING:-

è Smoke Testing is performed to ascertain that the critical functionalities of the program is working fine.
è The objective of this testing is to verify the "stability" of the system in order to proceed with more rigorous testing
è This testing is performed by the developers or testers
è Smoke testing is usually documented or scripted
è Smoke testing is a subset of Acceptance testing
è Smoke testing exercises the entire system from end to end

SANITY TESTING:-
è Sanity Testing is done to check the new functionality/bugs have been fixed
è The objective of the testing is to verify the "rationality" of the system in order to proceed with more rigorous testing
è Sanity testing is usually performed by testers
è Sanity testing is usually not documented and is unscripted
è Sanity testing is a subset of Regression Testing.
è Sanity testing exercises only the particular component of the entire system.



Importance of  Sanity Testing
è Sanity testing makes the tester confident about the functionality of an application.
è Sanity testing assures that the part of the system or methodology works roughly as expected.
è Using sanity testing the testers makes sure that the basic functionality of an application is working fine and the proposed functionality works roughly as expected.
è By performing sanity testing on a  mobile device testing will be sure that the application will be working fine on other mobile devices that have the same operating system.
è Sanity testing is not documented and thus it saves time and is easy to perform.
è Sanity testing gives a rough idea of the functionality of the application and the number of uncertainties in the application due to bug fixes.
è Sanity testing is beneficial when the time for a particular project is limited and the tester has already checked the project in detail.
è Sanity testing does not require many testers and thus saving testing efforts.
è Gives a quick state of the product to the developers after they have done changes in the code.

Thursday, November 7, 2019

Identity Provider

IDENTITY PROVIDER


The identity provider is used in our everyday consumer life. When you log in to a new retail website by clicking “Sign in with Google” or “Sign in with Facebook,” that’s an example of Google or Facebook acting as a trusted identity provider (IdP), and authenticating you on behalf of that online store.
                                       By entering your username, password and sometimes a 2nd authentication factor, Google or Facebook can assert whether you are who you claim to be, and relay their authentication decision to the retail or media site in question. Essentially, an Identity Provider is a trusted system that authenticates users for the benefit of other, unaffiliated websites or digital resources.
Identity Provider Authentication Flow



Benefits of Identity Provider:-

1) Saves you, the end-user, the pain of creating and maintaining a new password.

2) Spares your favorite retail or media websites the trouble of storing and protecting that information. In fact, since the authentication process is relayed to Google, the retail website never sees your password or other authentication credentials.




Sunday, November 3, 2019

Shift Left Approach


SHIFT LEFT APPROACH

Shift Left is a practice intended to find and prevent defects early in the software delivery process. The idea is to improve quality by moving tasks to the left as early in the lifecycle as possible. Shift Left testing means testing earlier in the software development process. In an Agile world, teams are being asked to move faster — reducing the length of time to delivery while still continuing to improve the quality of each release. ... More specifically, it means that developers are being incorporated into the testing cycle earlier than ever before.



Single Page Applications


Single Page Applications (SPAs)


Single-page applications are an app that works inside a browser and do not need page reloading during usage. There are many examples of SPAs around the net that you use every day, such as Google, Gmail, Maps, Facebook, Twitter or GitHub, etc. Since single-page applications don't update the entire page but only required content, they significantly improve a website's speed. Most resources (HTML/CSS/Scripts) are only loaded once throughout the lifespan of an application. Only data is transmitted back and forth. Single Page Application is good for making Responsive Websites, Support mobile, Tablet & Desktop. No extra queries to the server to download pages. Performance improvement, Single Page Application can improve performance in many ways, Single time file load each of HTML, CSS, JS. SPAs present the content in an easy, elegant and effective way as it loads all the content on just one single page rather than navigating the user to different pages. SPAs are faster than traditional web applications because they execute the logic in the web browser itself rather than on the server.

Progressive Web App


PROGRESSIVE WEB APPLICATION

Progressive Web App (PWA) is a new class of Web Application that provide native app experiences using a browser. PWAs function even when the device is offline. PWAs make full use of modern web features including push notification, cache, and secure connections to provide rich Web-based experiences.
                                                  PWA is a web app that uses modern web capabilities to deliver an app-like experience to users. ... You can deploy your app as a PWA as well as a Native app and take advantage of both channels. Ionic allows you to ship your app to not only the app store but also deploy to the mobile web as a PWA. PWAs are a type of application software delivered through the web, built using common web technologies including HTML, CSS, and JavaScript. They are intended to work on any platform that uses a standards-compliant browser. Progressive web apps are websites that look and feel like an app. This means users can access all information and capabilities without downloading a mobile app. Instead, progressive web apps use modern web technology to deliver app-like experiences to users, right in their browsers.

The function of PWA:-

A PWA is a web application that can be “installed” on your system. It works offline when you don't have an internet connection, leveraging data cached during your last interactions with the app. On an Android phone, their icon and launch behavior will resemble that of a native application.

PWA Vs Native API:-

PWAs are more efficient than native apps. By choosing to use a PWA over a native version of the same application, users consume less data (as is the case for the Twitter PWA). However, this doesn't mean users need to sacrifice the convenience of a native app.




Wednesday, October 30, 2019

Software Testing Life cycle

SOFTWARE TESTING LIFE CYCLE:-

Software Testing Life cycle is nothing but a sequence of activities done for testing software.
STLC is a series of activities carried out methodologically to help certify your software product. There are steps carried out to make the product bug free.



REQUIREMENT ANALYSIS
During this requirement analysis phase testers gather the requirement document. Tester goes through the document and discuss with the stakeholders if any question arises. In this phase what type of testing needs to be carried out is decided and Identifying test environment where testing is supposed to be carried out.
TESTPLAN
In this stage, effort and cost estimates for the project are to determine and would prepare and finalize the Test Plan. In this phase, Test Strategy is also determined. In his stage, the test plan/strategy document for various types of testing is prepared. Testing tools selection is done and effort for testing is estimated. The number of resources required and their roles and responsibilities is determined.
        TEST CASE DEVELOPMENT
In this phase test case is developed, test data is verified and rework on test case is done. Test data, is identified/created and is reviewed and then reworked as well in this phase.
This phase involves creating the test case and automation scripts. Reviewing the test case and scripts. Create test data which can be used for testing.

TEST ENVIRONMENT SETUP:-

Test environment decides the software and hardware conditions under which a work product is tested. Test environment set-up is one of the critical aspects of testing process and can be done in parallel with Test Case Development StageTest team may not be involved in this activity if the customer/development team provides the test environment in which case the test team is required to do a readiness check (smoke testing) of the given environment.

TEST EXECUTION:-

During this phase, the testers will carry out the testing based on the test plans and the test cases prepared. Bugs will be reported back to the development team for correction and retesting will be performed.

TEST CYCLE CLOUSER:-

Testing team will meet, discuss and analyze testing artifacts to identify strategies that have to be implemented in the future, taking lessons from the current test cycle. The idea is to remove the process bottlenecks for future test cycles and share best practices for any similar projects in the future.




Tuesday, October 29, 2019

Serverless Architecture


SERVERLESS ARCHITECTURE

Serverless architecture is also known as "serverless computing /function as a service (FaaS) " is a software design pattern where applications are hosted by a third-party service, eliminating the need for server software and hardware management by the developer. Applications are broken up into individual functions that can be invoked and scaled individually.

If a software application is hosted on the internet, it involves managing some kind of server infrastructure which means a virtual or physical server needs to be managed. Hence more resource and money is involved. But If we use a virtual server from a cloud provider we elimination physical hardware concerns, but still require managing OS and web server software processes. If we go for serverless architecture you focus purely on the individual functions in your application code.  It takes care of all the physical hardware, virtual machine operating systems, and web server software management. You only need to worry about your code.





Software Development Life cycle(SDLC)



SOFTWARE DEVELOPMENT LIFECYCLE (SDLC)


Software Development life cycle (SDLC) model is a conceptual framework describing all activities in a software development project from "planning to maintenance". This process is associated with several models, each including a variety of tasks and activities. SDLC is nothing but the life span of a software being built. 



Seven Phases of Software Development Life cycle:-

PLANNING:-
 In this phase team creates a well-detailed plan of action to be taken. In this phase Identification of the risks and technical feasibility study is done associated with the project. A various technical feasibility study is carried out so that the project is successfully implemented with minimum risks.
REQUIREMENT ANALYSIS:-
In this stage of the SDLC requirement of the client and the most effective solution to solve it is defined by the team. In this phase business representatives and IT, experts work hand in hand to understand client needs and understand each other's points of view. 
DESIGN:-
In this third phase role of software the architect comes into place and the role of a business representative reduces. Here IT experts together with software architect work together to create a layout of how the product should function and look. In the design phase team find the best solutions for the system they are going to create.
DEVELOPMENT:-
In this phase, the team starts creating the software. Knowledge gathered in previous stages is utilized here. The team tries to develop the products as per the client requirement. Once the product is crafted by the team BA's get involved to determine if the product meets the expectation or not.
TESTING:-
In this phase of SDLC, the team ensures the delivery of a product is of high quality. The product meets all the requirements and is bug-free. For a bug-free system, the team should check and kind of errors popping up, multiple tests should run to ensure that the system will work according to the design specification. 
DEPLOYMENT:-
In this phase, the software is released in the market. The deployment to the product even happens in stages. Before deploying in real-world software is made available for a few users for them to test i.e User Acceptance Testing(UAT). After UAT is done user feedback is taken into account and decided if the product is released or needs some enhancement. 
MAINTENANCE:-
When the product is realized it might encounter bugs and needs to be fixed, this is carried over in the maintenance phase. Sometimes the clients need some changes and improvement is carried out in the implementation phase.