Monday, April 6, 2020

Java Sysllabus

Section 1: Basic of programming.

  • JDK
  • How to write simple programs in java

Wednesday, March 25, 2020

Test Automation Process

Drawbacks of Manual Testing:

1) Manual Testing requires more time or more resources, some times both Time and Resources.
2) Less Accuracy
3) Performance testing is impractical in manual testing.
4) Comparing large amount of data is impractical.
5) Batch Testing is possible, but for each test execution Human user interaction is mandatory.
6) Manual Test Case scope is very less, if it is Automated test, scope is more.
7) Executing same tests again and again is time taking process as well as Tedious.
8) For every release you must rerun the same set of tests which can be tiresome.

Advantages of Manual Testing:
1)No Environment Limitations
2) Programming Knowledge is not required.
3) Recommendable for Dynamically changing GUI designs.
4) Manual testing allows for human observation, which may be more useful to find potential defects.

Test Automation

Testing the Software using any automation tool is called Test
Automation.


Advantages of test Automation:

1.Fast
2.Reliable
3.Reusable
4.Repeatable
5. Programmable

Drawback of Automation Testing:

1.It is Expensive
2.Lack of Expertization.

3.Requires Constant maintenance.
4.We cannot automate all the areas(Either technology may not be supported or it will
be very costly).

Example for technical limitations:

1.Multimedia Testing
2.Game testing
3.Printer Testing
4.Usability Testing
5.Adhock Testing
6.Verification of graphics charts & Animations
7.Captcha
8.Authentication through card swiping or Biomatrix scanning.
9.Entering product details through bar code scanning.
10.Tracking patient/instrument movement through RFID (Radio-Frequency
Identification)

Sunday, March 22, 2020

Regression Testing V/s Retesting

Regression Testing

Re Testing

Testing the unchanged functionalities of application to make sure it is not broken because of changes.
Verifying whether the bug is fixed or not
Defect verification is not the part of Regression Testing

Defect verification is the part of re-testing

Based on the project and availability of resources, Regression Testing can be carried out parallel with Re-testing

Priority of re-testing is higher than regression testing, so it is carried out before regression testing

You can do automation for regression testing, Manual Testing could be expensive and time-consuming

You cannot automate the test cases for Retesting

Regression testing is done for passed test cases

Retesting is done only for failed test cases

Regression testing checks for unexpected side-effects

Re-testing makes sure that the original fault has been corrected

Test cases for regression testing can be obtained from the functional specification, user tutorials and manuals, and defect reports in regards to corrected problems

Test cases for retesting cannot be obtained before start testing.

Regression Testing



Regression Testing is a type of testing that is done to verify that a code change in the software does not impact the existing functionality of the product.This is to make sure the product works fine with new functionality, bug fixes or any change in the existing feature. Previously executed test cases are re-executed in order to verify the impact of change.

Testing the unchanged features in order to make sure that it broken because of changes,here changes would be addition of new feature, modification of existing feature, removal of feature or bug fixes.

OR

Re execution of same test cases in different build or test cycle is in order to insure that changes are not impacted unchanged features.

Regression V/S Re-Testing:


Selecting test cases for regression testing

It was found from industry data that a good number of the defects reported by customers were due to last minute bug fixes creating side effects and hence selecting the Test Case for regression testing is an art and not that easy. Effective Regression Tests can be done by selecting the following test cases.


             Test cases which have frequent defects
             Functionalities which are more visible to the users
             Test cases which verify core features of the product
             Test cases of Functionalities which has undergone more and                 recent changes
             All Integration Test Cases
             All Complex Test Cases
             Boundary value test cases
             A sample of Successful test cases
             A sample of Failure test cases

Challenges in Regression Testing:

     With successive regression runs, test suites become fairly large.  Due to time and budget constraints, the entire regression test suite cannot be executed

     Minimizing the test suite while achieving maximum Test coverage remains a challenge

     Determination of frequency of Regression Tests, i.e., after every modification or every build update or after a bunch of bug fixes, is a challenge.

Regression Testing Tools:
        Selenium
        Ranorex Studio
        Katalon Studio
        AdventNet QEngine
        Regression Tester
        vTest
        Watir
        actiWate
        Rational Functional Tester
        SilkTest
        TimeShiftX



Friday, February 21, 2020

Advantage of Agile Methodology

Advantage of Agile Methodology

There are various advantages of using agile methodology over traditional waterfall model or others. Agile development methodology and testing practices have worked wonders for numerous organizations with positive aspects. Its positive aspects are not hidden, it is very much visible in the organization.

