Open In App

SDET Interview Questions and Answers

Last Updated : 08 Jan, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

A Software Development Engineer in Testing (SDET) is a programmer primarily responsible for developing software and writing and tooling to test that product. That means it’s an IT professional who can work effectively in development and testing roles. SDET (Software Engineer Testing) deals with the whole process of software development, mainly we call it the Software Development Life Cycle (SDLC). SDETs can understand software development and software testing. Suppose you are preparing for a job interview for an SDET profile and want to boost your chances of being hired. In that case, becoming familiar with popular interview questions and responses is a good idea. It can give you a competitive advantage and boost your chances of receiving a good call. This article provides you with the most frequently asked questions during the interview.

SDET

Q1. What do you understand about ad-hoc testing?
Adhoc testing is a type of software testing that is performed informally and randomly after the formal testing is completed to find any loophole in the system. For this reason, it is also known as Random testing or Monkey testing. Adhoc testing is not performed in a structured way so it is not based on any methodological approach.

Q2. What’s the between a Software Development Engineer in Test (SDET) and a Manual Tester?
Tester
The tester is the person who performs the testing process on the software to detect the defects. The tester also checks different aspects of the software. Tester doesn’t know the development process of the software. The tester checks whether the software has bugs and defects or not.

SDET
SDET stands for Software Development Engineer in Test. SDET is the person who plays a role in both the development and testing process. SDET knows the internal design and implementation of the software. Tester who can code is known as an SDET.

Q3. What are the various types of Software Testing?
Testing is the process of executing a program to find errors. To make our software perform well it should be error-free. If testing is done successfully it will remove all the errors from the software. There are various types of software testing such as:

  • Unit Testing
  • Integration Testing
  • System Testing
  • Functional Testing
  • Acceptance Testing

Q4. What is Alpha Testing?
Alpha Testing is a type of software testing performed to identify bugs before releasing the product to real users or to the public. Alpha Testing is one of the user acceptance tests. This is referred to as alpha testing only because it is done early on, near the end of the development of the software.

Q5. What’s the difference between Severity Testing and Priority Testing?
Severity is defined as the extent to which a particular defect can create an impact on the software. Severity is a parameter to denote the implication and the impact of the defect on the functionality of the software. 

  • A higher effect of the bug on system functionality will lead to a higher severity level.
  • A QA engineer determines the severity level of a bug.

Priority is defined as a parameter that decides the order in which a defect should be fixed. Defects having a higher priority should be fixed first. 

  • Defects/ bugs that leave the software unstable and unusable are given higher priority over the defects that cause a small functionality of the software to fail.
  • It refers to how quickly the defect should be rectified.

Q6. What is Equivalence Partitioning Method?
Equivalence Partitioning Method is also known as Equivalence class partitioning (ECP). It is a software testing technique or black-box testing that divides input domain into classes of data, and with the help of these classes of data, test cases can be derived.

Q7. What is Software Development Life Cycle (SDLC)?
Software development life cycle (SDLC) is a structured process that is used to design, develop, and test good-quality software. SDLC, or software development life cycle, is a methodology that defines the entire procedure of software development step-by-step.The goal of the SDLC life cycle model is to deliver high-quality, maintainable software that meets the user’s requirements.

Q8. What’s the difference between Quality Assurance and Quality Control?
Quality Assurance
Quality assurance is a method of making the software application with fewer defects and mistakes when it is finally released to the end users. Quality Assurance is defined as an activity that ensures the approaches, techniques, methods, and processes designed for the projects are implemented correctly.

Quality Control
Quality Control is a software engineering process that is used to ensure that the approaches, techniques, methods, and processes designed for the project are followed correctly. Quality control activities operate and verify that the application meet the defined quality standards.

Q9. What do you mean by Fuzz Testing?
Fuzz Testing is a Software Testing technique that uses invalid, unexpected, or random data as input and then checks for exceptions such as crashes and potential memory leaks. It is an automated testing technique that is performed to describe the system testing processes involving randomized or distributed approaches.

Q10. What is Defect Life Cycle or Bug Life Cycle?
Defect Life Cycle is the life cycle of a defect or bug which it goes through covering a specific set of states in its entire life. Mainly bug life cycle refers to its entire state starting from a new defect detected to the closing off of that defect by the tester. Alternatively, it is also called a Bug Life Cycle.

Q11. What is a Test Script in Software Testing?
Test Scripts are line-by-line description that contains information about system functions that must be performed to verify an application or system under test. The test document should outline each step to be taken with the expected results.

