Showing posts with label software-testing-levels. Show all posts
Showing posts with label software-testing-levels. Show all posts

Sunday, 30 June 2013

What Is System Testing

What Is System Testing

Testing the behavior of the whole software/system as defined in software requirements specification (SRS) is known as system testing, its main focus is to verify that the customer requirements are fulfilled.

System testing is done after integration testing is complete. 

In system testing, there are two type of testing

System Testing
Click on the image for zoom view

Functionality testing is to test whether application functioning as per requirement or not.

Non-functionality testing are several types :
  • Load,
  • Stress,
  • Performance,
  • Reliability,
  • Security,
  • Usability
  • Configuration,
  • Compatibility (forward & Backward),
  • Scalability, Etc...

Click on the links to read more about Functionality testing and Non-functionality testing

Saturday, 15 June 2013

Integration Testing And Types Of Integration Testing

Define Integration Testing And Types Of Integration Testing

Integration Testing:

Combining the modules and testing the flow of data between them. Integration Testing is divided into 2 types.

  • Incremental Integration Testing:

Adding the modules incrementally and checking the data flow between them. Modules are added in a sequential fashion.

This can be done in two ways 
    • Top-Down Approach
    • Bottom-Up approach.

Tuesday, 21 May 2013

What is Acceptance Testing ?

What is Acceptance Testing :

This is arguably the most importance type of testing as it is conducted by the Quality Assurance Team who will gauge whether the application meets the intended specifications and satisfies the client.s requirements. The QA team will have a set of pre written scenarios and Test Cases that will be used to test the application.

More ideas will be shared about the application and more tests can be performed on it to gauge its accuracy and the reasons why the project was initiated. Acceptance tests are not only intended to point out simple spelling mistakes, cosmetic errors or Interface gaps, but also to point out any bugs in the application that will result in system crashers or major errors in the application.

By performing acceptance tests on an application the testing team will deduce how the application will perform in production. There are also legal and contractual requirements for acceptance of the system.

Non-Functional Testing - Performance, Usability, Security, Portability

Non-Functional Testing

  • Performance Testing

    • Load Testing
    • Stress Testing

  • Usability Testing

    • UI VS Usability Testing

  • Security Testing

  • Portability Testing

Non-Functional Testing definition :

This section is based upon the testing of the application from its non-functional attributes. Non-functional testing of Software involves testing the Software from the requirements which are non functional in nature related but important a well such as performance, security, user interface etc.

Functional Testing - Unit, Integration, System, Acceptance

Functional Testing

  • Unit Testing
  • Integration testing

    • Bottom-up integration
    • Top-down integration

  • System Testing
  • Regression Testing

    • Alpha Testing
    • Beta Testing

Functional Testing definition :

This is a type of black box testing that is based on the specifications of the software that is to be tested. The application is tested by providing input and then the results are examined that need to conform to the functionality it was intended for. Functional Testing of the software is conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements.

Thursday, 14 March 2013

What is Acceptance Testing - Alpha, Beta Testing

What is Acceptance Testing :

This is arguably the most importance type of testing as it is conducted by the Quality Assurance Team who will gauge whether the application meets the intended specifications and satisfies the client.s requirements. The QA team will have a set of pre written scenarios and Test Cases that will be used to test the application.

More ideas will be shared about the application and more tests can be performed on it to gauge its accuracy and the reasons why the project was initiated. Acceptance tests are not only intended to point out simple spelling mistakes, cosmetic errors or Interface gaps, but also to point out any bugs in the application that will result in system crashers or major errors in the application.

By performing acceptance tests on an application the testing team will deduce how the application will perform in production. There are also legal and contractual requirements for acceptance of the system.

When is it performed?

Acceptance Testing is performed after System Testing and before making the system available for actual use.

Who performs it?

  • Internal Acceptance Testing (Also known as Alpha Testing) is performed by members of the organization that developed the software but who are not directly involved in the project (Development or Testing). Usually, it is the members of Product Management, Sales and/or Customer Support.
  • External Acceptance Testing is performed by people who are not employees of the organization that developed the software.
  • Customer Acceptance Testing is performed by the customers of the organization that developed the software. They are the ones who asked the organization to develop the software for them. [This is in the case of the software not being owned by the organization that developed it.]
  • User Acceptance Testing (Also known as Beta Testing) is performed by the end users of the software. They can be the customers themselves or the customers’ customers.

Definition by ISTQB for Acceptance Testing

Formal testing with respect to user needs, requirements, and business processes conducted to determine  whether or not a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system.

Define Alpha-Beta Testing :

Alpha Testing

This test is the first stage of testing and will be performed amongst the teams (developer and QA teams). Unit testing, integration testing and system testing when combined are known as alpha testing. During this phase, the following will be tested in the application:
  • Spelling Mistakes
  • Broken Links
  • Cloudy Directions
The Application will be tested on machines with the lowest specification to test loading times and any latency problems.

Beta Testing

This test is performed after Alpha testing has been successfully performed. In beta testing a sample of the intended audience tests the application. Beta testing is also known as pre-release testing. Beta test versions of software are ideally distributed to a wide audience on the Web, partly to give the program a "real-world" test and partly to provide a preview of the next release. In this phase the audience will be testing the following:
  • Users will install, run the application and send their feedback to the project team.
  • Typographical errors, confusing application flow, and even crashes.
  • Getting the feedback, the project team can fix the problems before releasing the software to the actual users.
  • The more issues you fix that solve real user problems, the higher the quality of your application will be.
  • Having a higher-quality application when you release to the general public will increase customer satisfaction.

Sunday, 3 March 2013

Unit Testing - Definition, Execution, Disadvantages

Unit Testing:


unit-testing
Click on the image for zoom view

A unit is smallest testable piece of software :

  • Can be compiled, linked, loaded
  • E.g functions/procedures, classes, interfaces
  • Normally done by programmer
  • Test cases written after coding

Top-down and Bottom-up Software Testing approaches

Top-down and Bottom-up Software Testing approaches

Types of Software Testing Approaches :

  • Top-down 
  • Bottom-up

software-testing-approaches

Top-down and bottom-up are both strategies of information processing and knowledge ordering, used in a variety of fields including software, humanistic and scientific theories (see systemics), and management and organization. In practice, they can be seen as a style of thinking and teaching.


Levels of Software Testing

What are the Levels of Software Testing ?

There are different levels during the process of Testing. In this chapter a brief description is provided about these levels.

levels-of-testing

Why test at different levels ?

  • Software development naturally splitto phases
  • Easily track bugs
  • Ensures a working subsystem / component / library
  • Software re-use more practical 

Levels of testing include the different methodologies that can be used while conducting Software Testing. Following are the main levels of Software Testing:

1) Functional Testing

  • Integration testing
  • System Testing
  • Regression Testing

    • Alpha Testing
    • Beta Testing

2) Non-Functional Testing

  • Performance Testing

    • Load Testing
    • Stress Testing

  • Usability Testing

    • UI VS Usability Testing

  • Security Testing

  • Portability Testing