Testing Basic Interview Questions : January 2012

What Is Functional Testing Explain It with Example?

Functional testing means testing the application against business requirements. Functional testing is executed using the functional specifications given by the client or by the design specifications according to use cases given by the design team. Role of functional testing is to validating the behavior of an application.

Functional testing is more important because it always verifies that your system is fixed for release. The functional tests define your working system in a useful manner. In functional testing tester has to validate the application to see that all specified requirements of the client whatever we have said in SRS or BRS have been incorporated or not.

Functional testing is always concentrating on customer requirements and whereas the Non-Functional testing is always concentrating on customer expectations.

Functional and Non Functional Test Cases

Functional test cases target business goals and non functional test cases target performance, resource utilization, usability, compatibility etc. Functional testing is a part of system testing.

Example of functional testing is explained below


Considering example if you are functionally testing a word processing application, a partial list of checks you would perform minimally includes creating, saving, editing, spell checking and printing documents.

Regression Testing with Example and Strategies

Regression Testing is done to ensure that fixed bug does not affect the remaining functionality of the modules and also the functionality of the same module.

In short you can say regression testing
 is always done to verify that modified code does not break the existing functionality of the application and works within the requirements of the system.


Regression Testing Example 

For Example there are three Modules in the Project named Admin Module, Personal Information, and Employment Module and suppose bug occurs in the Admin Module like on Admin Module existing User is not able to login with valid login credentials so this is the bug. 

Now Testing team sends the above - mentioned Bug to the Development team to fix it and when development team fixes the Bug and hand over to Testing team than testing team checks that fixed bug does not affect the remaining functionality of the other modules (Admin, PI, Employment) and also the functionality of the same module (Admin) so this is known as the process of regression testing done by Software Testers.

Regression Testing and its Strategies?

Regression testing is achieved after the bug fixed, means testing the operation whether the fixed defect is affecting remaining functionality of the application or not. Usually in regression testing bug fixed module is tested. During regression testing tester always check the entire system whether the fixed bug make any adverse affect in the existing system or not.

There are mostly two strategies to regression testing, 1) to run all tests and 2) always run a subset of tests based on a test case prioritisation technique.

When will we do Regression Testing?

Regression testing is the re-testing of features to make safe that features working earlier are still working fine as desired.

It is executed when any new build comes to QA, which has bug fixes in it or during releasing cycles (Alpha, Beta or GA) to always originate the endurance of product.

Conclusion:

At last in simple terms we conclude that regression testing will be conducted after any bug fixed or any functionality changed.

What Is Sanity Testing Explain It with Example?

Sanity Testing is the subset of Regression Testing and it is performed when we do not have enough time for doing testing.

Sanity testing is the surface level testing where QA engineer verifies that all the menus, functions, commands available in the product and project are working fine.

Sanity Testing Example

For Example in a project there are five modules like login page, home page, user detail page, new user creation, and task creation etc. So we have the bug in login page like on login page username field accepts the less than six alpha-numeric characters which are against the requirements as in requirements it is specified that username should not be below than six characters but as username accepts the less than six characters it is the bug.

What Is Smoke Testing with Example?

Smoke testing is the surface level testing to certify that build provided by development to QA is ready to accept for further testing. 

What is Smoke Testing?

Smoke testing is non-extensive software testing, which makes sure that the most crucial functions of a program work, but not bothering with finer details because in smoke testing we only checks the major functionality of the software.

Smoke testing is performed by developers before releasing the build to the testing team and after releasing the build to the testing team it is performed by testers whether to accept the build for further testing or not. 

Smoke Testing Example

For Example in a project there are five modules like login, view user, user detail page, new user creation, and task creation etc. So in this five modules first of all developer perform the smoke testing by executing all the major functionality of modules like user is able to login or not with valid login credentials and after login new user can created or not, and user that is created viewed or not. So this is smoke testing always done by developing team before submitting (releasing) the build to the testing team.

Now once the build is released to the testing team than the testing team has to check whether to accept or reject the build by testing the major functionality of the build. So this is the smoke test done by testers.


Why Smoke Testing is known as Build Acceptance Testing?

Smoke testing is also known by the name BAT (Build Acceptance Test) because it establishes the acceptance criteria for QA to accept and reject a build for further testing. 

So apart from smoke testing it is also very important for software people to know about build. 


What is Build in Software Testing?
A build is called as the version of software, typically one that is still in testing stage.

Conclusion:
If the build clears the Smoke test, then it is accepted by QA for further testing, however if the build fails the Smoke testing, then it’s rejected and QA reverts back to previously accepted build.

Difference Between Verification And Validation With Example?

Verification and Validation example is also given just below to this table. 

             Verification
             Validation
