Testing Basic Interview Questions : February 2015

Difference between Smoke and Regression Testing in Tabular Form

Distinction between Smoke and Regression Testing - Simple

              Smoke testing
               Regression testing
1. Smoke testing is a surface level testing to verify/ensure that build provided/given by development team to QA team is ready to accept for further testing.
1. Regression testing is not considered as a surface level testing and it is performed/ executed by testers only.
2. Smoke testing is known as a quick-and-dirty test means that the major/crucial functions of a piece of software work/perform without bothering with finer details.
2. Regression testing is not known by the quick-and-dirty test and in this testing testers test the application with more details.
3. It is executed/ performed when testers have to accept a build for further testing.
3. It is executed/performed when tester’s have enough time for testing.
4. Smoke testing may be conducted manually or by using automation tools.
4. Regression testing is also conducted manually or using automated tools.
5. Performing smoke testing will not enlarge the product cost and budget because it didn’t requires more manpower and time.
5. Performing Regression testing definitely will enlarge the product cost and budget because it requires more manpower and time.
6. It is also called as BAT (Build Acceptance Test) or BVT (Build Verification Testing).
6. It is not known by any other name.
7. It is done by developers before the build is released or by testers before accepting a build for further testing.
7. It is usually done by testers only.
8. We use script for smoke testing.
8. We use script for regression testing.


Exact Difference between Adhoc and Exploratory Testing

Difference between Adhoc and Exploratory Testing

           Adhoc Testing
            Exploratory Testing
1. Adhoc Testing means learn the application than test it.
1. Exploratory Testing means test the application while learning.
2. In Exploratory Testing QA is always asked to test an application without any specific set of documents.
2. In Adhoc Testing QA is always asked to test an application with detailed set of documents.
3. In this Testing we always gather information regarding the software/application from complete possible sources and document and then test the application/software.
3. In this Testing we gather the information, and also document and test the application simultaneously.
4. In Adhoc Testing tester should have good knowledge about the application in order to test the software.
4. In Exploratory Testing tester should increases their knowledge by exploring the application/software.
5. In this testing testers have significant testing of the software before test it.
5. In this testing testers may be learning the software before testing it.
6. It is not considered as a type of any.
6. It is considered as a type of Adhoc Testing
7. It is not an approach to testing.
7. It is an approach, not a technique.


Difference between Functional and Non Functional Testing

Before us proceeding towards the Difference between Functional and Non Functional Testing it is very important for us to first take a brief look at Functional and Non Functional Testing.

Functional and Non Functional Testing is what?

Functional testing is performed using the functional specifications provided by the client or you can say by using the design specifications like use cases provided by the design team.

In this, tester has to test the application to see that all requirements of the client which he has said in SRS and BRS have been incorporated or not.
Non Functional Testing is that which is always concerned with the client expectations like performance, load and stress issues and so on.

Distinction between Functional and Non Functional Testing

                  Functional Testing
               Non- Functional Testing
1. In functional Testing tester tests how well the system performs.
1. In Non-Functional Testing tester tests how well the system responds.
2. Functional Testing is based on client requirements.
2. Non- Functional Testing is based on client expectations.
3. Functional Testing means Testing the application against business requirements.
3. Non- Functional Testing means Testing the application against clients and performance requirements.
4. It is a part of System Testing.
4. It is also a part of System Testing
5. Functional Testing Validating the behavior of application.
5. Non- Functional Testing Validating the performance of application.
6. This Testing covers Unit Testing, Integration Testing, Smoke Testing, Sanity Testing, Regression Testing and so on.
6. This Testing covers Load/Performance Testing, Stress/Volume Testing, Security Testing, Installation Testing and so on.
7. It is always concentrating on customer requirements.
7. It is always concentrating on customer expectations.
8. Functional Testing means how is your system is doing.
8. Non- Functional Testing means how well your system is doing example usability, performance and stress testing.


Difference between Sanity and Regression Testing

Distinction between Sanity and Regression Testing

                Sanity Testing
             Regression Testing
1. Sanity testing is a surface level testing where QA engineer verifies that all the menus, functions and commands available/presented in the product are working fine.
1. Regression testing is not a surface level testing.
2. Sanity testing is considered as a subset of regression testing.
2. Regression testing is not considered as a subset of any.
3. This testing is performed/executed when testers have not much/enough time for doing testing.
3. This testing is performed/executed when tester’s have enough time for testing.
4. Sanity testing is usually conducted manually not by using any automation tools.
4. Regression testing may be conducted/consider manually or using automated tools.
5. Performing this type of testing will not enlarge the product/project cost and budget because it didn't require much manpower and time.
5. Performing this type of testing definitely will enlarge the product cost and budget because it requires more manpower and time.
6. Not complete test cases are executed/ performed in the product during sanity testing.
6. During this testing complete test cases are executed/ performed in the product.
7. During this testing tester test the application or product with finer details.
7. During this testing tester test the application or product with more details.
8. We do not use script for sanity testing.
8. We use script for regression testing.

