Published October 17, 2015 by

Re-Testing & Regression Testing

Re-Testing: After a defect is detected and fixed, the software should be retested to confirm that the original defect has been successfully removed. This is called Confirmation Testing or Re-Testing
Regression testing:  Testing your software application when it undergoes a code change to ensure that the new code has not affected other parts of the software.

Retesting:

In this type of testing, the tester re tests the application which was earlier reported as a bug and now fixed by the developer. This bug can be due to functionality issues as well as design issues. Retesting the functionality of a button which was previously not working or testing the alignment issues of a page etc can be listed as examples for retesting.


Regression testing is done to test whether the changes made on the site have any impact on other modules which were earlier working fine. New requirement change, implementation of new functionality are some of the scenarios where regression testing is effective. Regression testing can be automated using effective automated tools such as Selenium, Quick Test Professional etc.

Regression testing:
Refer the given example for further understanding:
For example, we have a image uploading field which supports only certain image formats say JPG, PNG etc. Suppose one of the image formats failed (say JPG) and the developer fixed it. Testing the functionality, after fixing this bug is retesting. Here, testing and ensuring whether this new change (fixes) has not altered the working of other fields on that page is regression testing.
Read More
    email this
Published October 17, 2015 by

Smoke Vs Sanity Testing



Smoke and Sanity testing are the most misunderstood topics in Software Testing. There is enormous amount of literature on the subject, but most of them are confusing. The following article makes an attempt to address the confusion.
The key differences between Smoke and Sanity Testing can be learned with the help of following diagram -

what is a Software Build?

 If you are developing a simple computer program which consists of only one source code file, you merely need to compile and link this one file, to produce an executable file. This process is very simple.
Read More
    email this
Published October 17, 2015 by

What is Exploratory testing in software testing?

  • As its name implies, exploratory testing is about exploring, finding out about the software, what it does, what it doesn’t do, what works and what doesn’t work. The tester is constantly making decisions about what to test next and where to spend the (limited) time. This is an approach that is most useful when there are no or poor specifications and when time is severely limited.
  • Exploratory testing is a hands-on approach in which testers are involved in minimum planning and maximum test execution.
Read More
    email this
Published October 17, 2015 by

Adhoc Testing

Ad hoc Testing, also known as Random Testing or Monkey Testing, is a method of software testingwithout any planning and documentation. The tests are conducted informally and randomly without any formal expected results.

Adhoc testing is an informal testing type with an aim to break the system. This testing is usually an unplanned activity . It does not follow any test design techniques to create test cases. In fact is does not create test cases altogether! This testing is primarily performed if the knowledge of testers in the system under test is very high. Testers randomly test the application without any test cases or any business requirement document.

Read More
    email this
Published October 17, 2015 by

User Acceptance Testing (UAT)

What is User Acceptance Testing?
User Acceptance testing is the software testing process where system tested for acceptability & validates the end to end business flow. Such type of testing executed by client in separate environment (similar to production environment) & confirm whether system meets the requirements as per requirement specification or not.
UAT is performed after System Testing is done and all or most of the major defects have been fixed. This testing is to be conducted in the final stage of Software Development Life Cycle (SDLC) prior to system being delivered to a live environment. UAT users or end users are concentrating on end to end scenarios & typically involves running a suite of tests on the completed system.
The Acceptance testing is “black box” tests, means UAT users doesn’t aware of internal structure of the code, they just specify the input to the system & check whether systems respond with correct result.

Read More
    email this
Published October 17, 2015 by

Gray Box Testing

Gray Box Testing is a software testing method which is a combination of Black Box Testing method andWhite Box Testing method. In Black Box Testing, the internal structure of the item being tested is unknown to the tester and in White Box Testing the internal structure in known. In Gray Box Testing, the internal structure is partially known. This involves having access to internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level.

Gray Box Testing is named so because the software program, in the eyes of the tester is like a gray/ semi-transparent box; inside which one can partially see.

EXAMPLE
An example of Gray Box Testing would be when the codes for two units/ modules are studied (White Box Testing method) for designing test cases and actual tests are conducted using the exposed interfaces (Black Box Testing method).

