Software Engineering MCQ Quiz - Objective Question with Answer for Software Engineering - Download Free PDF

Last updated on Nov 2, 2023

Software engineering is a discipline that focuses on the systematic approach to designing, developing, and maintaining software systems. A common section in competitive Engineering exams, Software Engineering MCQs involve questions on topics such as requirements analysis, design, coding, testing, and deployment. It emphasizes the use of engineering principles and methodologies to ensure the delivery of high-quality, reliable, and scalable software solutions. Candidates must be aware of effective software engineering practices that involve collaboration, documentation, version control, and testing techniques to mitigate risks, meet user needs, and adhere to project timelines. Software Engineering MCQs will also involve continuous monitoring and improvement of software processes to enhance efficiency and productivity. Software engineering plays a crucial role in enabling organizations to build complex software systems that address specific business requirements while considering factors such as cost, usability, security, and maintainability. Check your knowledge of the subject by attempting the given Software Engineering MCQs.

Latest Software Engineering MCQ Objective Questions

Software Engineering Question 1:

Comprehension:

Software testing is a vital process within software development that involves evaluating computer software to establish whether it's performing as expected under various conditions. Its core aim is ____________.

Given that no software application can be totally error-free, it's important to execute software testing to ensure that the software is functioning correctly and delivering an optimal user experience. Different types of software testing methodologies exist, each tailored to examine various functionality and performance aspects of the system. These include unit testing, integration testing, system testing, and acceptance testing.

'Unit testing' involves checking individual components to ascertain they're working correctly, whereas 'integration testing' ________________. 'System testing,' on the other hand, is performed on a complete system to check whether it meets specified requirements. Lastly, 'acceptance testing' is executed to verify if the system satisfies the customer's needs.

Various philosophies guide software testing, but a widely shared one is that any software's purpose must be adequately understood before conducting trials. Additionally, it's crucial to consider the actual use and potential misuse of the software while testing. Testers often employ tests that are exploratory or automated, and sometimes a mix of both types, to ensure comprehensive coverage.

Different models of software development shape the timing and strategy of testing. For instance, in the waterfall model, testing is a distinct phase that occurs after programming is completed. In contrast, testing is continuous in Agile software development, often conducted at the same time as programming.

How does testing fit into Agile software development?

  1. Testing is a distinct phase following the completion of programming.
  2. Testing is restricted to the initial stage of product development.
  3. Testing is only done once before the product launch.
  4. Testing is continuous and often conducted concurrently with programming.
  5. None of the above

Answer (Detailed Solution Below)

Option 4 : Testing is continuous and often conducted concurrently with programming.

Software Engineering Question 1 Detailed Solution

The correct answer is Testing is continuous and often conducted concurrently with programming.

Explanation:

  • In the Agile software development approach, testing is not considered as a distinct phase that happens only after all programming is completed. Instead, it is an ongoing process that happens continually throughout the development cycle.
  • Agile encourages a integrated model in which developers and testers often work together from the beginning of a project. Testing is conducted in parallel with programming, even on small chunks of functionality as they become available. By the time a feature or functionality is fully developed, it has also been thoroughly tested.
  • This ongoing testing has many benefits, including finding and fixing bugs or inconsistencies early, before they become too entrenched. Also, it allows for feedback and changes from stakeholders to be incorporated more easily and efficiently. As a result, the end product is more likely to meet users' needs and expectations.

Software Engineering Question 2:

Comprehension:

Software testing is a vital process within software development that involves evaluating computer software to establish whether it's performing as expected under various conditions. Its core aim is ____________.

Given that no software application can be totally error-free, it's important to execute software testing to ensure that the software is functioning correctly and delivering an optimal user experience. Different types of software testing methodologies exist, each tailored to examine various functionality and performance aspects of the system. These include unit testing, integration testing, system testing, and acceptance testing.

'Unit testing' involves checking individual components to ascertain they're working correctly, whereas 'integration testing' ________________. 'System testing,' on the other hand, is performed on a complete system to check whether it meets specified requirements. Lastly, 'acceptance testing' is executed to verify if the system satisfies the customer's needs.