Conclusion

At end we conclude that these are the quick and simple Differences between Sanity and Regression Testing in tabular form but the main difference is in its use. We use Regression Testing when we have enough time for Testing, and we use Sanity Testing when we do not have enough time for Testing.

But keep one thing in mind that purpose of both the Regression and Sanity Testing is same; the only difference is in its use. 

What is Random Testing with example?

Random Testing is also confused with Monkey and GorillaTesting but it is obviously different from Monkey Testing and Gorilla Testing. Here I am writing the post on Random Testing which clears what a Random Testing is and how it is different from Monkey and Gorilla Testing.

Random Testing – Complete Guidance

Random Testing is a black box test design technique where test cases are always selected randomly means by using an algorithm named pseudo random generation, which is used to match an operational profile. This technique of Random Testing is always used for non functional testing attributes such as performance and reliability points.

Random Testing Approach and Method

As the name gives you the answer there is no specific approach to perform the Random Testing because it is an ad-hoc way of software testing. In Random Testing tester always picks some modules randomly to test by giving inputting random values.

Random Testing is a method which is always used to exercise a class. Random Testing is totally based on developing a randomly based test sequence that always tries the minimum number of operations usually to the behavior of the class.

Random Testing Example - Proper Guidance

Below is given the best example on Random Testing which clears more means what a Random Testing is all about.

For example you are testing a website which is full of images means website is totally based on images and there is less content on that. Now as you know it is time consuming to test all the images so you randomly select some images to test than it is Random Testing.

Suppose there is a page name Samsung Mobile and there are fifty images on it so it is almost impossible to test all these images manually but you test the images randomly to check whether they are displaying properly or not means there is no broken images on that page. You test the images randomly like firstly you test the first image than you leave the next two images than you test the 4th image and so on.

So in this way you perform the Random Testing by testing the images randomly means you do not test all the images instead you test it randomly.

What you say – Feedback Welcomed

This is all I know regarding Random Testing now what you say about this testing means how much you like the post and what suggestions you want to give because your feedback are always welcomed, so give your opinion and thoughts to help others regarding the very spectacular post of Random Testing

Endurance Testing with Example, Meaning and Definition

Endurance Testing is a type of Performance Testing which is usually used to determine how much a system can sustain the continuous expected load. During the period of Endurance Testing memory utilization is always monitored to detect any potential leaks.

In short we can say that judging/studying the memory leak of a server under the period of stability is known as Endurance Testing. Due to its judgment and study on memory leak that is the reason why Endurance Testing is also known by the name Soak Testing.

As you know in Endurance Testing memory utilization is monitored so it very important for us to know about memory leak means what it is all about.

When memory allocated to objects are not being freed by the system/application than definitely the memory leak occurs.

Endurance Testing Example – Real Time

Below is given the real time example of Endurance Testing and hope after seen these real time example your knowledge on Endurance Testing should definitely be increased.
For example in the closing days of bank we have continues load on that days so we always test the banking application by keeping in mind the Endurance Testing.
So in Banking Application we always test how much a system/application can sustain the continuous expected load during the closing days of Bank, so it is Endurance Testing Example done on real time Banking Environment.

Endurance Testing Definition

Below is given the definition of Endurance testing which is only a one line definition but clears you a most.
Endurance is an ability to handle continuous load in a difficult/unpleasant situation over some long period of duration/time.

Endurance Testing Meaning

You can estimate what an Endurance Testing is by discovering the meaning of word “Endurance”. Endurance means capacity/fitness so in other words you can say Endurance Testing means Capacity Testing. By Capacity Testing we mean how much a system has its capacity by handling the load for continuous period of time.

Note

Please note that Endurance Testing applies a huge but natural load arrangement of transactions to the system/application for a continuous period of time.

Conclusion


At end we conclude that Endurance Testing is also known as Longevity testing which is used in Load Testing that is the reason why it is considered as the type of Performance Testing. So after seen the post if you have any sort of issues related to the Endurance Testing than, discuss it here in the below comments section.

Software Testing is Difficult and Hard – What You Say

Software Testing is essential for the betterment of the application and software. But apart from this many of us do not know that Software Testing is most time consuming and difficult task to perform.

People still believe that Software Testing is an easy task anybody can do it easily but in reality Software Testing is opposite of it because it is not an easy task to perform. Software Testing is as difficult as developing software because now days it requires more human efforts, as everyone wants quality so doing Software Testing are become difficult because it takes lot of time and money.

Software Testing – Hard and Difficult

Performing Software Testing is considered as Difficult as well as hard too because of the following reasons which are shown below.

1. Software Testing is hard and difficult because we need to test the software/application for both valid and invalid inputs and in Software Testing we also check the performance parameters as well as functionality too.

2. Another reason for considering Software Testing hard as well as difficult because during the time of testing we always need to give the inputs in such a way that each and every line of the program/code is tested efficiently.

