What is Software Testing?
Software testing is an activity to check whether the actual results match the expected results and to ensure that the software system is Defect free. It involves execution of a software component or system component to evaluate one or more properties of interest.
Software testing also helps to identify errors, gaps or missing requirements in contrary to the actual requirements. It can be either done manually or using automated tools.
What are the different types of testing?
Testing can broadly be defined into two types-
Functional testing – Functional testing involves validating the functional specifications of the system.
Non-functional testing – Non-functional testing includes testing the non-functional requirements of the system like performance, security, scalability, portability, endurance etc.
What is Static Testing?
Static Testing involves in reviewing the documents to identify the defects in the early stages of SDLC.
What is Dynamic Testing?
Dynamic testing involves in the execution of code. It validates the output with the expected outcome.
What is GUI Testing?
Ans. GUI or Graphical user interface testing is the process of testing the software user interface against the provided requirements/mockups/HTML designs etc.,
What is White Box Testing?
White Box Testing is also called as Structural Testing. It is based on applications internal code structure. In white-box testing, an internal perspective of the system, as well as programming skills, is used to design test cases. This testing usually was done at the unit level
What is Black Box Testing?
Black Box Testing is a software testing method in which testers evaluate the functionality of the software under test without looking at the internal code structure. This can be applied to every level of software testing such as Unit, Integration, System and Acceptance Testing.
What is Grey Box Testing?
Grey box is the combination of both White Box and Black Box Testing. The tester who works on this type of testing needs to have access to design documents. This helps to create better test cases in this process.
What is the difference between regression and retesting?
Regression testing involves testing the application to verify that a new code change doesn’t affect the other parts of the application. Whereas, in retesting, we verify if the fixed issue is resolved or not.
What is the difference between blackbox and whitebox testing?
Blackbox testing is a type of testing in which internal architecture of the code is not required for testing. It is usaually applicable for system and acceptance testing. Whereas whitebox testing requires internal design and implementation knowledge of the application being tested. It is usually applicable for Unit and Integration testing.
What is Positive and Negative Testing?
Positive Testing: It is to determine what system supposed to do. It helps to check whether the application is justifying the requirements or not.
Negative Testing: It is to determine what system not supposed to do. It helps to find the defects from the software.
What are Quality Assurance and Quality Control?
Quality Assurance: Quality Assurance involves in process-oriented activities. It ensures the prevention of defects in the process used to make Software Application. So the defects don’t arise when the Software Application is being developed.
Quality Control: Quality Control involves in product-oriented activities. It executes the program or code to identify the defects in the Software Application.
What is Pesticide Paradox?
Ans. If prepared test cases are not finding defects, add/revise test cases to find more defects, this is known as Pesticide Paradox.
What is a test bed?
A test bed is a test environment used for testing an application. A test bed configuration can consist of the hardware and software requirement of the application under test including – operating system, hardware configurations, software configurations, tomcat, database etc.
What is a test plan?
A test plan is a formal document describing the scope of testing, the approach to be used, resources required and time estimate of carrying out the testing process. It is derived from the requirement documents(Software Requirement Specifications).
What is a test scenario?
A test scenario is derived from a use case. It is used for end end to end testing of a feature of an application. A single test scenario can cater multiple test cases. The scenario testing is particularly useful when there is time constraint while testing.
What is a test case?
A test case is used to test the conformance of an application with its requirement specifications. It is a set of conditions with pre-requisites, input values and expected results in a documented form.
What are some defect reporting attributes?
Some of the attributes of a Defect report are-
- DefectId – A unique identifier of the defect.
- Defect Summary – A one line summary of the defect, more like a defect title.
- Defect Description – A detailed description of the defect.
- Steps to reproduce – The steps to reproduce the defect.
- Expected Result – The expected behavior from which the application is deviating because of the defect.
- Actual Result- The current erroneous state of the application w.r.t. the defect.
- Defect Severity – Based on the criticality of the defect, this field can be set to minor, medium, major or show stopper.
- Priority – Based on the urgency of the defect, this field can be set on a scale of P0 to P3.
What is defect density?
Defect density is the measure of density of the defects in the system. It can be calculated by dividing number of defect identified by the total number of line of code(or methods or classes) in the application or program.
See More: Manual Testing Interview Questions and Answers 2024Â
What is defect priority?
A defect priority is the urgency of the fixing the defect. Normally the defect priority is set on a scale of P0 to P3 with P0 defect having the most urgency to fix.
What is defect severity?
Defect severity is the severity of the defect impacting the functionality. Based on the organisation we can different levels of defect severity ranging from minor to critical or show stopper.
What are the different states of a bug?
A bug goes through the following phases in software development-
- New – A bug or defect when detected is in New state
- Assigned – The newly detected bug when assigned to the corresponding developer is in Assigned state
- Open – When the developer works on the bug, the bug lies in Open state
- Rejected/Not a bug – A bug lies in rejected state in case the developer feels the bug is not genuine
- Deferred – A deferred bug is one, fix of which is deferred for some time(for the next releases) based on urgency and criticality of the bug
- Fixed – When a bug is resolved by the developer it is marked as fixed
- Test – When fixed the bug is assigned to the tester and during this time the bug is marked as in Test
- Reopened – If the tester is not satisfied with issue resolution the bug is moved to Reopened state
- Verified – After the Test phase if the tester feels bug is resolved, it is marked as verified
- Closed – After the bug is verified, it is moved to Closed status.
What are the different levels of the testing?
Testing can be performed at different levels during the development process. Performing testing activities at multiple levels help in early identification of bugs. The different levels of testing are –
- Unit Testing
- Integration Testing
- System Testing
- Acceptance Testing
What is unit testing?
Unit testing is the first level of testing and it involves testing of individual modules of the software. It is usually performed by developers.
What is integration testing?
Integration testing is performed after unit testing. In integration testing we test the group of related modules. It aims at finding interfacing issues between the modules.
What is Security Testing?
Security testing is a process to determine whether the system protects data and maintains functionality as intended.
What is Soak Testing?
Running a system at high load for a prolonged period of time to identify the performance problems is called Soak Testing.
What is Performance Testing?
This type of testing determines or validates the speed, scalability, and/or stability characteristics of the system or application under test. Performance is concerned with achieving response times, throughput, and resource-utilization levels that meet the performance objectives for the project or product.
What is Load Testing?
It is to verify that the system/application can handle the expected number of transactions and to verify the system/application behavior under both normal and peak load conditions.
What is Volume Testing?
It is to verify that the system/application can handle a large amount of data
What is Stress Testing?
It is to verify the behavior of the system once the load increases more than its design expectations.
What is Scalability Testing?
Scalability testing is a type of non-functional testing. It is to determine how the application under test scales with increasing workload.
What is Concurrency Testing?
Concurrency testing means accessing the application at the same time by multiple users to ensure the stability of the system. This is mainly used to identify deadlock issues.
What is Fuzz Testing?
Fuzz testing is used to identify coding errors and security loopholes in an application. By inputting massive amount of random data to the system in an attempt to make it crash to identify if anything breaks in the application.
What is Adhoc Testing?
Ad-hoc testing is quite opposite to the formal testing. It is an informal testing type. In Adhoc testing, testers randomly test the application without following any documents and test design techniques. This testing is primarily performed if the knowledge of testers in the application under test is very high. Testers randomly test the application without any test cases or any business requirement document.
What is Interface Testing?
Interface testing is performed to evaluate whether two intended modules pass data and communicate correctly to one another.
What is Reliability Testing?
Perform testing on the application continuously for long period of time in order to verify the stability of the application
What is Bucket Testing?
Bucket testing is a method to compare two versions of an application against each other to determine which one performs better.
What is spike testing?
Spike testing is a type of performance testing in which the application’s performance is measured while suddenly increasing the number of active users during the load test.
What is localisation testing?
Localisation testing is a type of testing in which we evaluate the application’s customization(localized version of application) in a particular culture, locale or country.
What is globalisation testing?
Globalisation testing is a type of testing in which application is evaluated for its functioning across the world in different cultures, languages, locale and countries.