Advantages of Agile Methodology

  1. Customer satisfaction is rapid, continuous development and delivery of useful software.
  2. Customer, Developer, and Product Owner interact regularly to emphasize rather than processes and tools.
  3. Product is developed fast and frequently delivered (weeks rather than months.)
  4. A face-to-face conversation is the best form of communication.
  5. It continuously gave attention to technical excellence and good design.
  6. Daily and close cooperation between business people and developers.
  7. Regular adaptation to changing circumstances.
  8. Even late changes in requirements are welcomed.
Advantage of Agile Methodology

Disadvantages of Agile methodology:

  1. It is not useful for small development projects.
  2. There is a lack of intensity on necessary designing and documentation.
  3. It requires an expert project member to take crucial decisions in the meeting.
  4. Cost of Agile development methodology is slightly more as compared to other development methodology.
  5. The project can quickly go out off track if the project manager is not clear about requirements and what outcome he/she wants.

Advantages of the Waterfall Model:

  1. It is one of the easiest and traditional model to manage. Because of its traditional development nature, each phase has specific deliverables and a review process.
  2. It works well in smaller size projects where requirements are easily understandable.
  3. It has a faster product delivery model.
  4. There are well-documented process and results.
  5. Easily adaptable method for shifting teams
  6. This project management methodology is beneficial to manage dependencies.
Advantage of Agile Methodology

Disadvantages of Waterfall Model:

  1. It is not an ideal model to develop a large scale project size.
  2. It requires a clear-cut requirement at the beginning time; otherwise, it may lead to a less effective method.
  3. It is difficult to move back to make changes in the previous phase.
  4. The testing process starts once development is completed. Hence, it has high chances of bugs to be found later in project development. Due to this, it is costly to fix.

Compression between the Agile methodology and Waterfall model:

Agile methodologyWaterfall model
It follows the incremental approach.It is a sequential design process.
It divides the project development lifecycle into a sprint.The software development process is divided into distinct phases.
Agile methodology is a flexible methodology.The Waterfall is a structured software development methodology.
Agile is the collection of many different projects.It is completed as one single project.
The test plan is reviewed after each sprintTest plan is reviewed after complete development.
Testing team can take part in the requirements change phase without problems.It is difficult for the test to initiate any change in needs.

Advantages, Disadvantages of Agile


Advantages of Agile model:
  • Customer satisfaction by rapid, continuous delivery of useful software.
  • People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other.
  • Working software is delivered frequently (weeks rather than months).
  • Face-to-face conversation is the best form of communication.
  • Close, daily cooperation between business people and developers.
  • Continuous attention to technical excellence and good design.
  • Regular adaptation to changing circumstances.
  • Even late changes in requirements are welcomed
Disadvantages of Agile model:
  • In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.
  • There is lack of emphasis on necessary designing and documentation.
  • The project can easily get taken off track if the customer representative is not clear what final outcome that they want.
  • Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources.
When to use Agile model:
  • When new changes are needed to be implemented. The freedom agile gives to change is very important. New changes can be implemented at very little cost because of the frequency of new increments that are produced.
  • To implement a new feature the developers need to lose only the work of a few days, or even only hours, to roll back and implement it.
  • Unlike the waterfall model in agile model very limited planning is required to get started with the project. Agile assumes that the end users’ needs are ever changing in a dynamic business and IT world. Changes can be discussed and features can be newly effected or removed based on feedback. This effectively gives the customer the finished system they want or need.
  • Both system developers and stakeholders alike, find they also get more freedom of time and options than if the software was developed in a more rigid sequential way. Having options gives them the ability to leave important decisions until more or better data or even entire hosting programs are available; meaning the project can continue to move forward without fear of reaching a sudden standstill.

Agile Methodology



AGILE:
It is a iterative and incremental approach.
The main goal of agile is customer satisfaction by quick delivery of working software.
PRINCIPLE OF AGILE METHODOLOGY
  • Customer can change the requirement at any point of development stage.
  • Release should be short.
  • There will be good communication between customer, BA, developer and Test Engineer.
  • It is simple model to adopt.
  • Developers and test engineers will be doing lot of meetings at regular intervals in order to improve the quality of process.
What is agile testing?
Testing the software by following the principle of agile methodology is called agile testing.
Types of agile methodologies?
1.      Scrum methodologies
2.      XP (Extreme Programming)
3.      FDD (Feature driven development)
4.      Crystal Clear
5.      Lean and Kanban
6.      ASDM (Adoptive Software Development Method)
7.      DSDM (Dynamic Software Development Method)

Scrum methodologies/Scrum Process:
1.      Release:  Combination of sprints is called release
2.      EPIC: Complete set of requirement is called EPIC
One EPIC consist of multiple features or modules

User Stories/Stories/Story Cards:
Feature or modules or functionalities is called as Stories
One EPIC consist of multiple stories