3. Another reason for being hard and difficult is that tester needs to give inputs randomly and ensure that the software/application never fails.

4. Another reason is that we need to test the software by keeping the user perspective in mind means by keeping in mind how end user is using it and check whether the error messages displayed properly or not.

5. Another main and clear reason is that we need to test the application/software by simulating the actual/real environment. Considering example if a database application has to be accessed by 200 users simultaneously, then it is not enough if you test the software/application for 5 0r 10 users and declare that application/software is working fine by leaving the software without checking all 200 users simultaneously.

6. Software Testing is considered as hard and difficult because in several cases, it is not almost possible to test the software/application in real/actual environment. Considering example how do you test the software that is used in a satellite launch vehicle or a missile? You can do the complete testing only in a simulated environment.

Your opinion

This is all I know about why Software Testing is considered as hard and difficult task to perform and if you know some more reasons than you can discuss with me in comments to help others so that proper guidance will be given to every people those who are in the field of Software Testing.

Main Difference between SRS, FRS and BRS

Difference among SRS, FRS and BRS are seems to be same but in reality they all are different and important too because many of us do not know these simple basic terms, in simply we know these terms but not exactly. That is why I am writing the difference among SRS, BRS and FRS in tabular form so that those who are new to software testing field can learns it easily.

You can see the difference between SRS and BRS in tabular form below so that you can learn it easily and effectively.

Distinction among BRS,FRS and SRS – Top 7
SRS
FRS
BRS
1. It means “Software Requirement Specification” (SRS).

1. It means “Functional Requirement Specification” (FRS).
1. It means “Business Requirement Specification” (BRS).
2. It deals with resources provided by Company.

2. It deals with requirements given by client.
2. It deals with aspects of business requirements.
3. It always includes Use cases to describe the interaction of the system.
3. In this Use cases are not included.
3. In this Use cases are also not included.
4. It is developed by System Analyst. And it is also known as User Requirement Specifications.
4. It is always developed by developers and engineers.
4. It is always developed by Business Analyst.
5. In SRS, we describe all the business functionalities of the application.
5. In FRS, we describe the particular functionalities of   every single page in detail from start to end.
5.In BRS, we defines what exactly customer wants. This is the document which is followed by team from start to end.
6. SRS tells means explains all the functional and non functional requirements.
6. FRS tells means explains the sequence of operations to be followed on every single process.
6. BRS tells means explains the story of whole requirements.
7. SRS is a complete document which describes the behavior of the system which would be developed.

7. FRS is a document, which describes the Functional requirements i.e. all the functionalities of the system would be easy and efficient for end user.

7. BRS is a simple document, which describes the business requirements on a quite broad level.

Conclusion


So this is all about what is the Difference between SRS and FRS and if you know more differences than discuss it here your opinions are always welcomed here.

Exact Difference between System Testing and Acceptance Testing

Distinction between System Testing and Acceptance Testing

               System Testing
           Acceptance Testing
1. System Testing does not include any thing means it is not known by any other name.
1. Acceptance Testing Include Alpha Testing means it is also sometimes known as alpha testing.
2. User is not involved in System Testing.
2. User is completely involved in Acceptance Testing.
3. It is performed before Acceptance Testing.
3. It is performed after System Testing.
4. It is not the final stage of Validation.
4. It is the final stage of Validation.
5. System testing of software or hardware is testing conducted on a whole, integrated system to estimate the systems compliance with its specified set of requirements?
5. Acceptance Testing of software or hardware is testing conducted to evaluate the system compliance with its specified set of user requirements.
6. The only things Tester should be testing at the System Test stage are things that he and she couldn’t test before.
6. The only things Developer and User should be testing at the Acceptance Test stage are things that developer and tester couldn’t test before.
7. It is done to check how the system as a whole is functioning. Here the functionality and performance of the system is validated.


7. It is done by the developer before releasing the product to check whether it meets the requirements of user or not and it is also done by the user to check whether I have to accept the product or not.
8. It is used to check whether the system meets the defined Specifications or not.
8. It is used to check whether it meets the defined User Requirements or not.
9. System Testing refers to the testing of complete system as a whole that is carried out by testers and sometimes by developers to check whether it meets the system specifications or not.
9. Acceptance Testing is carried out by the users to determine whether they accept the delivery of the system or not. It is normally performed by users and sometimes developers are also involved in it.
10. System Testing determine the developer and tester for satisfaction with system specifications.
10. Acceptance Testing determine the customer for satisfaction with software product.
11. System Testing involves both Functional and Non- Functional Testing.
11. Acceptance Testing only involves the Functional Testing based on the requirement given by client/user.

Note

System Testing: The process of testing an integrated system to verify that it meets specified requirements is known as system testing. [Hetzel]

Acceptance Testing: After the system testing is over, the software/application is tested by the client/user to check whether it meets the requirements given by him or not. This is known as acceptance testing.


Acceptance testing can be performed either at the developer’s site (premises) or client site.