1. Verification is a static practice of verifying documents, design, code and program.
1. Validation is a dynamic mechanism of validating and testing the actual product.
2. It does not involve executing the code.
2. It always involves executing the code.
3. It is human based checking of documents and files.
3. It is computer based execution of program.
4. Verification uses methods like inspections, reviews, walkthroughs, and Desk-checking etc.
4. Validation uses methods like black box (functional)  testing, gray box testing, and white box (structural) testing etc.
5. Verification is to check whether the software conforms to specifications.
5. Validation is to check whether software meets the customer expectations and requirements.
6. It can catch errors that validation cannot catch. It is low level exercise.
6. It can catch errors that verification cannot catch. It is High Level Exercise.
7. Target is requirements specification, application and software architecture, high level, complete design, and database design etc.
7. Target is actual product-a unit, a module, a bent of integrated modules, and effective final product.
8. Verification is done by QA team to ensure that the software is as per the specifications in the SRS document.
8. Validation is carried out with the involvement of testing team.
9. It generally comes first-done before validation.
9. It generally follows after verification.

Example of verification and validation are explained below:-


Suppose we have the specifications related to the project than by checking that specifications without executing to see whether the specifications are up to the mark or not is what we have done in verification.

Similarly Validation of the software is done to make sure that the software always meets the requirements of the customer by executing the specifications of the project and product. 

Note that the customer and end users are concerned in validation of the software. 

It is also crucial to differentiate between end users, and customers. Considering example, if you are developing a library monitoring system, the librarian is the client and the person who issue the books, collect fines etc. are comes under the category of the end users.

Techniques or Methods of Verification and Validation


Methods of Verification

1. Walkthrough

2. Inspection
3. Review
Methods of Validation
1. Testing

2. End Users

Conclusion:

1) Verification and Validation both are necessary and complementary.
2) Both of them provides its own sets of Error Filters.
3) Each of them has its own way of detect out the errors left in the software.

Lots of people use verification and validation interchangeably but both have different meanings. 

Verification process describes whether the outputs are according to inputs or not, and 

Validation  process describes whether the software is accepted by the user or not.

Note:
If you remain have any problem regarding Difference between Verification and Validation than you can definitely discuss with me in comments section below. 

What Is Integration Testing Explain It with Example?

When individual software modules are merged and tested as a group than it is known as integration testing. Integration testing is sets between Unit Testing and System Testing.


Integration Testing Example

For example you have to test the keyboard of a computer than it is a unit testing, but when you have to combine the keyboard and mouse of a computer together to see its working or not than it is the integration testing. So it is prerequisite that for performing integration testing, a system must be unit tested before.

Black-box test case design tactics are the most typical during integration, although limited amount of testing of white box may be used to ensure description of major control paths. 


Why we need integration testing?

Integration testing is executed to establish whether the components interact with each other consort to the specification or not. Integration testing in large refers to joining all the components resulting in the complete system. It is further performed by the developer or the software Tester or by both. Example- checking that a Payroll system interacts as required with the Human Resource system.

Integration Testing Types

1) Top-Down Integration Testing: As the name suggests, this testing always starts at the top of the program hierarchy and travels towards its branches. This can be done in either depth-first or breadth-first.

2) Bottom-Up Integration Testing: This testing always starts at the lowest level in the program structure.

Techniques of integration testing 


1) Top-down testing approach
2) Bottom-up testing approach
3) Big-Bang testing approach
4) Sandwiched testing approach

Conclusion: 

At last we conclude that Integration testing focuses on testing multiple modules working together and this testing is one of the extensive exercises of the software testing in which particular software modules are merged and tested as a group. 

What Is Unit Testing Explain It with Example?

Unit testing is a confusing part of the software development process. Unit testing involves individually testing unit of code separately to make sure that it works on its own, independent of the other units. 

Unit testing is essentially a set of path, test performed to examine the several different paths through the modules. Unit testing is remarkably done by programmers with the help of Unit framework (like J Unit, CPP Unit etc. depending up on the language source code is written). Unit testing is usually an automated process and performed within the programmers IDE.

Unit testing is an action used to validate that separate units of source code remains working properly. Example: - A function, method, Loop or statement in program is working fine. It is executed by the Developer. In unit testing Individual functions or procedures are tested to make sure that they are operating correctly and all components are tested individually.

Unit testing is a strategy that utilizes the white-box method and concentrates on testing individual programming units. These units are sometimes specifying to as modules or atomic modules and they represent the smallest programming entity.


Unit Testing Example

Example of Unit testing is explain below

For example you are testing a function; whether loop or statement in a program is working properly or not than this is called as unit testing. A beneficial example of a framework that allows automated unit testing is JUNIT (a unit testing framework for java). XUnit [20] is a more general framework which supports other languages like C#, ASP, C++, Delphi and Python to name a few.

Tests that are performed during the unit testing are explained below: