Interview Questions 1


Software Testing Interview Questions


  1.  Explain Software Process?
  2. What are the key challenges of software testing?
  3. What is Maturity level?
  4. What are staged and continuous models in CMMI?
  5. Explain capability levels in continuous representation?
  6. What is process area in CMMI?
  7. What is SCAMPI process?
  8. What is configuration Management?
  9. What is Software Requirements Specification?
  10.  What is Big-bang waterfall model?
  11. What is Agile Testing?
  12. Explain the PDCA cycle?
  13. What is Validation and Verification?
  14. What are different types of verifications?
  15. What are white-box, black-box and gray-box testing?
  16. Explain different types of Testing?
  17. Explain different Black-Box Testing Techniques?
  18. What is Test Case?
  19. What are different approaches to do Integration Testing?
  20. What is Stress Testing?
  21. What is Test Harness?
  22. Explain about Random Testing?
  23. What is Monkey testing?
  24. Explain bug life cycle?
  25. What are the basic elements of defect report format?
  26. What are the categories of defects?
  27. In Test First Design what step you will follow to add new functionality into the project?
  28. What is Use Case Testing?
  29. What is Metric?
  30. What is Requirement Traceability Matrix?
  31. How to deal with not reproducible bug?
  32. What is the role of QA in a project development?
  33. When do you choose automated testing over manual testing?
  34. What is difference between QA, QC and Software Testing?
  35. What is difference between Front End Testing and Back End testing?
  36. What are the categories of defects?
  37. Explain the difference between Latent and Masked Defect?
  38. Explain about tailoring?


Explain Software Process?
A software process or software development process is a method or structure expected to be followed for the development of software. There are several tasks and activities that take place in this process. Different processes like waterfall and iterative exists. In these processes; tasks like analysis, coding, testing and maintenance play an important role.
What are the key challenges of software testing?
Following are some challenges of software testing:
1. Application should be stable enough to be tested.
2. Testing always under time constraint
3. Understanding the requirements.
4. Domain knowledge and business user perspective understanding.
5. Which tests to execute first?
6. Testing the Complete Application.
7. Regression testing.
8. Lack of skilled testers.
9. Changing requirements.
10. Lack of resources, tools and training

What is difference between QA, QC and Software Testing?
Quality Assurance (QA): QA refers to the planned and systematic way of monitoring the quality of process which is followed to produce a quality product. QA tracks the outcomes and adjusts the process to meet the expectation.
Quality Control (QC): Concern with the quality of the product. QC finds the defects and suggests improvements. The process set by QA is implemented by QC. The QC is the responsibility of the tester.
Software Testing: is the process of ensuring that product which is developed by the developer meets the user requirement. The motive to perform testing is to find the bugs and make sure that they get fixed.

What is the role of QA in a project development?
The role of Quality Assurance is discussed below:
• QA team is responsible for monitoring the process to be carried out for development.
• Responsibilities of QA team are planning testing execution process.
• QA Lead creates the time tables and agrees on a Quality Assurance plan for the product.
• QA team communicated QA process to the team members.
• QA team ensures traceability of test cases to requirements.

What is Maturity level?
Maturity level of a process defines the nature and maturity present in the organization. These levels help to understand and set a benchmark for the organization.
Five levels that are identified are:
Level 1: Adhoc or initial
Level 2: Repeatable
Level 3: Defined
Level4: managed
Level 5: Optimized
What are staged and continuous models in CMMI?
Staged models in CMMI, focus on process improvement using stages or maturity levels. In staged representation each process area has one specific goal. Achieving a goal would mean improvement in control and planning of the tasks associated with the process. Staged representation has 5 maturity levels.
Continuous model in CMMI follow a recommended order for approaching process improvement within each specified process area. It allows the user to select the order of improvement that best meets the organization’s business objectives. Continuous representation has 6 capability levels.
Explain capability levels in continuous representation.
There are 5 capability levels for Continuous representation:
Level 1: Performed
Level 2: Managed
Level 3: Defined
Level 4: Quantitatively managed
Level 5: Optimizing
Each level has process areas. Each process area has specific goals to achieve. These processes are continuously improved to achieve the goals in a recommended order. 

What is process area in CMMI?
Process areas in Capability Maturity model describe the features of a products development. These process areas help to identify the level of maturity an organization has attained. These mainly include:
Project planning and monitoring
Risk Management
Requirements development
Process and Product quality assurance
Product integration
Requirement management
Configuration management

What is SCAMPI process?
Standard CMMI Appraisal Method for Process Improvement provides a benchmark relative to Maturity Models. It describes requirements, activities and processes associated with each process area.  The SCAMPI appraisals identify the flaws of current processes. It gives an idea of area of improvement and determines capability and maturity levels.

What is configuration Management?
Configuration management aims to establish consistency in an enterprise. This is attained by continuously updating processes of the organization, maintaining versioning and handling the entire organization network, hardware and software components efficiently.
In software, Software Configuration management deals with controlling and tracking changes made to the software. This is necessary to allow easy accommodation of changes at any time. 



Explain the PDCA cycle?
PDCA cycle stands for Plan Do Check Act; commonly used for quality control.
Plan: Identify aim and procedure necessary to deliver the output.
Do: Implement the plan.
Check: Confirm if the result is as per plan.
Action: Take appropriate action to deceiver expected outcome. Which may also involve repeat the cycle.

Explain SDLC?

What is Big-bang waterfall model?
The waterfall model is also known as the Big-bang model because all modules using waterfall module follows the cycle independently and then put together. Big Bang model follows a sequence to develop a software application. It slowly moves to the next phase starting from requirement analysis followed by design, implementation, testing and finally integration and maintenance. 

Explain V-Model of software testing?
THE V-MODEL OF SOFTWARE TESTING Software testing is too important to leave to the end of the project, and the V-Model of testing incorporates testing into the entire software development life cycle.  In a diagram of the V-Model, the V proceeds down and then up, from left to right depicting the basic sequence of development and testing activities. The model highlights the existence of different levels of testing and depicts the way each relates to a different development phase. 
Like any model, the V-Model has detractors and arguably has deficiencies and alternatives but it clearly illustrates that testing can and should start at the very beginning of the project.  (See Goldsmith for a summary of the pros and cons and an alternative.  Marrik’s articles provide criticism and an alternative.)  In the requirements gathering stage the business requirements can verify and validate the business case used to justify the project.  The business requirements are also used to guide the user acceptance testing.   The model illustrates how each subsequent phase should verify and validate work done in the previous phase, and how work done during development is used to guide the individual testing phases.  This interconnectedness lets us identify important errors, omissions, and other problems before they can do serious harm.  Application testing begins with Unit Testing, and in the section titled “Types of Tests” we will discuss each of these test phases in more detail.

What is Agile Testing?
Agile Testing means to quickly validation of the client’s requirements and make the application of high quality user interface. When the build is released to the testing team, testing of the application is started to find the bugs. As a Tester, we need to focus on the customer or end user requirements. We put the efforts to deliver the quality product in spite of short time frame which will further help in reducing the cost of development and test feedbacks will be implemented in the code which will avoid the defects coming from the end user.

What is Software Requirements Specification?
• A software requirements specification is a document which acts as a contract between the customer and the supplier.
• This SRS contain all the requirement of the end user regarding that application. SRS can be used as a communication medium between the customer and the supplier.
• The developer and tester prepare and examine the application based on the requirements written in the SRS document.
• The SRS documented is prepared by the Business Analyst by taking all the requirements for the customer.

What is verification?
          Verification ensures the product is designed to deliver all functionality to the customer; it typically involves reviews and meetings to evaluate documents, plans, code, requirements and specifications; this can be done with checklists, issues lists, walkthroughs and inspection meetings.
What is meant by validation?
          Validation ensures that functionality, as defined in requirements, is the intended behaviour of the product; validation typically involves actual testing and takes place after verifications are completed.
 What are different types of verifications?
Verification is static type of software testing which is started in earlier phase of development of software. In this approach we don’t execute the software that the reason it comes in static testing. The product is evaluated by going through the code. Types of verification are:
         Walkthrough: Walkthroughs are informal technique. Where the Developer leader organizing a meeting with team member to take feedback regarding the software. This can be used for the improvement of the software quality. Walkthrough are unplanned in the SDLC cycle.
         Inspection: Inspection is a done by checking of a software product thoroughly with the intention to find out defect and ensuring that software is meeting the user requirements.

 What is Validation and Verification?
Verification: process of evaluating work-products of a development phase to determine whether they fulfill the specified requirements for that phase.
Validation: process of evaluating software during or at the end of the development process to determine whether it specified requirements.
Difference between Verification and Validation:
         Verification is Static testing where as Validations is Dynamic Testing.
         Verification takes place before validation.
         Verification evaluates plans, document, requirements and specification, where as Validation evaluates product.
         Verification inputs are checklist, issues list, walkthroughs and inspection where as in Validation testing of actual product.
Verification output is set of document, plans, specification and requirement documents where as in Validation actual product is output.

What is difference between Master Test Plan and Test Plan.
The differences between Master Plan and Test Plan are given below:
• Master Test Plan contains all the testing and risk involved area of the application where as Test case document contains test cases.
• Master Test plan contain all the details of each and every individual tests to be run during the overall development of application whereas test plan describe the scope, approach, resources and schedule of performing test.
• Master Test plan contain the description of every tests that is going to be performed on the application where as test plan only contain the description of few test cases. during the testing cycle like Unit test, System test, beta test etc
• Master Test Plan is created for all large projects but when it is created for the small project then we called it as test plan.

Describe how to perform Risk analysis during software testing?
Risk analysis is the process of identifying risk in the application and prioritizing them to test. Following are some of the risks:
1. New Hardware.
2. New Technology.
3. New Automation Tool.
4. Sequence of code delivery.
5. Availability of application test resources.
We prioritize them into three categories these are:
• High magnitude: Impact of the bug on the other functionality of the application.
• Medium: it can be tolerable in the application but not desirable.
• Low: it can be tolerable. This type of risk has no impact on the company business.

What is STLC?
STLC is Software test life cycle. It includes
-Impact assessment: How much testing impact a new project has and how much level of effort will be required.
-Work allocation: Assigning resources to testing the project
-Requirements knowledge gaining : Understanding the BRD and SRS thoroughly
-Test planning : Determining what will be the high level test scenarios, what test data will be required, how to stage them, preparing the test plan etc.
-Writing test cases : Preparing test cases based on the understanding of the requirements and high level test plan
-Executing : Once the code is dropped, verifying the application based on the testcases
-Bug tracking : Raising defects and tracking them to closure
-Traceability: Providing traceability documents to clients for passed testcases.
- Sign off: Signing off the tested code once exit criteria is reached.

 What is Test Case?
A test case is a set of conditions which is used by tester to perform the testing of application to make sure that application is working as per the requirement of the user.
         A Test Case contains information like test steps, verification steps, prerequisites, outputs, test environment, etc
         The process of developing test cases can also enable us to determine the issues related to the requirement and designing process of the application.

Explain different Quality attributes?

What is Black box testing?
          Black box testing is a test case design method that focuses on the functional requirements of the software. It is otherwise called as functional testing.
What is the difference between black box and white box testing?
 Black box testing is a testing strategy based solely on requirements and specifications. Black box testing requires no knowledge of internal paths, structures, or implementation of the software being tested.
 White box testing is a testing strategy based on internal paths, code structures, and implementation of the software being tested. White box testing generally requires detailed programming skills.

What are white-box, black-box and gray-box testing?
White Box testing: white box testing involves thorough testing of the application. It requires knowledge of code and the test cases chosen verifies if the system is implemented as expected. It typically includes checking with the data flow, exceptions, and errors, how they are handled, comparing if the code produces the expected results.
E.g. In electrical appliances the internal circuit testing.
Black Box testing: Black box testing is done at an outer level of the system. Test cases merely check if the output is correct for the given input. User is not expected to the internal flow or design of the system.
Gray Box testing: Grey box testing is a combination of both black box and white box testing. This is because it involves access to the system; however, at an outer level. A little knowledge of the system is expected in Gray box testing.

Explain different Black-Box Testing Techniques?
1. Equivalence partitioning is a technique used in software testing which aims to reduce the number of test cases and choose the right test cases. This is achieved by identifying the “classes” or “groups” of inputs in such a way that each input value under this class will give the same result.
E.g. a software application designed for an airline has special offer functionality. The offer is that first two member of every city booking the ticket for a particular route gets a discount. Here, the group of inputs can be “All cities in India”.
2. Boundary value Analysis - Test cases written for boundary value analysis are to detect errors or bugs which are likely to arise while testing for ranges of values at boundaries. This is to ensure that the application gives the desired output when tested for boundary values.
E.g. a text box can accept values from minimum 6 characters to 50 characters. Boundary value testing will test for 5 characters, 6 characters, 50 characters and 51 characters.

Explain different types of Testing?


What are different approaches to do Integration Testing?
Integration testing is black box testing. Integration testing focuses on the interfaces between units, to ensure that units work together to complete a specify task. The purpose of integration testing is to confirm that different components of the application interact with each other. Integration testing is considered complete, when actual results and expected results are same. There are mainly three approaches to do integration testing.
         Top-down Approach: Tests the components by integrating from top to bottom.
         Bottom-up approach: It takes place from the bottom of the control flow to the higher level components
         Big bang approach: In this are different module are joined together to form a complete system and then testing is performed on it.

What are the types of system testing?
            There are essentially three main kinds of system testing :
  1. Alpha testing
  2. Beta testing
  3. Acceptance testing
 What is regression testing?
            Regression testing is not a level of testing, but it is the retesting of software that occurs when changes are made to ensure that the new version of the software has retained the capabilities of the old version and that no new defects have been introduced due to the changes

What is incremental testing?
          Incremental testing is partial testing of an incomplete product. The goal of incremental testing is to provide an early feedback to software developers
What is regression testing?
          Regression testing is not a level of testing, but it is the retesting of software that occurs when changes are made to ensure that the new version of the software has retained the capabilities of the old version and that no new defects have been introduced due to the changes

What is Stress Testing?
Stress testing tests the software with a motive to check that the application do not crashes if we increase the stress on the application by increasing the large number of user working on the application. We can also apply the stress on the application firing the lots of process which cannot be handled by the application. We perform the stress testing on the application evaluate the application capabilities at or beyond the limits of its specified requirements to determine. Generally, this is a type of performance testing performed in a very high level of load and stress condition

What is difference between Pilot and Beta testing?
The differences between these two are listed below:
• A beta test when the product is about to release to the end user whereas pilot testing take place in the earlier phase of the development cycle.
• In beta testing application is given to a few user to make sure that application meet the user requirement and does not contain any showstopper whereas in case of pilot testing team member give their feedback to improve the quality of the application.

What is Test Harness?
A test harness is a collection of software and test data required to test the application by running it in different testing condition like stress, load, data- driven, and monitoring its behavior and outputs. Test Harness contains two main parts:
• Test execution engine
• Test script repository
Automation testing is the use of a tool to control the execution of tests and compare the actual results with the expected results. It also involves the setting up of test pre-conditions

Explain bug life cycle?
Bug Life Cycle:
         When a tester finds a bug .The bug is assigned NEW or OPEN with status,
         The bug is assigned to development project manager who will analyze the bug .He will check whether it is a valid defect. If not valid bus is rejected, now status is REJECTED.
         If not, next the defect is checked whether it is in scope. When bug is not part of the current release .Such defects are POSTPONED
         Now, Tester checks whether similar defect was raised earlier. If yes defect is assigned a status DUPLICATE
         When bug is assigned to developer. During this stage bug is assigned a status IN-PROGRESS
         Once bug is fixed. Defect is assigned a status FIXED
         Next the tester will re-test the code. In case the test case passes the defect is CLOSED
         If test case fails again the bug is RE-OPENED and assigned to the developer. That’s all to Bug Life Cycle.