Story Point:
It is rough estimation given developer and test engineer to develop and test individual stories
Ex: 
1 story point=9 hours
1 SP=6
1 SP=8
Story point should be in Fibonacci series
QA Story points estimated based on the following aspects:
Time spent on understanding story
Write test scenarios
Write test cases
Review test cases
Test case execution
Defect tracking

Developer Story points estimated based on the following aspects:
Understanding requirements
Design
Coding
Reviewing code
WBT
Time spent on fixing the defects

Swag:
The rough estimation given by developer and test engineer for every individual stories in the form of hours
Sprint:
Sprint is the actual time spent by developers and test engineer to develop and test one or more stories
Sprint planning:
Sprint planning is a meeting conducted by scrum master on the first day every sprint
Explain the requirement
Identify list of task to be done
Assign task to engineer

Scrum Master:
Scrum master is a person who is responsible for delivery of the software to the customer within a planned period of time.
Scrum master will tract all the activities done by developer, test engineer and BA.
BA/Senior test engineer / senior developer /Project manager and even customer can become Scrum Master.

Scrum Meeting:
It is a meeting conducted by a scrum master on the daily basis.
It is also called as daily stand up meeting
This meeting is strictly bounded for 15 to 20 minutes

In this meeting we discuss below mentioned points
  • What you did yesterday
  • What have you planned today
  • Are there any obstacles or impediments

Sprint retrospective meeting
It is a meeting conducted by scrum master on the last day of every sprint
In this meeting we discuss the following points
  • What went well
  • What didn’t go well
  • Are there any actions plan

Release retrospective meeting
It is the meeting conducted by scrum master on the last day of every sprint

Bug triage meeting:
This is the meeting conducted by the test engineer or scrum master a week or 2 week before the release.
BA,TE,Developer and SM will be a part of meeting
In this meeting test engineer list all the open and pending bugs which are not fixed by the developers in the current and previous release as a team we will re prioritize the defect from the customers’ business point of view and decide how many bugs should be fixed as part of a current release and how many bugs can be move to upcoming release.

Product Backlog meeting:
This is a meeting conducted by a BA or SM a week or 2 week before the release
In this meeting test engineer and developer come up with list all the pending stories
Which are not implemented as part of the current and previous release.
As a team we will re prioritize all the stories from the business point of view and decide how many stories can be in implemented in the current release and how many  stories can move to next upcoming sprint or releases.

Chickens and Pigs:

Chickens are the set of people who are not actually committed to the project and they will not do any contributed towards  the project where in they will get the business and get the work done by other people.
Ex: Customers, Stake holder and management team.

Pigs are the people who actually works on the project, committed to the project and contribute towards the project.

Ex: Test engg, Dev engg, Scrum master, BA etc.

WHAT IS A BURNDOWN CHART?
A burndown chart shows the amount of work that has been completed in an epic or sprint, and the total work remaining. Burndown charts are used to predict your team's likelihood of completing their work in the time available. They're also great for keeping the team aware of any scope creep that occurs.

Burndown charts are useful because they provide insight into how the team works. For example:
  • If you notice that the team consistently finishes work early, this might be a sign that they aren't committing to enough work during sprint planning. 
  • If they consistently miss their forecast, this might be a sign that they've committed to too much work.
  • If the burndown chart shows a sharp drop during the sprint, this might be a sign that work has not been estimated accurately, or broken down properly.

Resume points:
Experience:
Worked on Agile Scrum Development process.
 Involved in Sprint planning meeting,Daily stand up meeting and Sprint Retrospective meeting.
Fresher:
Excellent knowledge on Agile Scrum Development process.
Very good knowledge on Sprint planning meeting.
Very good knowledge on Scrum meeting.
Very good knowledge on Sprint Retrospective meeting.

Agile vs Waterfall
Waterfall challenges
Poor quality
Poor visibility
Too risky
Can't handle change

The Agile Approach
 Quality improves because testing starts from day one.
Visibility improves because you are 1/2 way through the project when you have built 1/2 the features.
 Risk is reduced because you are getting feedback early, and
Customers are happy because they can make changes without paying exorbitant costs.
The Sprint Review
Purpose
Sprint Review Meeting is all about demonstrating the work done and gather the feedback and buy-in. At some places, the Sprint Review meeting is also known as Sprint Demo. Sprint Review Meeting is usually done at the end of the sprint but before the Sprint Retrospective meeting.
What are the disadvantages of the agile model?
Answer: Some of the disadvantages of using agile model are as follows:
a) Not easy to predict: When you encounter a large project, it is not easy to get an idea how much effort will it need
b) If the guidelines given by the customers is not properly grasped, then final outcome of the project is not customer satisfying
c) Sometimes focusing on design and documentation is not proper
d) High-level decisions are under the hand of Veterans, if not combined with non-experienced one, freshers have little scope to grasp proper knowledge.