Various philosophies guide software testing, but a widely shared one is that any software's purpose must be adequately understood before conducting trials. Additionally, it's crucial to consider the actual use and potential misuse of the software while testing. Testers often employ tests that are exploratory or automated, and sometimes a mix of both types, to ensure comprehensive coverage.

Different models of software development shape the timing and strategy of testing. For instance, in the waterfall model, testing is a distinct phase that occurs after programming is completed. In contrast, testing is continuous in Agile software development, often conducted at the same time as programming.

What is fundamentally important to consider before conducting software testing? 

  1. The color scheme of the software interface. 
  2. The actual use and potential misuse of the software.
  3. The budget allocated for software development. 
  4. The marketing strategies for the software.
  5. None of the above

Answer (Detailed Solution Below)

Option 2 : The actual use and potential misuse of the software.

Software Engineering Question 2 Detailed Solution

The correct answer is The actual use and potential misuse of the software.

Explanation:

  • Before conducting software testing, it's empirically important to understand the actual usage and potential misuse scenarios of the software. This means understanding what the software is supposed to do (its intended functionality), and also thinking about how it might be incorrectly or maliciously used.
  • By understanding the intended use, you can design tests that verify the software behaves correctly under normal circumstances. However, it's also important to understand potential misuse, either by accident (for example, a user entering data in a way that wasn't anticipated) or deliberate attempts to hack or break the system. This knowledge helps testers to validate inputs, confirm error messages, and test exceptional or boundary conditions which can prompt software failures.
  • Therefore, understanding both use and misuse assists in comprehensive test case development, leading to the improvement of the software's quality and robustness.

Software Engineering Question 3:

Comprehension:

Software testing is a vital process within software development that involves evaluating computer software to establish whether it's performing as expected under various conditions. Its core aim is ____________.

Given that no software application can be totally error-free, it's important to execute software testing to ensure that the software is functioning correctly and delivering an optimal user experience. Different types of software testing methodologies exist, each tailored to examine various functionality and performance aspects of the system. These include unit testing, integration testing, system testing, and acceptance testing.

'Unit testing' involves checking individual components to ascertain they're working correctly, whereas 'integration testing' ________________. 'System testing,' on the other hand, is performed on a complete system to check whether it meets specified requirements. Lastly, 'acceptance testing' is executed to verify if the system satisfies the customer's needs.

Various philosophies guide software testing, but a widely shared one is that any software's purpose must be adequately understood before conducting trials. Additionally, it's crucial to consider the actual use and potential misuse of the software while testing. Testers often employ tests that are exploratory or automated, and sometimes a mix of both types, to ensure comprehensive coverage.

Different models of software development shape the timing and strategy of testing. For instance, in the waterfall model, testing is a distinct phase that occurs after programming is completed. In contrast, testing is continuous in Agile software development, often conducted at the same time as programming.

Integration testing is defined as:

  1. Testing conducted on a complete system to check if it meets the requirements.
  2. Testing executed to verify if the system satisfies the customer need.
  3. Testing performed to ensure individual components are working correctly.
  4. Testing performed to confirm that various integrated parts of a system function together as expected.
  5. None of the above

Answer (Detailed Solution Below)

Option 4 : Testing performed to confirm that various integrated parts of a system function together as expected.

Software Engineering Question 3 Detailed Solution

The correct answer is Testing performed to confirm that various integrated parts of a system function together as expected.

Explanation:

  • Integration testing is a method of software testing that checks how different parts or components of a software system interact and operate together.
  • During the development process, individual modules are often built separately before they get merged into larger subsystems or the full system. Each module may work perfectly when considered in isolation, but issues may arise when these pieces start to interact, so it's important to test them together.
  • For example, data can get lost across an interface, or one module might adversely affect another. Integration testing, therefore, aims to catch and correct these potential problems early, facilitating the delivery of a quality software product.

Software Engineering Question 4:

Comprehension:

Software testing is a vital process within software development that involves evaluating computer software to establish whether it's performing as expected under various conditions. Its core aim is ____________.

Given that no software application can be totally error-free, it's important to execute software testing to ensure that the software is functioning correctly and delivering an optimal user experience. Different types of software testing methodologies exist, each tailored to examine various functionality and performance aspects of the system. These include unit testing, integration testing, system testing, and acceptance testing.