Read More
    email this
Published October 17, 2015 by

What is Compatibility testing in software testing?

  • It is a type of non-functional testing.
  • Compatibility testing is a type of software testing used to ensure compatibility of the system/application/website built with various other objects such as other web browsers, hardware platforms, users (in case if it’s very specific type of requirement, such as a user who speaks and can read only a particular language), operating systems etc. This type of testing helps find out how well a system performs in a particular environment that includes hardware, network, operating system and other software etc.
  • It is basically the testing of the application or the product built with the computing environment.
  • It tests whether the application or the software product built is compatible with the hardware, operating system, database or other system software or not.

Read More
    email this
Published October 17, 2015 by

What is Recovery testing in software?

  • It is a type of non-functional testing.
  • Recovery testing is done in order to check how fast and better the application can recover after it has gone through any type of crash or hardware failure etc.
Read More
    email this
Published October 17, 2015 by

What is Security testing in software testing?


  • It is a type of non-functional testing.
  • Security testing is basically a type of software testing that’s done to check whether the application or the product is secured or not. It checks to see if the application is vulnerable to attacks, if anyone hack the system or login to the application without any authorization.
  • It is a process to determine that an information system protects data and maintains functionality as intended.
Read More
    email this
Published October 17, 2015 by

What is Performance testing in software?

  • It is  a type of non-functional testing.
  • Performance testing is testing that is performed, to determine how fast some aspect of a system performs under a particular workload.
  • It can serve different purposes like it can demonstrate that the system meets performance criteria.
  • It can compare two systems to find which performs better. Or it can measure what part of the system or workload causes the system to perform badly.
Read More
    email this
Published October 17, 2015 by

What is Non-functional testing ?

In non-functional testing the quality characteristics of the component or system is tested. Non-functional refers to aspects of the software that may not be related to a specific function or user action such as scalability or security. Eg. How many people can log in at once? Non-functional testing is also performed at all levels like functional testing.
Non-functional testing includes:
Read More
    email this
Published October 17, 2015 by

Cookies & Sessions testing

COOKIE: 

A cookie keep information in the user’s browser until it is deleted from there. We can store almost anything in browser cookies. The problem with cookies are that anyone can block or delete cookie content at any time, so if any application is dependent on browser cookie then that application would not work if cookie is deleted or blocked.

SESSION:

Sessions are implemented by using cookies, the actual data is not in the browser; it is stored in the user's session record on the server. They work instead like a token allowing access and passing information while the user has their browser open. The main problem with session is that as soon as we close the browser we lose the session and all the information get lost.
Read More
    email this
Published October 17, 2015 by

Database Testing

Why do we test a database?

Below, we will briefly see why the following aspects of a DB should be validated:
1) Data Mapping: In the software systems, data often travels back and forth from the UI (user interface) to the backend DB and vice versa. So following are the aspects to look for:
  • To check whether the fields in the UI/Front end forms and mapped consistently with the corresponding DB table (and also the fields within).  Typically this mapping information is defined in the requirements documents.
  • Whenever a certain action is performed in the front end of an application, a corresponding CRUD (Create, Retrieve, Update and delete) action gets invoked at the back end. A tester will have to check if the right action is invoked and the invoked action in itself is successful or not.

Read More
    email this
Published October 17, 2015 by

Error handling testing

  • The main objective of the Error handling testing techniques is to ensure that the applications are capable to handling incorrect Transactions.
  • The application is smart enough to identify the incorrect transactions and approximate decision need to take and intimate the end user.
Read More
    email this
Published October 17, 2015 by

Input domain testing (ECP, BVA)

Boundary value analysis and Equivalence Class Partitioning both are test case design techniques in black box testing. In this article we are covering “What is Boundary value analysis and equivalence partitioning & its simple examples”.

What is Equivalence Class Partitioning?

Equivalence partitioning is a Test Case Design Technique to divide the input data of software into different equivalence data classes. Test cases are designed for equivalence data class. The equivalence partitions are frequently derived from the requirements specification for input data that influence the processing of the test object. A use of this method reduces the time necessary for testing software using less and effective test cases.