Q12. What’s the difference between Inspection and Walkthrough?
Walkthrough
Walkthrough is a method of conducting informal group/individual review. In a walkthrough, author describes and explain work product in a informal meeting to his peers or supervisor to get feedback. Here, validity of the proposed solution for work product is checked.

Inspection
An inspection is defined as formal, rigorous, in depth group review designed to identify problems as close to their point of origin as possible. Inspections improve reliability, availability, and maintainability of software product.

Q13. What is Software Testing Life Cycle (STLC)?
The Software Testing Life Cycle (STLC) is a systematic approach to testing a software application to ensure that it meets the requirements and is free of defects. It is a process that follows a series of steps or phases, and each phase has specific objectives and deliverables. The STLC is used to ensure that the software is of high quality, reliable, and meets the needs of the end-users.

Q14. What’s the difference between Sanity Testing and Smoke Testing?

Smoke Testing

Sanity Testing

Smoke testing is done to assure that the acute functionalities of program is working fine. 

Sanity testing is done to check the bugs have been fixed after the build.

Smoke testing is done to measure the stability of the system/product by performing testing.

Sanity testing is done to measure the rationality of the system/product by performing testing.

Smoke testing is also called subset of acceptance testing.  Sanity testing is also called subset of regression testing.
Smoke testing is documented. Sanity testing isn’t documented.

Q15. What is Beta Testing?
Beta testing is the process of testing a software product or service in a real-world environment before its official release. It is an essential step in the software development lifecycle as it helps identify bugs and errors that may have been missed during the development process.

Q16. What is Risk-based Testing in Software testing?
In risk-based testing, we use the risk items identified during risk analysis, along with the level of risk associated with each risk item to guide the testing. It is a type of software testing technique that is primarily based on the probability of the risk.

Q17. What’s the difference between Black Box Testing and White Box Testing?

Black Box Testing

White Box Testing

It is a way of software testing in which the internal structure or the program or the code is hidden and nothing is known about it. It is a way of testing the software in which the tester has knowledge about the internal structure or the code or the program of the software.
Implementation of code is not needed for black box testing. Code implementation is necessary for white box testing.
It is mostly done by software testers. It is mostly done by software developers.
No knowledge of implementation is needed. Knowledge of implementation is required.

Q18. What do you mean by Defect Management Process?
The Defect Management Process is a systematic approach to identify, track, and resolve defects in software development.The Defect Management Process is an iterative process that continues throughout the software development life cycle, and helps to ensure that defects are identified, tracked, and resolved in a timely and efficient manner, leading to higher software quality and reliability.

Q19. What is a Software Testing Metrics?
Software testing metrics are quantifiable indicators of the software testing process progress, quality, productivity, and overall health. The purpose of software testing metrics is to increase the efficiency and effectiveness of the software testing process while also assisting in making better decisions for future testing by providing accurate data about the testing process.

Q20. What do you mean by Exploratory Testing?
Exploratory Testing is a type of software testing in which the tester is free to select any possible methodology to test the software. It is an unscripted approach to software testing. In exploratory testing, software developers use their learning, knowledge, skills, and abilities to test the software developed by themselves.Exploratory testing aims to optimize and improve the software in every possible way. The exploratory testing technique combines the experience of testers with a structured approach to testing.

Q21. How to write Test Cases?
A test case is a defined format for software testing required to check if a particular application/software is working or not. A test case consists of a certain set of conditions that need to be checked to test an application or software i.e. in more simple terms when conditions are checked it checks if the resultant output meets with the expected output or not.

Q22. What’s difference between Monkey Testing and Gorilla Testing?

Moneky Testing

Gorilla Testing

Monkey testing is a type of software testing which is performed based on some random inputs without any test cases and checks the behavior of the system and confirms whether it crashes or not.

Gorilla Testing is a type of software testing which is performed on a module based on some random inputs repeatedly and checks the module’s functionalities and confirms no bugs in that module.

Monkey testing is a type of random testing and no test cases used in this testing.

Gorilla Testing is a manual testing and it is repetitively performed.

In Monkey Testing a user or a tester or a developer can test the system to confirm whether it performs the desired set of actions.

Mostly in Gorilla Testing the testers and developers both can jointly or independently test a module’s functionalities repeatedly.

This testing is performed on entire system.

While this testing is performed on few selective modules of the system.

Q23. What do you mean by Bugs in Software Testing?
A malfunction in the software/system is an error that may cause components or the system to fail to perform its required functions. In other words, if an error is encountered during the test it can cause malfunction. For example, incorrect data description, statements, input data, design, etc.