'Unit testing' involves checking individual components to ascertain they're working correctly, whereas 'integration testing' ________________. 'System testing,' on the other hand, is performed on a complete system to check whether it meets specified requirements. Lastly, 'acceptance testing' is executed to verify if the system satisfies the customer's needs.

Various philosophies guide software testing, but a widely shared one is that any software's purpose must be adequately understood before conducting trials. Additionally, it's crucial to consider the actual use and potential misuse of the software while testing. Testers often employ tests that are exploratory or automated, and sometimes a mix of both types, to ensure comprehensive coverage.

Different models of software development shape the timing and strategy of testing. For instance, in the waterfall model, testing is a distinct phase that occurs after programming is completed. In contrast, testing is continuous in Agile software development, often conducted at the same time as programming.

Core aim of Software Testing is:

  1. To identify software capacity
  2. To identify any bugs, defects, or inconsistencies
  3.  It allows the customers to understand the system better before purchasing.
  4.  It enables the developers to add more features.
  5. None of the above

Answer (Detailed Solution Below)

Option 2 : To identify any bugs, defects, or inconsistencies

Software Engineering Question 4 Detailed Solution

The correct answer is To identify any bugs, defects, or inconsistencies

Key Points

  • Software testing is crucial because it helps detect and fix any bugs, defects, or faults in the system before it goes live or becomes operational.
  • Without thorough testing, these flaws could undermine the software's functionality, leading to unsatisfied users and potential financial and reputational damage.
  • By identifying issues early, developers can make necessary corrections, thus ensuring that the software works as intended and delivers an optimal user experience.
  • Software testing, therefore, plays a pivotal role in enhancing the quality of a product and reducing the risk of failure.

Software Engineering Question 5:

The most desirable form of coupling is

  1. Control Coupling
  2. Data Coupling
  3. Common Coupling
  4. Content Coupling
  5. None of the above

Answer (Detailed Solution Below)

Option 2 : Data Coupling

Software Engineering Question 5 Detailed Solution

Concept

Coupling is the degree of interdependence between software modules means a measure of how closely connected two routines or modules are connected

Coupling between modules can be ranked in the order of strongest (least desirable) to weakest (most desirable) as follows: Content Coupling, Common Coupling, External Coupling, Control Coupling, Stamp Coupling, Data Coupling.

Additional Information

  • Data Coupling: Two modules are data coupled if they communicate through a parameter.It is most desirable form of Coupling  
  • Stamp Coupling: Two modules are stamp coupled if they communicate using a composite data item such as a record in PASCAL or a structure in C.
  • Control Coupling: Control coupling exists between two modules if data from one module is used to direct the order of instructions executed in another. An example of control coupling is a flag set in one module and tested in another module.
  • Common Coupling: Two modules are common coupled if they share data through some global data items.
  • Content Coupling: Content coupling exists between two modules if they share code, e.g. a branch from one module into another module.

Top Software Engineering MCQ Objective Questions

MS Office, Photoshop and Animagic are examples of:

  1. Device driver
  2. Application software
  3. System software
  4. Operating system

Answer (Detailed Solution Below)

Option 2 : Application software

Software Engineering Question 6 Detailed Solution

Download Solution PDF

The correct answer is Application software

Important Points

  • MS Office, Photoshop, and Animagic are examples of Application software
  • MS Office is a software bundle provided by Microsoft.
  • It includes software like MS Word, MS Excel, MS Powerpoint, MS Outlook, MS Access, MS One Note, and others.

Additional Information

  • Photoshop is a powerful photo editing tool by Adobe.
  • An Operating System (OS) is an interface between a computer user and computer hardware.
  • An operating system is software that performs all the basic tasks like file management, memory management, process management, handling input and output, and controlling peripheral devices such as disk drives and printers.

Which of the following represents the life-cycle of software development ? 

  1. Analysis -> Design -> Coding -> testing -> operation and maintenance
  2. Analysis -> Design -> Coding -> operation and maintenance -> testing 
  3. Design -> Analysis -> Coding -> testing -> operation and maintenance 
  4. Design -> Analysis -> Coding -> operation and maintenance -> testing

Answer (Detailed Solution Below)

Option 1 : Analysis -> Design -> Coding -> testing -> operation and maintenance

Software Engineering Question 7 Detailed Solution

Download Solution PDF