What are the basic elements of defect report format?
The basic elements of Defect Report Format are:
1. Project name
2. Module name
3. Defect detected on
4. Defect detected by
5. Defect id
6. Defect name
7. Snapshot of the defect(if the defect is in the non reproducible environment)
8. Priority, severity, status
9. Defect resolved by
10. Defect resolved on.

How to deal with not reproducible bug?
Ans. A bug cannot be reproduced for following reasons:
1. Low memory.
2. Addressing to non available memory location.
3. Things happening in a particular sequence.
Tester can do following things to deal with not reproducible bug:
• Includes steps that are close to the error statement.
• Evaluate the test environment.
• Examine and evaluate test execution results.
• Resources & Time Constraints must be kept in point.

In Test First Design what step you will follow to add new functionality into the project?
When we have to add new functionality our project, we perform the following steps:
         Quickly add a developer test: we need to create a test that ensures that new added functionality will not crash our project.
         Run your tests. Execute that test, to ensure that new add functionality does not crash our application.
         Update your production code. In this we update our code with few more functionality so that the code passes the new test. Like adding of error message in field where field can take only numeric data.
         Run your test suite again. If test fails, we have to do change in the code and perform retesting of the application.

What are the categories of defects?
There are three main categories of defects:
         Wrong: The requirements are implemented incorrectly in the application.
         Missing: When requirement given by the customer and application is unable to meet those application.
         Extra: A requirement incorporated into the product that was not given by the end customer. This is always a variance from the specification, but may be an attribute desired by the user of the product.

What is Requirement Traceability Matrix?
The Requirements Traceability Matrix (RTM) is a tool to make sure that project requirement remain same throughout the whole development process. RTM is used in the development process because of following reasons:
• To determine whether the developed project is meet the requirements of the user.
• To determine all the requirements given by the user
• To make sure the application requirement can be fulfilled in the verification process.
  
What is difference between Front End Testing and Back End testing?
The differences between front and back end testing are:
• Front End Testing is performed on the Graphical User Interface (GUI).whereas Back End Testing involves databases testing.
• Front end consist of web site look where user can interact whereas in case of back end it is the database which is required to store the data.
• When end user enters data in GUI of the front end application, then this entered data is stored in the database. To save this data into the database we write SQL queries.
What is Exhaustive Testing?
Exhaustive Testing, as the name suggests is very exhaustive. Exhaustive testing means to test every component in the application with every possible number of inputs. According to Principles of testing Exhaustive Testing is Impossible because exhaustive testing requires more time and effort to test the application for all possible number of inputs. This may lead to high cost and delay in the release of the application.
  
What is Silk Test?
Silk Test is a tool developed for performing the regression and functionality testing of the application. Silk Test a tool is used when we are testing the applications which are based on Window, Java, web or traditional client/server. Silk Test help in preparing the test plan and management of those test plans, to provide the direct accessing of the database and validation of the field

What is End-to-End testing?
End-to-End Testing we take the application from the starting phase of the development cycle till the ending of the development cycle. We can simple say that it comes into play when we take requirement from the customer till the end of the delivery of the application. The purposes of End-to-End testing are:
         Validates the software requirements and checks it is integrated with external interfaces.
         Testing application in real world environment scenario.
         It involves testing of interaction between application and database.
         Executed after functional and system testing.
         End-to-End testing is also called Chain Testing

What is Endurance Testing?
Endurance testing: in this testing we test application behaviour against the load and stress applies over application for a long duration of time. The goal of this testing are:
         To determine the how the application is going to responds for high load and stress conditions in the real scenario.
         To ensure that the response times in highly load and stress conditions are within the user’s requirement of response time.
Checks for memory leaks or other problems that may occur with prolonged execution