Q24. What is Functional Testing?
Functional Testing is a type of Software Testing in which the system is tested against the functional requirements and specifications. Functional testing ensures that the requirements or specifications are properly satisfied by the application. This type of testing is particularly concerned with the result of processing.

Q25. What is Non-Functional Testing?
Non-functional Testing is a type of Software Testing that is performed to verify the non-functional requirements of the application. It verifies whether the behavior of the system is as per the requirement or not. It tests all the aspects that are not tested in functional testing. Non-functional testing is a software testing technique that checks the non-functional attributes of the system.

Q26. What’s the difference between Load Testing and Stress Testing?

Load Testing

Stress Testing

Load Testing is a type of performance testing that determines the performance of a different application under real-life-based load conditions.

Stress Testing is performed to test the robustness of the system or software application under extreme load.

In load testing load limit is the threshold of a break. In stress testing load limit is above the threshold of a break.
Load testing is performed to find out the upper limit of the system or application. Stress testing is performed to find the behavior of the system under pressure.
In load testing, the performance of the software is tested under multiple users. In stress testing, the performance is tested under varying data amounts.

Q27. What is the Spiral Model?
The Spiral Model is a Software Development Life Cycle (SDLC) model that provides a systematic and iterative approach to software development. In its diagrammatic representation, looks like a spiral with many loops. The exact number of loops of the spiral is unknown and can vary from project to project. Each loop of the spiral is called a Phase of the software development process.

Q28. What is Compatibility Testing?
Compatibility testing is software testing which comes under the non functional testing category, and it is performed on an application to check its compatibility (running capability) on different platform/environments. This testing is done only when the application becomes stable. Means simply this compatibility test aims to check the developed software application functionality on various software, hardware platforms, network and browser etc.

Q29. What the difference between Static and Dynamic Testing?

Static Testing Dynamic Testing
It is performed in the early stage of the software development. It is performed at the later stage of the software development.
In static testing whole code is not executed. In dynamic testing whole code is executed.
Static testing prevents the defects. Dynamic testing finds and fixes the defects.
Static testing is performed before code deployment. Dynamic testing is performed after code deployment.

Q30. What is a Waterfall Model in SDLC ?
The waterfall model is a software development model used in the context of large, complex projects, typically in the field of information technology. It is characterized by a structured, sequential approach to project management and software development.The waterfall model is useful in situations where the project requirements are well-defined and the project goals are clear.

Q31. What are the various types for Software Testing Tools?
Software Testing tools are the tools that are used for the testing of software. Software testing tools are often used to assure firmness, thoroughness, and performance in testing software products. Unit testing and subsequent integration testing can be performed by software testing tools. These tools are used to fulfill all the requirements of planned testing activities.

Q32. What is Globalization Testing?
Globalization Testing is a type of software testing that is performed to ensure the system or software application can function independently of the geographical and cultural environment. It ensures that the application can be used all over the world and accepts all language texts.Globalization Testing is a process of validating whether a website delivers a customized user experience to users across the globe.

Q33. What’s the difference between SDLC and STLC?

SDLC

STLC

SDLC is mainly related to software development. STLC is mainly related to software testing.
Besides development other phases like testing is also included. It focuses only on testing the software.
SDLC involves total six phases or steps. STLC involves only five phases or steps.
In SDLC, more number of members (developers) are required for the whole process. In STLC, less number of members (testers) are needed.

Q34. What is Branch Software Testing?
Branch Testing is defined as a testing method, which has the main goal to ensure that each one of the possible branches from each decision point is executed at least once and thereby ensuring that all reachable code is executed. In the branch testing, each outcome from a code module is tested as if the outcomes are binary, you need to test both True and False outcomes.

Q35. What is Requirement Traceability Matrix (RTM)?
RTM stands for Requirement Traceability matrix. RTM maps all the requirements with the test cases. By using this document one can verify test cases cover all functionality of the application as per the requirements of the customer.The main purpose of the requirement traceability matrix is to verify that the all requirements of clients are covered in the test cases designed by the testers.

Q36. What is Error Guessing?
In software testing error guessing is a method in which experience and skill plays an important role. As here possible bugs and defects are guessed in the areas where formal testing would not work. That’s why it is also called as experience based testing which has no specific method of testing. This is not a formal way of performing testing still it has importance as it sometimes solves many unresolved issues also.

Q37. What’s the difference between System Testing and Acceptance Testing?

System Testing

Acceptance Testing

System testing is done to check whether the software or product meets the specified requirements or not. Acceptance testing is the type of testing which is used to check whether the software meets the customer requirements or not.
System testing is used by developers as well as testers. Acceptance testing is used by testers, stakeholders as well as clients.
System Testing is the constitute of System and integration testing. Acceptance testing is the constitute of alpha and beta testing.
System testing is the constitute of positive as well as negative test cases. Acceptance Testing is the constitute of positive test cases.