Read More
    email this
Published October 17, 2015 by

What is functionality testing in software?

Functionality testing is performed to verify that a software application performs and functions correctly according to design specifications. During functionality testing we check the core application functions, text input, menu functions and installation and setup on localized machines, etc.
 The following is needed to be checked during the functionality testing:
  • Installation and setup on localized machines running localized operating systems and local code pages.
Read More
    email this
Published October 17, 2015 by

GUI Testing

GUI Testing is nothing but testing the design of the application.

Verifying the User interface of the application means how the front end design, colors,  fonts, font sizes, Labels, Text format, Text boxes, Captions, Radio Buttons, buttons, list boxes, Alignments, icons, links, popup, content, tabbing is provided to move between the objects, background, foreground etc  are displayed as specified.
GUI testing is functional testing - ensuring that all interactions, navigation, links, pop-ups, content, etc all work as required.

CONTENTS:-


Read More
    email this
Published October 17, 2015 by

Black Box Testing

Black Box Testing, also known as Behavioral Testing, is a software testing method in which the internal structure/ design/ implementation of the item being tested is not known to the tester. These tests can be functional or non-functional, though usually functional.

black box testing image
This method is named so because the software program, in the eyes of the tester, is like a black box; inside which one cannot see. This method attempts to find errors in the following categories:
Read More
    email this
Published October 17, 2015 by

White Box Testing

White Box Testing (also known as Clear Box Testing, Open Box Testing, Glass Box Testing, Transparent Box Testing, Code-Based Testing or Structural Testing) is a software testing method in which the internal structure/ design/ implementation of the item being tested is known to the tester. The tester chooses inputs to exercise paths through the code and determines the appropriate outputs. Programming know-how and the implementation knowledge is essential. White box testing is testing beyond the user interface and into the nitty-gritty of a system.
Read More
    email this
Published October 17, 2015 by

What are Software Testing Levels?

Testing levels are basically to identify missing areas and prevent overlap and repetition between the development life cycle phases. In software development life cycle models there are defined phases like requirement gathering and analysis, design, coding or implementation, testing and deployment.  Each phase goes through the testing. Hence there are various levels of testing. The various levels of testing are:
  1. Unit testing: It is basically done by the developers to make sure that their code is working fine and meet the user specifications. They test their piece of code which they have written like classes, functions, interfaces and procedures.
Read More
    email this
Published October 17, 2015 by

Review, Inspection & Walkthrough

The main review types that come under the static testing are mentioned below:
 1.    Walkthrough:
  • It is not a formal process
  • It is led by the authors
  • Author guide the participants through the document according to his or her thought process to achieve a common understanding and to gather feedback.
  • Useful for the people if they are not from the software discipline, who are not used to or cannot easily understand software development process.
  • Is especially useful for higher level documents like requirement specification, etc.
Read More
    email this
Published October 17, 2015 by

Static Testing Vs Dynamic Testing

Static Testing 
  • Static testing is the testing of the software work products manually, or with a set of tools, but they are not executed.
  • It starts early in the Life cycle and so it is done during the verification process.
  • It does not need computer as the testing of program is done without executing the program. For example:  reviewing, walk through, inspection, etc.
  • Most static testing techniques can be used to ‘test’ any form of document including source code, design documents and models, functional specifications and requirement specifications.

Read More
    email this
Published October 17, 2015 by

What is Verification in software testing? or What is software verification?

  • It makes sure that the product is designed to deliver all functionality to the customer.
  • Verification is done at the starting of the development process. It includes reviews and meetings, walkthroughs, inspection, etc. to evaluate documents, plans, code, requirements and specifications.
  • Suppose you are building a table. Here the verification is about checking all the parts of the table, whether all the four legs are of correct size or not. If one leg of table is not of the right size it will imbalance the end product.Similar behavior is also noticed in case of the software product or application. If any feature of software product or application is not up to the mark or if any defect is found then it will result into the failure of the end product. Hence, verification is very important. It takes place at the starting of the development process.
Read More
    email this