What is Use Case Testing?
                     Use Case: A use case is a description of the process which is performed by the end user for a particular task. Use case contains a sequence of step which is performed by the end user to complete a specific task or a step by step process that describe how the application and end user interact with each other. Use case is written by the user point of view.
                     Use case Testing: the use case testing uses this use case to evaluate the application. So that, the tester can examines all the functionalities of the application. Use case testing cover whole application
What is Negative Testing?
Negative Testing is performed to find the situation when the software crashed. It is a negative approach, in this tester try to put efforts to find the negative aspects of the application. Negative testing ensures that application can handle the invalid input, incorrect data and incorrect user response. For example, when user enters the alphabetical data in a numeric field, then error message should be display saying “Incorrect data type, please enter a number” 

Explain Random testing.
Random testing as the name suggests has no particular approach to test. It is an ad hoc way of testing. The tester randomly picks modules to test by inputting random values.
E.g. an output is produced by a particular combination of inputs. Hence, different and random inputs are used.

What is Monkey testing?
Monkey testing is a type of random testing with no specific test case written. It has no fixed perspective for testing. E.g. input random and garbage values in an input box.
 When do you choose automated testing over manual testing?
This choice between automated testing over manual testing can be based upon following factors:
1. Frequency of use of test case
2. Time Comparison (automated script run much faster than manual execution.)
3. Reusability of Automation Script
4. Adaptability of test case for automation.
5. Exploitation of automation tool
 What is Automated Testing?
The process of performing testing automatically which reduces the human intervention this is automation testing. The automation testing is carried out with the help of the some automation tool like QTP, Selenium, WinRunner etc. In automation testing we use a tool that runs the test script to test the application; this test script can be generated manually or automatically. When testing is completed then tools automatically generate the test report and report.
 What is Metrics?
Metric is a standard of measurement. Software metrics uses the statistical method for explaining the structure of the application. The software metric tells us the measurable things like number of bugs per lines of code. We can take the help of software metrics to make the decision regarding the application development. The test metrics is derived from raw test data because what cannot be measured cannot be managed. Software metric also helps the Project Management team to manage the project like schedule for development of each phase.

What is coverage and what are the different types of coverage techniques?
Coverage is a measurement used in software testing to describe the degree to which the source code is tested. There are three basic types of coverage techniques as shown in the following figure:
         Statement coverage: This coverage ensures that each line of source code has been executed and tested.
         Decision coverage: This coverage ensures that every decision (true/false) in the source code has been executed and tested.
         Path coverage: In this coverage we ensure that every possible route through a given part of code is executed and tested.

What makes a good QA or Test manager?
A good QA or Test manager should have following characteristics:
• Knowledge about Software development process
• Improve the teamwork to increase productivity
• Improve cooperation between software, test, and QA engineers
• To improvements the QA processes.
• Communication skills.
• able to conduct meetings and keep them focused

What is good design?
Design refers to functional design or internal design. Good internal design is indicated by software code whose overall structure is clear, understandable, easily modifiable, and maintainable; is robust with sufficient error-handling and status logging capability, and works correctly when implemented. Good functional design is indicated by an application whose functionality can be traced back to customer and end-user requirements.

Explain the difference between Latent and Masked Defect.
Latent defects are defects which remain in the system, however, identified later. They remain in the system for a long time. The defect is likely to be present in various versions of the software and may be detected after the release.
E.g. February has 28 days. The system could have not considered the leap year which results in a latent defect
Masked defect hides other defects in the system. E.g. there is a link to add employee in the system. On clicking this link you can also add a task for the employee. Let’s assume, both the functionalities have bugs. However, the first bug (Add an employee) goes unnoticed. Because of this the bug in the add task is masked. 

Explain about tailoring.
Tailoring a software process means amending it to meet the needs of the project. It involves altering the processes in different environments, it’s an ongoing process. Factors like customer and end user relationship, goals of business must be kept in mind while tailoring. Degree to which tailoring is required must be identified.

Comments

Popular posts from this blog

QA's approach 2 Java - Understanding Static context

Selenium 4 absolute beginners - How to create Batch execution file

Technologies - Log4J - Create Log4j Configuration File - Where ? How ? What ?