MDM Question Bankpdf
MDM Question Bankpdf
Q.5) Explain – 1. Waterfall model 2. V-model 3. Spiral model 4. Prototyping model 5. RAD 6. Iterative model.
Ans: There are several types of development process models (also known as software development life cycle (SDLC) models) that
define the approach to planning, creating, testing, and deploying software systems. Each model has its own characteristics,
advantages, and use cases depending on the project's needs.
Here are the types of development process models:
1. Waterfall Model
Description: The Waterfall model is a linear and sequential approach to software development. It divides the process into distinct
phases, where each phase must be completed before moving to the next.
Phases: Requirement analysis, System design, Implementation, Integration, Testing, Deployment, and Maintenance.
Advantages: Simple and easy to understand; well-suited for projects with clear, fixed requirements.
Disadvantages: Inflexible to changes during development; late testing may result in higher costs for fixing defects.
2. V-Model (Verification and Validation Model)
Description: The V-Model is an extension of the Waterfall model where each development phase is directly associated with a
testing phase. This emphasizes verification and validation at every stage.
Phases: The process follows a V shape, with the left side representing development phases (requirement analysis, design, coding)
and the right side representing corresponding testing phases (unit testing, integration testing, system testing).
Advantages: Early detection of defects ensures that each phase has corresponding testing.
Disadvantages: Rigid and inflexible; changes in requirements can be difficult to accommodate once development starts.
3. Spiral Model
Description: The Spiral model combines elements of both iterative development and the Waterfall model. It focuses on risk
assessment and iterative development, making it suitable for large, complex, and high-risk projects.
Phases: The model follows a spiral of four major phases: Planning, Risk Analysis, Engineering, and Evaluation. Each phase
iterates multiple times.
Advantages: Focuses on risk management, allows for frequent reassessment, and is flexible to changes.
Disadvantages: Expensive and complex; can lead to scope creep if not managed carefully.
4. Prototyping Model
Description: The Prototyping model involves building a prototype (an early approximation of a system or component) that is
refined based on user feedback.
Phases: Requirements gathering, building a prototype, user feedback, refining the prototype, and finally delivering the system.
Advantages: Provides early visualization of the system, helps in gathering user requirements, and allows quick changes based on
feedback.
Disadvantages: Prototypes may not always reflect the final system architecture, leading to issues in scalability and maintainability.
5. RAD (Rapid Application Development) Model
Description: RAD is an agile software development process that emphasizes quick development and iteration through user
feedback. It focuses on rapid prototyping and user involvement.
Phases: Requirements planning, user design, construction, and cutover. It often uses tools and techniques like component-based
development and time-boxing.
Advantages: Faster development cycles, user involvement ensures better user satisfaction.
Disadvantages: Requires skilled developers; can lead to scope creep due to rapid changes.
6. Iterative Model
Description: The Iterative model is a process where software is developed in small, manageable segments or iterations, with each
iteration improving on the previous one.
Phases: Planning, design, development, and testing occur in cycles, with each cycle refining the product until the final version is
achieved.
Advantages: Allows for flexibility and continuous improvement, accommodating changes during development.
Disadvantages: Can lead to scope creep if not managed properly; may lack clear documentation of each iteration.
Conclusion:
Each development process model has its own strengths and weaknesses, and choosing the right one depends on the project's size,
complexity, timeline, and flexibility required. Models like Waterfall and V-Model are best for projects with well-defined
requirements, while models like Agile and Spiral are suited for projects that require frequent changes and iterations.
Purpose: Define the project at a high level and determine its feasibility.
Key Activities: Creating a project charter, identifying stakeholders, and conducting a feasibility study.
Outcome: Approval to proceed with the project.
2) Planning:
Purpose: Implement the project plan and create the project deliverables.
Key Activities: Coordinating team members, managing resources, and ensuring tasks are completed as per the plan.
Outcome: Progress toward the project's completion.
4) Monitoring and Controlling:
Ensures Consistency: Provides a structured framework for testing that ensures all necessary activities are performed.
Improves Quality: Helps in identifying defects early in the development process, improving the quality of the software.
Provides Traceability: Links testing activities with project requirements, ensuring that all aspects of the software are
tested and validated.
Enhances Communication: Improves collaboration among stakeholders, including testers, developers, and managers, by
defining clear deliverables at each stage.
Verification Validation
1. Verification is the process of evaluating a system or 1. Validation is the process of evaluating a system or
component to determine whether it meets the component during or at the end of the development process to
specified requirements and design specifications. It is ensure it meets the intended use and user needs. It is about
about ensuring that "you built the system right." ensuring that "you built the right system."
2. Verification aims to check that the product is being 2. Validation ensures that the final product fulfills its intended
developed correctly according to the design and purpose and functions as expected in real-world conditions.
requirements.
3. Verification involves activities such as inspections, 3. Validation involves activities such as functional testing,
reviews, walkthroughs, and desk-checking. These are integration testing, system testing, and user acceptance
often done through static testing (without executing testing. These are typically dynamic testing methods (with
the code). code execution).
4. Verification is performed during the development 4. Validation is performed after the verification process and
phase to check interim work products to ensure that typically towards the end of the development cycle or after the
they meet specified requirements. product is complete.
5. Verification helps identify errors early in the 5. Validation confirms that the product works as intended for
development phase, reducing the cost of fixing the end-user, ensuring that the final output meets the user’s
issues. needs and expectations.
6. Example- Reviewing design documents to ensure 6. Example- Conducting user acceptance testing to check if
that all requirements are included and correctly the final software provides the desired outcomes for the user.
defined.
2. QA aims to improve and ensure the quality of processes 2. QC aims to identify and fix defects in the final product. It is
used to create a product. It is proactive and focuses on reactive and focuses on detecting defects after the product has
preventing defects before they occur. been developed.
3. QA activities include process audits, process checklists, 3. QC activities include product inspections, testing, and
training, documentation reviews, and the implementation of reviews to verify that the product meets specifications.
quality management systems.
4. QA is the responsibility of everyone involved in the 4. QC is typically the responsibility of a designated team that
development process, as it involves designing and performs tests and inspections on the product to identify any
implementing processes that ensure quality. defects.
7. Example- Establishing a set of standards and procedures for 7. Example- Conducting tests on the final software to ensure it
software development to ensure that each stage meets quality performs as expected and is free of bugs.
benchmarks.
Success or failure is measured by whether the system Success or failure is based on whether the system meets
functions as expected for each feature (e.g., does the login criteria such as response time, security standards, or system
work correctly, is data saved properly). usability.
Tools: Selenium, JUnit, TestNG, QTP. Tools: LoadRunner, JMeter, AppDynamics, Postman.
Easier to Manage: Smaller components are easier to test and troubleshoot, reducing complexity.
Early Detection of Issues: Problems can be detected early in the process, before they escalate when larger components
are integrated.
Faster Feedback: Since each part is tested in isolation, feedback on the system’s behaviour is provided more quickly.
Disadvantages:
Initial Setup: Requires careful planning and designing to decompose the system properly.
Can Be Time-Consuming: Depending on the number of components, the process may take time as each part is integrated
and tested.
Q.5) Difference between call graph-based integration and path-based integration.
Ans:
In this approach, the integration testing is based on a call Path graph-based integration involves creating a path graph,
graph, which is a representation of how functions or methods which represents all possible execution paths through the
call each other within a software system. system based on control flow, such as decisions, loops, and
branches.
It focuses on function-level interactions and calls between It focuses on control flow between modules or components,
modules. analysing all possible execution paths through the system.
It tests the sequence of method/function calls between It tests the entire path a program might take during execution,
components or modules, ensuring that each module can covering conditions, loops, and branching logic between
correctly invoke other modules as expected. components.
The call graph is a directed graph where each node represents The path graph is a directed graph where each node represents
a function or method, and an edge represents a function call a point in the program (e.g., a decision or a branch), and edges
between them. represent the transitions between these points.
Example: Testing how a function in Module A calls a method Example: Testing different execution paths based on
in Module B and ensuring that the communication between conditional logic, like checking how a module handles both
them works as expected. true and false branches of an if statement.
Advantages: Advantages:
Helps identify potential issues in the interaction Provides more comprehensive test coverage by
between individual functions or methods. considering all possible execution paths.
Focuses on ensuring correct function/method calls Can detect complex issues involving control flow,
across modules. such as incorrect branching or loop handling.
Disadvantages: Disadvantages:
May miss errors related to more complex paths that The number of paths to test can grow exponentially
involve conditional statements or loops. in complex systems, leading to higher testing effort
and time.
Purpose: Supports the development process by verifying that individual units or components of the software function as
expected.
Examples: Unit tests, component tests.
Focus: Technology-facing and supports the development team.
Automation: Often automated for continuous feedback during development.
Quadrant 2 (Q2) – Functional Tests & Story Tests
Purpose: Validates that the system works as intended and meets user requirements.
Examples: Functional tests, story tests, user acceptance testing (UAT).
Focus: Business-facing and helps ensure that the software aligns with user needs.
Automation: Can be automated, but manual testing and exploratory testing also play roles.
Quadrant 3 (Q3) – Exploratory Testing & Usability Testing
Purpose: Focuses on testing the system from the user's perspective and ensuring it is user-friendly and meets usability
standards.
Examples: Exploratory testing, usability testing, alpha/beta testing, user feedback sessions.
Focus: Business-facing and evaluates the product’s usability and experience.
Automation: Typically, not automated, as it requires human insight and analysis.
Quadrant 4 (Q4) – Performance & Security Testing
Purpose: Validates non-functional aspects of the software, such as performance, load handling, security, and scalability.
Examples: Performance testing, load testing, security testing, stress testing.
Focus: Technology-facing and ensures that the system meets technical requirements and is robust under various
conditions.
Automation: Often automated to test performance at scale and simulate real-world conditions.
Identifies quality attributes such as functionality, reliability, performance efficiency, usability, security, compatibility, and
maintainability.
Guides testers in understanding and focusing on specific quality aspects that are relevant to the software being tested.
Use: Helps prioritize testing based on the most critical quality attributes of a software product.
3. IEEE 829 (Test Documentation Standard)
Overview: This standard, also known as the Standard for Software and System Test Documentation, provides a set of templates
and guidelines for test documentation.
Key Points:
Specifies documents such as test plans, test design specifications, test case specifications, and test incident reports.
Ensures that all aspects of testing are well-documented, aiding in communication and traceability.
Use: Commonly used by testing teams to standardize documentation and reporting in test projects.
4. ISO/IEC/IEEE 12207 (Software Life Cycle Processes)
Overview: Although primarily a software life cycle process standard, it includes processes related to software testing within the
development and maintenance stages.
Key Points:
Defines testing levels (unit, integration, system, acceptance) and testing techniques (black-box, white-box, etc.).
Provides common terminology and concepts for software testing professionals.
Use: Widely used for training and standardizing knowledge among software testing teams.
7. CMMI (Capability Maturity Model Integration)
Overview: A process improvement framework that helps organizations develop mature and efficient software development and
testing processes.
Key Points:
Defines maturity levels for processes and emphasizes continuous process improvement.
Assists organizations in assessing and improving their software testing practices to achieve higher quality outputs.
Use: Provides a structured approach for developing and refining testing processes.
5. Telecommunications:
ETSI and ITU-T provide guidelines for network and interoperability testing.
6. Energy:
IEC 60880 for nuclear power plant safety software.
NERC CIP secures critical power infrastructure.
7. Retail:
ISO/IEC 27001 ensures data security in e-commerce.
ISO 8583 for reliable financial transaction messaging.