Concept:

Software development life cycle is the logical process of developing a system that satisfies customer needs and can be developed within the predefined schedule and cost.

Explanation:

Various phases of the software development life cycle are : 

1) Analysis: First thing is to gather and analyze the requirements of the system. The information domain, function, behavioral requirements of the system are understood. These requirements are then well documented.

2) Design: After collecting and analyzing all necessary requirements, design architecture is prepared.

3) Coding: After the design, one can develop the code for the system using some programming language. During this, design is translated into a machine-readable form.

4) Testing: It is done to uncover the errors and fix the bugs.

5) Maintenance: Sometimes errors may get produced after system installation and sometimes the requirements get changed. At that time, the maintenance of the system is needed.

Which of the following is/are the phases of system development life cycle?

  1. Implementation 
  2. Feasibility study
  3. All of the options 
  4. Coding

Answer (Detailed Solution Below)

Option 3 : All of the options 

Software Engineering Question 8 Detailed Solution

Download Solution PDF

Concept:

System development life cycle (SDLC) is a process followed for a software project, within a software organization. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software.

The life cycle defines a methodology for improving the quality of software and the overall development process.

Phases of SDLC

Feasibility study

Requirements analysis and specification

Design

Coding and unit testing

Integration and system testing

Maintenance


Therefore, all options are correct

A multimedia project is said to be _________ and user-interactive when users are given navigational control.

  1. Hypertext
  2. Non-linear
  3. Linear
  4. Secure

Answer (Detailed Solution Below)

Option 2 : Non-linear

Software Engineering Question 9 Detailed Solution

Download Solution PDF

Concept:

Mutlimedia means combination of text, audio, video, graphics, and animation. Mutlimedia project are the multimedia materials which are presented on computer screen.

Explanation:

Phases of a multimedia project are : planning, designing , testing and delivering. 

Some points about multimedia project : 

  • Interactive mutlimedia gives the navigational controls to the user. It control what elements are to be delivered.
  • It requires creative skills, tools and organization talent to create mutlimedia projects.
  • There are two categories in multimedia : linear and non - linear.
  • Linear multimedia is without any navigational control example cinema.
  • Non - linear provides user interactivity to control progress. Example : computer game.
  • Mutlimedia system must be integrated, handled digitally and usually interactive.
  • Mutlimedia can be delivered using optical disk, web or distributed network.

Regression testing is primarily related to

  1. Functional testing
  2. Development testing
  3. Data flow testing
  4. Maintenance testing

Answer (Detailed Solution Below)

Option 1 : Functional testing

Software Engineering Question 10 Detailed Solution

Download Solution PDF

Explanation:

  • The purpose of regression testing is to confirm that a recent program or code change has not adversely affected existing features.
  • Regression testing is nothing but a full or partial selection of already executed test cases that are re-executed to ensure existing functionalities work fine.
  • This testing is done to make sure that new code changes should not have side effects on the existing functionalities. It ensures that the old code still works once the new code changes are done.

The purpose of regression testing is to select test cases partially or fully to ensure existing functionalities work fine. Thus, regression testing is primarily related to functional testing

Need of Regression Testing

  • Regression Testing is required when there is a change in requirements and code is modified according to the requirement or when one of the following has been done.
    • New feature is added to the software
    • Defect fixing
    • Performance issue fix

Software consists of __________.

  1. Set of instructions + operating procedures
  2. Programs + documentation + operating procedures
  3. Programs + hardware manuals
  4. Set of programs

Answer (Detailed Solution Below)

Option 2 : Programs + documentation + operating procedures

Software Engineering Question 11 Detailed Solution

Download Solution PDF

Concept :

The software comprises the entire set of programs, procedures, and routines associated with the operation of a computer system. The term was coined to differentiate these instructions from hardware—i.e., the physical components of a computer system.

Programs + documentation + operating procedures is the correct answer.

A Company has a choice of two languages L1 and L2 to develop a software for their client. Number of LOC required to develop an application in L2, is thrice the LOC in language L1. Also, software has to be maintained for next 10 years. Various parameters for two languages. are given below to decide which language should be preferred for development.

PARAMETER

L1

L2

Man-year needed for development

LOC/1000

LOC/1000

Development cost

Rs. 70,000