Q38. What is Data Flow Testing?
Data Flow Testing is a type of structural testing. It is a method that is used to find the test paths of a program according to the locations of definitions and uses of variables in the program. It has nothing to do with data flow diagrams.Data Flow Testing uses the control flow graph to find the situations that can interrupt the flow of the program. Reference or define anomalies in the flow of the data are detected at the time of associations between values and variables.

Q39. What is Gray Box Testing?
Gray Box Testing is a software testing technique that is a combination of the Black Box Testing technique and the White Box Testing technique.Gray Box Testing is named so because the software program is like a semitransparent or gray box inside which the tester can partially see.

Q40. What is Mutation Testing?
Mutation Testing is a type of Software Testing that is performed to design new software tests and also evaluate the quality of already existing software tests. Mutation testing is related to modification a program in small ways. It focuses to help the tester develop effective tests or locate weaknesses in the test data used for the program.

Q41. What’s the difference between End-to-end Testing and Unit Testing?

End-to-end Testing

Unit Testing

In end-to-end testing, the behavioral flow of the software is tested.  Unit testing generally focuses on functional verification.
Requirement of more hardware resources and database access and other external dependencies are also needed for end-to-end tests.  The execution of individual unit tests is possible from the command line and therefore, you are able to run a small number that are pertinent to your work.
A lot of effort is required to write and maintain and time taken relies on complexity level of the application and number of test cases required to execute. Less effort is required to write and maintain if TDD approach is followed.
It tests the software system and the connected systems both combine. In unit testing, software’s module are tested separately.

Q42. What is Regression Testing?
Regression Testing is the process of testing the modified parts of the code and the parts that might get affected due to the modifications to ensure that no new errors have been introduced in the software after the modifications have been made. Regression means the return of something and in the software field, it refers to the return of a bug.

Q43. What is an API?
API is an abbreviation for Application Programming Interface which is a collection of communication protocols and subroutines used by various programs to communicate between them. A programmer can make use of various API tools to make their program easier and simpler. Also, an API facilitates programmers with an efficient way to develop their software programs.

Q44. What is Volume Testing?
Volume Testing is a type of software testing which is carried out to test a software application with a certain amount of data. The amount used in volume testing could be a database size or it could also be the size of an interface file that is the subject of volume testing. 

Q45. What’s the Difference between GUI Testing and Usability Testing?

GUI Testing

Usability Testing

It is used to test the front-end part of any application. It measures the extent of the friendliness of the User Interface part and overall functioning of the software.
It focuses on the look and feel of an application. It focuses on the friendliness of an application.
It assures the look and feel of an application by matching with standards and user requirements. It assures that the user should be comfortable to use any app by making its design easy.
In this, an application should be amazing in look whether it is easy to use or not. In this, an application should be easy to use whether its appearance is up to the mark or not.

Q46. What is Active Software Testing?
Active Testing is a type of software testing in which the tester introduces test data and does the result analysis. During the performance of active testing, tester constructs a virtual model of the software under test which continues to grow and refine as interaction with the software continues. In this type of testing tester himself interacts with the software and checks which type of problems may be generated.

Q47. What is a Hybrid Work Model?
A hybrid Model is a model which is developed by combining two traditional models of SDLC. The base models can be anyone like a spiral model, V&V model, prototype model, etc. and the selection of models is as per requirements. By collaborating two base models the resulting hybrid Model acquires its properties, process, and benefits which results in building a more powerful, flexible, and effective Model.

Q48. What is Spike Testing?

Spike Testing is a type of software performance testing that is done by suddenly increasing or decreasing the load on the system or software application. The load is generated by a huge number of users and the behaviour of the system is observed. The goal of spike testing is to determine whether the system will fail or survive in case of dramatic changes in load.

Q49. What is V-Model?
The V-model is a type of SDLC model where the process executes in a sequential manner in a V-shape. It is also known as the Verification and Validation model. It is based on the association of a testing phase for each corresponding development stage. The development of each step is directly associated with the testing phase.

Q50. What’s the difference between Positive Testing and Negative Testing?

Positive Testing

Negative Testing

Positive testing is a type of software testing that is performed by assuming everything will be as expected.

Negative testing is a type of software testing that is performed to check the system for unexpected conditions. 

It is performed only for expected conditions. It is performed for unexpected conditions.
It doesn’t cover all possible cases. It covers all possible cases.
It doesn’t ensure a good quality product. It ensures a good quality product.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads