Software Engineering MCQ Quiz - Objective Question with Answer for Software Engineering - Download Free PDF
Last updated on Nov 2, 2023
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?
Answer (Detailed Solution Below)
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?
Answer (Detailed Solution Below)
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:
Answer (Detailed Solution Below)
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:
Answer (Detailed Solution Below)
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
Answer (Detailed Solution Below)
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:
Answer (Detailed Solution Below)
Software Engineering Question 6 Detailed Solution
Download Solution PDFThe 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 ?
Answer (Detailed Solution Below)
Software Engineering Question 7 Detailed Solution
Download Solution PDFConcept:
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?
Answer (Detailed Solution Below)
Software Engineering Question 8 Detailed Solution
Download Solution PDFConcept:
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.
Answer (Detailed Solution Below)
Software Engineering Question 9 Detailed Solution
Download Solution PDFConcept:
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
Answer (Detailed Solution Below)
Software Engineering Question 10 Detailed Solution
Download Solution PDFExplanation:
- 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 __________.
Answer (Detailed Solution Below)
Software Engineering Question 11 Detailed Solution
Download Solution PDFConcept :
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 L1 for which cost of developing the software with both languages must be same ?
Answer (Detailed Solution Below)
Software Engineering Question 12 Detailed Solution
Download Solution PDFThe 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 hoursAnswer (Detailed Solution Below)
Software Engineering Question 13 Detailed Solution
Download Solution PDFExplanation:
- 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:
The lower degree of cohesion is kind of
Answer (Detailed Solution Below)
Software Engineering Question 14 Detailed Solution
Download Solution PDFCohesion 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
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?
Answer (Detailed Solution Below)
Software Engineering Question 15 Detailed Solution
Download Solution PDFThe 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.