Published October 17, 2015 by

Quality Assurance vs Quality Control – What is the Difference?

What is Quality?
Quality is meeting the requirement, expectation and needs of the customer being free from defects, lacks and substantial variants. There are standards needs to follow to satisfy the customer requirements.
What is Assurance?
Assurance is provided by organization management, it means giving a positive declaration on a product which obtains confidence for the outcome. It gives a security that the product will work without any glitches as per the expectations or requests.
Recommended Reading => Does Quality Assurance Remove Need for Quality Control?

What is Quality Assurance?

Read More
    email this
Published October 17, 2015 by

What is Spiral model- advantages, disadvantages and when to use it?

The spiral model is similar to the incremental model, with more emphasis placed on risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed. Each subsequent spirals builds on the baseline spiral.
Planning Phase: Requirements are gathered during the planning phase. Requirements like ‘BRS’ that is ‘Bussiness Requirement Specifications’ and ‘SRS’ that is ‘System Requirement specifications’.
Risk Analysis: In the risk analysis phase, a process is undertaken to identify risk and alternate solutions.  A prototype is produced at the end of the risk analysis phase. If any risk is found during the risk analysis then alternate solutions are suggested and implemented.
Engineering Phase: In this phase software is developed, along with testing at the end of the phase. Hence in this phase the development and testing is done.
Evaluation phase: This phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral.
Diagram of Spiral model:
Read More
    email this
Published October 17, 2015 by

What is Iterative model- advantages, disadvantages and when to use it?

An iterative life cycle model does not attempt to start with a full specification of requirements. Instead, development begins by specifying and implementing just part of the software, which can then be reviewed in order to identify further requirements. This process is then repeated, producing a new version of the software for each cycle of the model.
For example:
Iterative model example

Read More
    email this
Published October 17, 2015 by

What is Agile model – advantages, disadvantages and 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.
Diagram of Agile model:
Agile model in Software testing

Read More
    email this
Published October 17, 2015 by

What is RAD model- advantages, disadvantages and when to use it?

RAD model is Rapid Application Development model. It is a type of incremental model. In RAD model the components or functions are developed in parallel as if they were mini projects. The developments are time boxed, delivered and then assembled into a working prototype.  This can quickly give the customer something to see and use and to provide feedback regarding the delivery and their requirements.
Diagram of RAD-Model:
RAD model

Read More
    email this
Published October 17, 2015 by

What is Incremental model- advantages, disadvantages and when to use it?

In incremental model the whole requirement is divided into various builds. Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle.  Cycles are divided up into smaller, more easily managed modules.  Each module passes through the requirements, design, implementation and testing phases. A working version of software is produced during the first module, so you have working software early on during the software life cycle. Each subsequent release of the module adds function to the previous release. The process continues till the complete system is achieved.
For example:
Example of Incremental model in software testing
Read More
    email this
Published October 17, 2015 by

What is V-model- advantages, disadvantages and when to use it?

V- model means Verification and Validation model. Just like the waterfall model, the V-Shaped life cycle is a sequential path of execution of processes. Each phase must be completed before the next phase begins.  Testing of the product is planned in parallel with a corresponding phase of development.
Diagram of V-model:
V-model

Read More
    email this
Published October 17, 2015 by

What is Waterfall model- advantages, disadvantages and when to use it?

The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model.  It is very simple to understand and use.  In a waterfall model, each phase must be completed fully before the next phase can begin. This type of model is basically used for the for the project which is small and there are no uncertain requirements. At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. In this model the testing starts only after the development is complete. In waterfall model phases do not overlap.
Diagram of Waterfall-model: 
Waterfall model

Read More
    email this
Published October 17, 2015 by

What are the Software Development Models?

The development models are the various processes or methodologies that are being selected for the development of the project depending on the project’s aims and goals. There are many development life cycle models that have been developed in order to achieve different required objectives. The models specify the various stages of the process and the order in which they are carried out.
 The selection of model has very high impact on the testing that is carried out. It will define the what, where and when of our planned testing, influence regression testing and largely determines which test techniques to use.
Read More
    email this