Rs. 90,000

Cost of Maintenance per year

Rs. 1,00,000

Rs. 40,000

 

Total cost of project include cost of development and maintenance. What is the LOC for Lfor which cost of developing the software with both languages must be same ?

  1. 2000
  2. 6000
  3. 3000
  4. 5000

Answer (Detailed Solution Below)

Option 3 : 3000

Software Engineering Question 12 Detailed Solution

Download Solution PDF

The correct answer is option 3

Formula:

The total cost of the project = Total development cost + Total maintenance cost

Calculation:

Let p1 be the LOC using L1 and p2 be the LOC using L2.

Total cost of the project using L1 = (p1/1000) x 70,000 + (10 x 1,00,000) = 70p1 + 10,00,000

Total cost of the project using L2 = (p2/1000) x 90,000 + (10 x 40,000) = 90p2 + 4,00,000

Given that p2 = 3xp1

=>70p1 + 10,00,000 = 90p2 + 4,00,000

=>70p1 + 10,00,000 = 270p1 + 4,00,000

=> 200p1 = 6,00,000

=> p1 = 3000

What is the availability of the software with following reliability figures

Mean Time Between Failure (MTBF) is 20 days

Mean Time To Repair (MTTR) is 20 hours

  1. 90%
  2. 96%
  3. 24%
  4. 50%

Answer (Detailed Solution Below)

Option 2 : 96%

Software Engineering Question 13 Detailed Solution

Download Solution PDF

Explanation:

  • Mean time between failures is the average time between failures and not the average time something works then fails.
    • Mean time between failure (MTBF) = \(\frac{{total\;uptime}}{{number\;of\;breakdowns}}\)
  • Mean time to repair is the average time taken to repair something.
    • Mean time to repair (MTTR) = \(\frac{{total\;downtime}}{{number\;of\;breakdowns}}\)

Availability = \(\frac{{total\;uptime}}{{\left( {total\;uptime + total\;downtime} \right)}}\)

       = \(\frac{{MTBF}}{{\left( {MTBF + MTTR} \right)}} \times 100\;\;\;\;\;\;\;\;\;\;\backslash \backslash percentage\;\)

                       = \(\frac{{20*24}}{{\left( {20*24 + 20} \right)}} \times 100\)

       = 0.96 × 100 = 96%

Important Point:

In MTBF, we converted 20 days into hours = 20 × 24 hours.

The lower degree of cohesion is kind of

  1. Logical Cohesion
  2. Coincidental Cohesion
  3. Procedural Cohesion 
  4. Communicational Cohesion

Answer (Detailed Solution Below)

Option 2 : Coincidental Cohesion

Software Engineering Question 14 Detailed Solution

Download Solution PDF

Cohesion is like a type of ranking which is used to measure the degree of modules are functionally related

The degree of Cohesion can be defined as

F1 Raju Madhu 27.10.20 D1

Important Information

  • Coincidental cohesion is when parts of a module are grouped arbitrarily
  • Logical cohesion is when parts of a module are grouped because they are logically categorized 
  • Temporal cohesion is when parts of a module are grouped by when they are processed
  • Procedural cohesion is when parts of a module are grouped because they always follow a certain sequence of execution 
  • Communicational cohesion if all functions of the module refer to or update the same data structure.
  • Sequential cohesion is when parts of a module are grouped because the output from one part is the input to another part like an assembly line 
  • Functional cohesion is when parts of a module are grouped because they all contribute to a single well-defined task of the module

58000 LOC gaming software is developed with effort of 3 person-year. What is the productivity of person-month?

  1. 1.9 KLOC
  2. 1.6 KLOC
  3. 4.8 KLOC
  4. 4.2 KLOC

Answer (Detailed Solution Below)

Option 2 : 1.6 KLOC

Software Engineering Question 15 Detailed Solution

Download Solution PDF

The correct answer is option 2

Formula:

Productivity = KLOC ÷ person-month

where KLOC is the number of lines of code (in thousands).

Productivity = 58 ÷ 3*12 = 1.61 person-month

Hint

A person-month is a unit of work that's calculated by multiplying the number of persons by the number of months they work.

For example, if a team of three developers work on a task for two months, then the total effort by the team is 6 person-months.

Get Free Access Now