Software Engineering Interview Questions with Answers

Software Engineering Interview Questions with Answers

Q)What is a data dictionary?
ANS: Data dictionary is referred to as meta-data,it is a repository of data about data.Data dictionary is used to organize the names and their references used in the system such as objects and files along with their naming conventions

Q)What is the difference between QA, QC, and Software Testing?
ANS: Quality Assurance (QA): QA refers to the planned and systematic way of monitoring the quality of the 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 the product that 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.

Q)What is the difference between function-oriented and object-oriented design?
ANS: Function-oriented design is comprised of many smaller sub-systems known as functions. Each function is capable of performing a significant task in the system. Object-oriented design works around real-world objects (entities), their classes (categories), and methods operating on objects (functions).



Q) Briefly define top-down and bottom-up design models.
ANS: Top-down model starts with a generalized view of the system and decomposes it to more specific ones, whereas the bottom-up model starts with the most specific and basic components first and keeps composing the components to get a higher level of abstraction.



Q) What is random/monkey testing? When it is used?
ANS: Random testing is often known as monkey testing. In such type of testing, data is generated randomly often using a tool or automated mechanism. With this randomly generated input, the system is tested and results are analyzed accordingly. These tests are less reliable; hence it is normally used by 
beginners and to see whether the system will hold up under adverse effects.


Q) What are verification and validation?
ANS: Verification is a process of evaluating software at the development phase and deciding whether the product of a given application satisfies the specified requirements. Validation is the process of evaluating software at the end of the development process and checking whether it meets the customer requirements.


Q)What are software requirements?
ANS: Software requirements are functional descriptions of a proposed software system. Requirements are assumed to be the description of the target system, its functionalities, and its features. Requirements convey the expectations of users from the system.


Q)What is modularization?
ANS: Modularization is a technique to divide a software system into multiple discreet modules, which are expected to carry out the task(s) independently.


Q):What is mutation testing?
ANS :Mutation testing is a technique to identify if a set of test data or test case is useful by intentionally introducing various code changes (bugs) and retesting with original test data/ cases to determine if the bugs are detected.


Q):What is Regression Testing?
ANS:When a bug is fixed by the development team than testing the other features of the applications which might be affected due to the bug fix is known as regression testing.  

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.


Q)What is functional programming?
ANS:Functional programming is style of programming language, which uses the concepts of mathematical function.It provides means of computation as mathematical functions, which produces results irrespective of program state.


Q) Quality assurance vs. Quality Control?
ANS: Quality Assurance monitors to check if proper process is followed while software developing the software. Quality Control deals with maintaining the quality of software product.


Q)What is software re-engineering?
ANS:Software re-engineering is process to upgrade the technology on which the software is built without changing the functionality of the software. This is done in order to keep the software tuned with the latest technology.


Q) What are SDLC models available?
ANS:There are several SDLC models available such as Waterfall Model, Iterative Model, Spiral model, V-model and Big-bang Model etc.


Q) What are various phases of SDLC?
ANS:The generic phases of SDLC are: Requirement Gathering, System Analysis and Design,Coding,Testing and implementation.The phases depend upon the model we choose to develop software


Q) What is software project management?
ANS:Software project management is process of managing all activities like time,cost and quality management involved in software development.


Q)What does software project manager do?
ANS: Software project manager is engaged with software management activities.He is responsible for project planning,monitoring the progress,communication among stakeholders,managing risks and resources, smooth execution of development and delivering the project within time, cost and quality contraints.

Q)What is software scope?
ANS:Software scope is a well-defined boundary, which encompasses all the activities that are done to develop and deliver the software product. 

The software scope clearly defines all functionalities and artifacts to be delivered as a part of the software. The scope identifies what the product will do and what it will not do, what the end product will contain and what it will not contain.


Q)What is project estimation?
ANS: It is a process to estimate various aspects of software product in order to calculate the cost of development in terms of efforts, time and resources. This estimation can be derived from past experience, by consulting experts or by using pre-defined formulas.


Q)How can we derive the size of software product?
ANS:Size of software product can be calculated using either of two methods Counting the lines of delivered code, Counting delivered function points


Q)What are function points?
ANS: Function points are the various features provided by the software product. It is considered as a unit of measurement for software size.


Q)What are software project estimation techniques available?
ANS: There are many estimation techniques available. The most widely used are - Decomposition technique (Counting Lines of Code and Function Points) and the Empirical technique (Putnam and COCOMO).


Q)What is the baseline?
ANS: Baseline is a measurement that defines the completeness of a phase. After all activities associated with a particular phase are accomplished, the phase is complete and acts as a baseline for the next phase.


Q) What is Software configuration management?
ANS: Software Configuration Management is a process of tracking and controlling the changes in software in terms of the requirements, design, functions, and development of the product.


Q) What is change control?
ANS Change control is a function of configuration management, which ensures that all changes made to the software system are consistent and made as per organizational rules and regulations.


Q)How can you measure project execution?
ANS: We can measure project execution by means of Activity Monitoring, Status Reports, and Milestone Checklists.


Q) Mention some project management tools.
ANS: There are various project management tools used as per the requirements of software project and organization policies. They include Gantt Chart, PERT Chart, Resource Histogram, Critical Path Analysis, Status Reports, Milestone Checklists, etc.


Q) What is concurrency and how it is achieved in software?
ANS: Concurrency is the tendency of events or actions to happen simultaneously. In software, when two or more processes execute simultaneously, they are called concurrent processes.
Example While you initiate the print command and printing starts, you can open a new application. Concurrency is implemented by splitting the software into multiple independent units of execution namely processes and threads and executing them in parallel.


Q) What is the difference between structured English and Pseudo Code?
ANS: Structured English is a native English language used to write the structure of a program module by using programming language keywords, whereas, Pseudo Code is closer to the programming language and uses native English language words or sentences to write parts of code.


Q) What is the difference between Retesting and Regression testing?
ANS: The difference between Retesting and Regression testing are below:
  • Retesting is done to verify defects fixes whereas regression is performed to check if the defect fix has not impacted other functionality that was working fine before doing changes in the code.
  • Retesting is planned testing based on the defect fixes listed whereas regression is not always specific to any defect fix. Also, a regression can be executed for some modules or all modules.
  • Retesting concerned with executing those test cases that are failed earlier whereas regression concerned with executing test cases that were passed in earlier builds.
  • Retesting has higher priority over regression, but in some cases retesting and regression testing are carried out in parallel.


Q)What is Scrum?
ANS: Scrum is an Agile framework for completing complex projects. Scrum originally was formalized for software development projects, but it works well for any complex, innovative scope of work. Agile software development with Scrum is often perceived as a methodology; but rather than viewing Scrum as methodology, think of it as a framework for managing a process


Visit website
Previous Post Next Post