Unit 3
Q1)
a) What do you think about static techniques? [6]
answer :
1. Meaning of Static Techniques
Static techniques are testing activities where we examine documents, code, and design without running the
program. They focus on preventing defects rather than finding them later.
2. Purpose of Static Techniques
The main aim is to identify mistakes early in requirements, design documents, test cases, or source code. This
reduces the cost and time of fixing defects.
3. Where Static Techniques are Used
They are used during initial phases such as requirement analysis, design, and coding. Developers, testers, and
stakeholders participate in reviewing documents.
4. Types of Static Techniques
Static techniques include the following review methods:
Informal Review – Simple discussion to find basic errors.
Walkthrough – Author explains the document to reviewers.
Technical Review – Technical experts analyze the document for correctness.
Inspection – Formal and detailed checking done using rules and checklists.
5. Benefits of Static Techniques
Helps in detecting defects early, reducing development cost.
Improves quality of requirements, design, and code.
Saves time by preventing major errors in later stages.
Enhances communication among team members.
6. Examples of Defects Found by Static Techniques
Missing requirements
Wrong logic in design
Incorrect variable names in code
Poor coding standards
Incomplete test cases
b) State in your own words Error guessing and exploratory testing. [6]
Answer :
1] Error Guessing -
1. Meaning : Error guessing is a testing technique where the tester uses experience and intuition to guess the areas
where defects are likely to occur.
2. How it works : Testers think about the common mistakes developers usually make and create test cases based on
those guesses.
3. Based on experience : It depends heavily on the tester’s past experience, knowledge of similar applications, and
understanding of problem areas.
4. When it is useful : It is very effective when requirements are unclear or when the system is complex.
5. Examples
o Guessing that users may enter blank values
o Guessing that division by zero may cause issues
o Guessing login failures due to wrong passwords
6. Advantages
o Finds defects that other techniques may miss
o Very fast and practical
2] Exploratory Testing -
1. Meaning : Exploratory testing is a technique where the tester learns the application by exploring it and designs
and executes tests at the same time.
2. No predefined test cases : Testers do not follow written test cases. They test freely and discover the system on
their own.
3. Tester controls the flow : The tester decides what to test next based on the behavior of the application.
4. Useful in early builds : It is very helpful when documentation is missing or the product is new and unstable.
5. Encourages creativity : Testers use their creativity, curiosity, and domain knowledge to find unexpected defects.
6. Advantages
o Helps find hidden and unusual bugs
o Saves time because planning is minimal
o Very effective in Agile development
c) How would you explain System Testing and Acceptance Testing? [6]
Answer :
1] System Testing
1. Meaning : System Testing is a testing level where the entire system is tested end-to-end to ensure all
components work together correctly.
2. Purpose : It checks the overall functionality, performance, security, and behavior of the complete software
system.
3. Who performs it? : It is usually performed by testers (QA team), not by developers.
4. What is tested?
o All modules integrated together
o Input and output behavior
o System performance
o User interface
o Database
o Security
o Error handling
5. Example : Suppose you developed an online shopping website.
In system testing, the tester checks:
o Login → Product Search → Add to Cart → Payment → Logout (complete flow)
o Whether product details display correctly
o Whether payment is processed safely
o Whether order is stored in the database
o Whether site works well under load
This ensures the whole system works as a single unit.
2] Acceptance Testing
1. Meaning : Acceptance Testing is the final testing where the customer or end user checks the software to decide
whether it is acceptable and ready for release.
2. Purpose : To confirm that the software meets business requirements and is ready for real use.
3. Who performs it? : Usually performed by the client/ customer, sometimes with support from the QA team.
(Also known as User Acceptance Testing – UAT)
4. What is tested?
o Business rules
o Real user scenarios
o Usability
o Whether the software solves the customer’s problem
o Whether it meets the contract/requirements
5. Example : For the same online shopping website:
o The customer checks if product categories match business needs
o They verify whether payment methods (UPI, card, COD) work as required
o They test whether order reports generated are correct
o They check if refund and return process works properly
If the customer is satisfied, they accept the system for deployment.
Q2)
a) Can you explain path coverage testing & conditional coverage testing. [6]
Answer :
1] Path Coverage Testing
1. Meaning : Path Coverage Testing is a white-box testing technique where the tester checks all possible paths
through the program logic at least once.
2. What is a path: A path is the complete sequence of decisions and statements executed from the start of the
program to the end.
3. Purpose : To ensure that every possible flow in the code is tested so that hidden bugs in different routes can be
found.
4. When it is used? : Used in programs with multiple decisions/loops where many alternate routes exist.
5. Example
if (age > 18)
print("Adult");
else
print("Minor");
Possible paths:
o Path 1: age > 18 → “Adult”
o Path 2: age ≤ 18 → “Minor”
Path coverage ensures both paths are tested.
6. Advantage : Very thorough because it checks every possible route in the program.
2] Conditional Coverage Testing (Decision Coverage)
1. Meaning : Conditional Coverage Testing checks whether each condition in a decision statement has been
evaluated to TRUE and FALSE at least once.
2. What is a condition? : A condition is a logical expression, such as:
age > 18
score == 100
(x > 5 && y < 10)
3. Purpose : To ensure that every logical condition works correctly in both outcomes (True/False).
4. Example :
if (age > 18 && marks > 50)
print("Eligible");
Conditions are:
o C1: age > 18
o C2: marks > 50
To satisfy conditional coverage:
o Both C1 and C2 = TRUE
o C1 TRUE, C2 FALSE
o C1 FALSE, C2 TRUE
o Both FALSE
5. Difference from Statement/Branch Coverage
o Statement coverage checks only if statements are executed.
o Branch coverage checks both IF and ELSE.
o Conditional coverage checks each condition inside the IF.
6. Advantage : Finds errors in complex conditions and boolean expressions.
b) Identify the importance of Regression Testing & explain it.[6]
Answer :
Regression Testing is a testing process done to ensure that new changes in the software (like bug fixes, new
features, or updates) do not break the existing functionality.
It checks that the old features are still working correctly after any modification.
Importance of Regression Testing
1. Ensures Existing Features Still Work : When developers add a new feature or fix a bug, it may accidentally
affect old functionality. Regression testing confirms everything still works as before.
2. Prevents Introduction of New Bugs : Even a small code change can create unexpected issues. Regression testing
helps catch these new bugs early.
3. Improves Software Stability : It ensures the software remains stable after every update or enhancement.
4. Builds Confidence Before Release : Regression testing gives confidence to the development and testing teams
that the product is safe to release to users.
5. Helps in Continuous Development (Agile) : Agile projects involve frequent updates. Regression testing ensures
each new version works without breaking previous work.
6. Supports Quality Assurance : It helps maintain high product quality by repeatedly verifying important
functionality.
Example : Suppose you have an online shopping website and developers add a new feature:
“Apply Coupon Code” during checkout.
After adding this feature, regression testing is done to ensure:
Add to cart still works
Payment still works
Total amount calculation is correct
Login and logout still work
Previous orders page still works
This confirms that adding the new coupon feature did not break the existing system.
c) Explain in detail performance testing with example.[6]
Answer :
Performance Testing (Detailed Explanation)
1. Meaning : Performance Testing is a non-functional testing type used to check how fast, stable, and responsive a
software application behaves under different workloads.
2. Purpose : The main goal is to see whether the system:
o Works smoothly under normal conditions
o Handles heavy load without slowing down
o Responds within the acceptable time limit
o Remains stable for a long period
3. What Does Performance Testing Measure?
o Response Time → How fast the system reacts (e.g., login should open in 1 sec)
o Throughput → How many requests the system can process in 1 second
o Load Handling → How many users can use the system at the same time
o Memory Usage → How much RAM the system consumes
o CPU Utilization → How much processor power it uses
o Network Usage → How much bandwidth it consumes
4. Why Performance Testing is Important?
o Ensures application is fast and doesn’t lag
o Prevents crashes during heavy user load
o Improves user satisfaction
o Helps identify performance bottlenecks
o Ensures the app performs well before launch
o Very important for websites, banking apps, e-commerce, etc.
5. Types of Performance Testing
o Load Testing: Testing the system under expected number of users
o Stress Testing: Testing with extremely high users to see when it breaks
o Spike Testing: Sudden increase or decrease of users
o Endurance/Soak Testing: Running the system for a long time
o Scalability Testing: Checking if system can scale (add servers) easily
Example : Scenario - Online Ticket Booking Website
A tester wants to check how the system performs when many users try to book tickets at the same time.
Performance Testing Steps:
1. Normal Load Test
o 1,000 users try to log in at the same time
Expected Result:
Login page should open within 2 seconds
No errors or delays
2. Stress Test
o 10,000 users try to book tickets
Expected Result:
System should not crash
It may slow down, but should recover
3. Spike Test
o Suddenly 8,000 users join within 5 seconds (festival time booking)
Expected Result:
System should handle the sudden traffic increase
No system crash
4. Endurance Test
o Keep the website running for 10 hours with continuous traffic
Expected Result:
Memory should not leak
System should perform smoothly for long hours
5. Scalability Test
o Add more servers and test if performance improves
Expected Result:
More users should be supported
Speed should remain constant
Q1)
Identify how the different Static Test Case Design Techniques are useful for Software Testing?
Answer :
Static Test Case Design Techniques help in finding defects without executing the software. These techniques
focus on reviewing documents, code, and test cases early in the development cycle. They help improve software quality
before dynamic testing begins.
1. Informal Reviews (Usefulness)
1. These are simple and quick reviews done by team members.
2. They help identify spelling mistakes, missing requirements, unclear sentences in documents.
3. Useful in early stages because they save time and cost by catching basic errors early.
4. Increases the overall clarity and completeness of requirements and design documents.
2. Walkthroughs (Usefulness)
1. In a walkthrough, the author explains the document to reviewers.
2. Useful because reviewers understand the logic directly from the creator.
3. Helps in finding logic mistakes, missing steps, incorrect assumptions.
4. Encourages communication between the development and testing teams.
3. Technical Reviews (Usefulness)
1. Performed by technical experts to check design quality, code logic, and technical standards.
2. Useful for identifying logical errors, security issues, coding standard violations, etc.
3. Ensures the design and code follow the required technical rules and best practices.
4. Helps improve system performance and maintainability even before execution.
4. Inspections (Usefulness)
1. This is the most formal and systematic static technique.
2. Inspectors use checklists to find defects in documents, code, test cases, and designs.
3. Very useful for detecting deep structural errors, such as wrong algorithms or incorrect logic.
4. Helps improve overall product quality because it finds defects early and thoroughly.
How Static Techniques Help Software Testing (Overall Importance)
1. Find defects early – before coding or execution begins, reducing cost and time.
2. Improve documentation quality – requirements and design become clearer and complete.
3. Prevent defects – instead of detecting them later, static techniques avoid defects from entering the code.
4. Better communication – reviews encourage teamwork between testers, developers, and analysts.
5. Increase test effectiveness – test cases become more accurate and well-designed.
6. Reduce rework – fewer changes are required later because problems are caught early.
b) Interpret the different Dynamic Test Design Techniques. [6]
Answer :
1. Definition : Dynamic testing is testing by executing the software to observe its actual behaviour with inputs and
outputs. It verifies runtime behaviour (functionality, performance, security) rather than just reviewing code or documents.
2. Objectives
Find defects in working code.
Verify system behaviour meets requirements.
Measure performance (response time, throughput, resource use).
Check reliability/scalability/security under real conditions.
Validate accuracy of data processing.
3. Levels of Dynamic Testing
1. Unit Testing — test individual modules.
2. Integration Testing — test interaction between modules.
3. System Testing — test the complete system end-to-end.
4. Acceptance Testing (UAT) — customer/end-user verifies business needs.
5. Specialised dynamic tests: Performance, Stress, Load, Security, Compatibility, etc.
4. Typical Process Phases
Test Case Design — define inputs, steps, expected results.
Test Environment Setup — prepare hardware, software, network like production.
Test Execution — run test cases, record actual results and logs.
Test Analysis & Reporting — compare actual vs expected, log defects, retest fixes.
5. Advantages
Finds real runtime defects (including integration & environment issues).
Validates performance and behaviour under load.
Tests actual user scenarios (real data, real flows).
Enables automated regression suites for repeated checks.
6. Disadvantages
Time and resource consuming (requires environment and test data).
Hard to cover every possible scenario (incomplete coverage).
Root-cause may need deeper (static) analysis to locate.
Can be more costly than static review if not automated.
c) What do you think about static techniques.[6] refer Q1) a
Q2)
a) Can you illustrate Adhoc Testing with example. [6]
Answer :
Adhoc Testing :
1. Meaning : Adhoc testing is unplanned, informal testing done without test cases. The tester checks the
application randomly based on intuition and experience.
2. Purpose : To quickly find defects that are not covered in normal test [Link] explore unexpected behaviour in
the system.
3. When it is done -
1. After formal testing is completed.
2. When there is less time.
3. When testers want to explore additional defects.
4. Who performs it : Usually experienced testers because they know where bugs commonly hide.
Example : You are testing a Login Page.
Formal test cases check:
Correct username & password
Wrong password
Empty fields
During Adhoc testing, the tester may try:
Typing very long usernames
Entering special characters
Pressing Login button multiple times
Opening login page in multiple tabs
Refreshing page after entering credentials
b) How would you explain unit Testing and Integration Testing? [6]
Answer :
1] Unit Testing
1. Meaning : Unit Testing checks individual modules or components of a software (like functions, methods,
classes).
2. Purpose :
To find bugs at an early stage.
To ensure each unit works correctly in isolation.
3. Who performs it : Mostly done by developers.
4. When it is done : Performed at the initial stage of testing.
5. Example :
1. Testing a function that calculates the total bill.
2. Testing a login validation function separately.
2] Integration Testing
1. Meaning : Integration Testing checks how two or more modules work together after combining them.
2. Purpose :
To find interface defects.
To ensure data flows correctly between modules.
3. Who performs it : Testers or developers.
4. When it is done : After all individual units are tested.
5. Example
1. Testing Login Module + Dashboard Module together.
2. Testing Payment Module + Order Module to see if payment updates the order status.
c) State in your own words why Regression Testing in important?[6]
Answer :
1. Ensures New Changes Do Not Break Existing Features
After adding new features or fixing bugs, regression testing checks that old working features still work
properly.
2. Detects Side Effects of Code Changes
Even a small change in one module may affect another module. Regression testing helps catch these unexpected
side effects early.
3. Maintains Software Quality Over Time
Every update may introduce hidden defects. Regression testing ensures the software remains stable, reliable, and
bug-free after every release.
4. Prevents Re-occurrence of Old Defects
Sometimes old bugs come back due to new changes. Regression testing helps ensure these previously fixed bugs
do not reappear.
5. Supports Continuous Development (Agile)
In fast development environments like Agile, code changes happen frequently. Regression testing helps maintain
consistent performance after every sprint.
6. Builds Confidence Before Release
By verifying all major functions after modifications, regression testing gives teams confidence that the software
is safe to release.
Q1)
a) Identify the importance of Regression testing & explain it.
Answer : refer previous Question
b) Explain any two non functional testing.
Answer :
1) Performance Testing
Meaning: Performance testing checks how well a software application works when many users, large data, or heavy load
is applied. It focuses on speed, stability, and responsiveness of the system.
Important Points:
1. It measures response time, i.e., how fast the system reacts to a user request.
2. It checks system stability under normal load and heavy load.
3. It helps to identify issues like slow pages, server crashes, memory leaks, and network delays.
4. It ensures that the application can scale when the number of users increases.
5. It verifies that performance meets the business requirements (Example: page should load in 3 seconds).
6. It improves user experience, because slow applications frustrate users.
Example: Testing how an online shopping website behaves when 2000 users try to place orders at the same time.
If the website becomes slow or crashes, performance issues must be fixed.
2) Security Testing
Meaning: Security testing checks whether the software is safe from attacks, protects user data, and allows only
authorized users to access the system.
Important Points:
1. It ensures data confidentiality, meaning sensitive data like passwords and bank details are protected.
2. It ensures authentication, so only valid users can log in.
3. It checks authorization, meaning users can access only the features they are allowed to.
4. It identifies vulnerabilities like SQL injection, XSS, weak passwords, broken access control, etc.
5. It ensures protection against hackers, malware, and data theft.
6. It helps in maintaining user trust and meets security standards of the organization.
Example: Testing a banking website to see whether an attacker can break into the account using
multiple wrong passwords. The system should block access after certain failed attempts.
c) Can you explain statement coverage & Branch coverage testing?
Answer :
1) Statement Coverage Testing
Meaning: Statement coverage checks whether every executable statement in the program has been executed at least
once during testing.
Purpose:
To ensure no part of the code is left untested.
To find missing statements, dead code, or skipped logic.
How It Works:
You create test cases that will make the program run through all statements.
If a statement never executes, coverage is incomplete.
Formula: Statement Coverage = (Number of statements executed ÷ Total statements) × 100
Example:
if (x > 10)
print("High");
print("Done");
To cover all statements:
One test case with x = 12 (covers both print statements).
This achieves 100% statement coverage.
2) Branch Coverage Testing
Meaning: Branch coverage ensures that every possible branch/decision (true and false paths) in the code is executed at
least once.
A branch means:
if → true and false
switch → all cases
loops → entered and skipped
Purpose:
To test all decision outcomes.
To find hidden errors in unused branches.
Formula: Branch Coverage = (Number of branches executed ÷ Total branches) × 100
Example:
if (x > 10)
print("High");
else
print("Low");
print("Done");
Branches:
True branch → x > 10
False branch → x ≤ 10
To achieve 100% branch coverage:
Test case 1: x = 12 → covers True branch
Test case 2: x = 5 → covers False branch
Q2)
a) Explain any two functional testing. [6]
Answer : refer Q1) b
b) Explain in detail performance testing with example. [6]
Answer : refer previous
c) What do you think about dynamic techniques?[6]
Answer : refer previous
Unit 4
Q3)
a) Differentiate between Quality Assurance and Quality Control. [6]
Answer :
Quality Control (QC)
No. Quality Assurance (QA)
1 Focuses on processes Focuses on product
2 Preventive in nature Detective in nature
3 Ensures the right way of development Ensures the product meets requirements
4 Process-oriented activities Product-oriented activities
5 Conducted during development Conducted after development
6 Includes standards, guidelines, audits Includes testing, inspections, reviews
7 Helps in reducing defects Helps in finding and fixing defects
8 Example: ISO standards, process audits Example: Functional testing, regression testing
9 Managed by QA team / process owners Managed by testing team
10 Focus is on improving development process Focus is on improving final product quality
11 Long-term quality improvement Short-term defect detection
12 Prevents defects before they occur Detects defects after they occur
b) Can you Clarify Quality Management system. [6]
Answer :
Definition: A Quality Management System (QMS) is a structured framework of policies, processes,
procedures, and responsibilities that an organization implements to ensure that its products or services meet
consistent quality standards and satisfy customer requirements. It helps organizations plan, control, and
improve quality systematically.
Key Objectives of QMS
1. Customer Satisfaction: Ensure products/services meet or exceed customer expectations.
2. Consistency: Standardize processes to achieve consistent output.
3. Continuous Improvement: Identify defects or inefficiencies and improve processes over time.
4. Compliance: Meet legal, regulatory, and industry standards.
5. Risk Management: Reduce errors, defects, and failures in products/services.
Main Components of a QMS
1. Quality Policy: Organization’s commitment to quality and objectives.
2. Processes and Procedures: Clearly defined steps to carry out tasks efficiently.
3. Roles and Responsibilities: Assign accountability for quality activities.
4. Documentation: Maintain records of processes, audits, and improvements.
5. Audits and Reviews: Periodic assessment to ensure the QMS is effective.
6. Continuous Improvement: Tools like PDCA (Plan-Do-Check-Act) for improving quality.
Benefits of QMS
Improves product/service quality and reliability.
Reduces errors, waste, and operational costs.
Enhances customer satisfaction and loyalty.
Supports compliance with standards like ISO 9001.
Facilitates continuous improvement and better decision-making.
Example:
A software company implementing QMS will define coding standards, testing procedures, review processes,
and defect management policies to ensure software is delivered with high quality consistently.
c) Why software has Defects? Explain in detail. [5]
Answer :
Software defects (also called bugs or errors) are flaws, faults, or mistakes in a software product that cause it to
produce incorrect or unexpected results or behave differently from the expected behavior.
Even after careful development, software often contains defects due to various reasons explained below.
1. Human Errors
Software is created by humans, and humans make mistakes.
Errors can occur in requirement gathering, design, coding, or testing.
Example: Misunderstanding user requirements or writing incorrect code logic.
2. Ambiguous or Incomplete Requirements
Defects often originate from unclear, incomplete, or conflicting requirements.
If requirements are not well-defined, developers may implement features incorrectly.
Example: “The system should process payments quickly” – what is “quickly”? Seconds or minutes?
3. Complexity of Software
Modern software is very complex, with multiple modules, integrations, and dependencies.
Complex code increases the likelihood of errors because developers may overlook certain cases.
Example: Multi-threaded programs may have synchronization issues causing unexpected behavior.
4. Communication Gaps
Miscommunication between stakeholders, analysts, and developers can introduce defects.
Lack of clarity in understanding business needs can result in incorrect implementation.
5. Inadequate Testing
Some defects remain because not all scenarios are tested.
Time constraints, incomplete test coverage, or human oversight during testing can leave bugs
undetected.
6. Changing Requirements
During software development, requirements may change (scope creep).
If the software is not updated properly to handle new requirements, defects can occur.
7. Tool or Environment Issues
Defects can also arise due to problems in the development tools, compilers, libraries, or operating
system environment.
Example: Different OS or browser behavior causing software to malfunction.
8. Lack of Standards or Best Practices
Ignoring coding standards, design principles, and proper documentation can introduce defects.
Poorly organized code is harder to maintain and more prone to errors.
Q4)
a) Explain why ISO-9001 standard and it’s important in software testing? [6]
Answer :
ISO-9001 Standard – Explanation
1. Meaning of ISO-9001
ISO-9001 is an international quality management standard that provides guidelines to ensure that an
organization delivers consistent, high-quality products and services.
2. What it focuses on
Customer satisfaction
Well-defined processes
Continuous improvement
Clear documentation
Quality control and quality assurance
Why ISO-9001 is Important in Software Testing?
1. Ensures Standardized Testing Process
ISO-9001 requires companies to follow documented procedures, which makes software testing more consistent
and organized.
2. Improves Test Quality
Because processes are defined and controlled, the quality of test cases, test data, and test execution improves.
3. Reduces Defects
By following a structured quality process, the number of software defects reduces, leading to stable releases.
4. Increases Customer Confidence
Clients trust companies with ISO-9001 certification because it means high-quality work and a reliable testing
process.
5. Helps in Continuous Improvement
ISO-9001 encourages organizations to review, measure, and improve their testing activities regularly.
6. Better Documentation & Traceability
The standard requires maintaining documents like:
Test plans
Test cases
Test results
Defect reports
This helps in audit, tracking, and future maintenance.
7. Enhances Team Efficiency
Because processes are clearly defined, testers have clear roles, responsibilities, and workflows, reducing
confusion.
8. Useful for Audits and Compliance
ISO-9001 ensures that testing complies with international practices and can easily pass customer or government
audits.
b) Illustrate selenium’s IDE and explain in detail. [6]
Answer :
Definition: Selenium IDE (Integrated Development Environment) is a record-and-playback tool used for
automated testing of web applications.
It allows testers to record their actions on a browser and replay them as test scripts without writing code.
Selenium IDE is browser-based (mostly used as a Firefox or Chrome extension) and is ideal for quick
prototyping of tests.
Features of Selenium IDE
1. Record and Playback:
o Automatically records user actions (clicks, typing, navigation) on a web page.
o Converts actions into reusable test scripts that can be executed later.
2. Support for Multiple Commands:
o Supports commands like click, type, select, verifyText, assert, etc.
3. Easy to Use:
o No programming knowledge is required for beginners.
o Provides GUI for recording, editing, and executing tests.
4. Export Test Scripts:
o Recorded scripts can be exported in programming languages like Java, C#, Python, etc., for
integration with Selenium WebDriver.
5. Debugging and Control Flow:
o Allows adding breakpoints, stepping through test commands, and controlling execution flow.
6. Assertions and Verification:
o Supports assertions to validate expected results during testing.
Advantages of Selenium IDE
Easy to learn and use for beginners.
Helps create quick test scripts.
Useful for regression testing of small web applications.
Exports scripts for more advanced automation using Selenium WebDriver.
Limitations of Selenium IDE
Only works for simple test cases; not suitable for complex scenarios.
Limited support for conditional statements and loops.
Cannot interact with desktop applications.
Requires browser extension; cannot test non-browser environments.
c) Can you clarify different levels of CMM.[5]
Answer :
CMM defines 5 maturity levels that show how well an organization manages and improves its software development
process.
Level 1: Initial
Processes are unpredictable, unorganized, and inconsistent.
No proper planning or documentation.
Success depends on individual skills, not process.
High chance of delays and failures.
Example:
Team writes code directly without planning or review.
Level 2: Repeatable
Basic processes are defined and followed.
Project planning and tracking begin.
Requirements, cost, and schedule management start.
Past successful practices can be repeated in new projects.
Key activities:
✔ Project planning
✔ Configuration management
✔ Quality assurance basics
Level 3: Defined
Organization-wide standard processes are created.
Documentation becomes mandatory.
Training programs and process guidelines exist.
Processes are proactive, not reactive.
Example:
Coding standards, testing templates, review checklists are formally defined for all projects.
Level 4: Managed
Processes are measured using metrics.
Performance is quantified (e.g., defect rate, productivity).
Statistical techniques used to control quality.
Predictable outcomes due to data-driven decisions.
Example:
Team tracks number of defects per module, average fixing time, etc.
Level 5: Optimizing
Focus on continuous improvement.
New tools, techniques, and innovations are introduced.
Root-cause analysis performed for every defect.
The organization keeps improving processes regularly.
Example:
Automation tools introduced to reduce testing time and defects.
Q3)
a) Illustrate different characteristics of software in detail. [6]
Software has several important characteristics that make it different from physical products. These characteristics help us
understand how software behaves, how it is developed, and how it is tested.
1) Intangibility (Not Physical)
Software cannot be touched or seen like hardware.
It exists only in the form of code, programs, and instructions.
Because it is invisible, defects are difficult to identify just by “looking” at it.
2) Software is Engineered, Not Manufactured
Hardware is manufactured repeatedly, but software is designed, coded, and tested.
Once developed, copying it is easy and inexpensive.
The main effort goes into development and maintenance, not production.
3) No Wear and Tear
Software does not degrade physically with time.
It does not rust, break, or wear out like hardware.
However, it may fail due to bugs or design issues, not because of aging.
4) Highly Customizable
Software can be easily modified to fit customer needs.
Updates, new features, improvements, and fixes can be added anytime.
This flexibility makes software unique compared to physical products.
5) Complexity
Even small software products can contain thousands of lines of code.
Many functions, conditions, inputs, and paths make software very complex.
More complexity increases the chances of defects.
6) Behavior Depends on External Input
Software output changes based on:
o Input values
o User actions
o Environment
o System settings
Testing must consider many inputs to ensure correct behavior.
7) Software is Easy to Replicate
Once developed, software can be copied, installed, or distributed easily.
There is no extra cost in making additional copies.
8) Software is Difficult to Visualize
Unlike hardware blueprints, software design (UML diagrams, flowcharts, data models) only shows logic.
Hard to understand the entire system from the outside.
9) Software Requires Continuous Maintenance
After release, software needs regular:
o Bug fixing
o Updates
o Security patches
o Feature enhancements
Maintenance cost is higher than initial development cost.
10) Conforms to Human Errors
Software errors occur due to human mistakes in design, coding, or requirements.
More human involvement → more chances of defects.
b) Identify different steps involved in Software Development Process. [6]
1) Requirement Analysis
First step of SDLC.
Understand what the customer wants.
Gather functional and non-functional requirements.
Analysts meet users, create requirement documents (SRS).
2) Feasibility Study
Check if the project is technically, financially, and legally possible.
Identify risks and resources needed.
Helps decide whether to proceed with the project or not.
3) System Design
Convert requirements into a technical blueprint.
Design architecture, modules, data flow, UI screens, database design.
Output: High-Level Design (HLD) and Low-Level Design (LLD).
4) Coding / Implementation
Developers write the actual code based on the design.
Modules are built, integrated, and implemented.
Programming languages, tools, and frameworks are used.
5) Testing
Testers verify the code to ensure the software works correctly.
Perform unit, integration, system, performance, and security testing.
Detect defects and ensure quality before release.
6) Deployment
Deliver the software to the customer.
Install it in the production environment.
Could be done in phases (pilot release, full release).
c) Can you clarify different levels of CMM [6]
Q4)
a) Why Software has Defects? Explain in details. [6]
Answer : refer previous
b) Can you distinguish between Q.A. and Q.C. [6]
Answer : refer previous
c) Explain in detail Pillars of Quality Management System[5]
Answer :
1. Customer Focus
Meaning: Deliver products/services that meet customer needs and increase customer satisfaction.
Why it matters: Customers are the final judge of quality; meeting their expectations keeps business and reputation.
Example: Collect customer feedback after delivery and update product features when many customers request the same
change.
2. Leadership & Commitment
Meaning: Top management must set the quality direction, provide resources, and create a quality culture.
Why it matters: Without leadership support processes fail to gain priority and staff won’t follow them consistently.
Example: Manager defines a clear quality policy and holds regular reviews to ensure targets are met.
3. Engagement of People (Competence & Awareness)
Meaning: Involve trained, motivated people at all levels who understand their role in quality.
Why it matters: Skilled and aware employees detect problems early and follow standards correctly.
Example: Provide training on coding standards and reward teams that reduce defect rates.
4. Process Approach
Meaning: Manage work as interrelated processes (inputs → activities → outputs) rather than isolated tasks.
Why it matters: Process thinking improves predictability, reduces waste, and shows where defects occur.
Example: Define the “requirements → design → code → test → release” process with owners and hand-off criteria.
5. Improvement (Continual Improvement / PDCA)
Meaning: Continuously seek and implement improvements (Plan → Do → Check → Act).
Why it matters: Markets and technologies change; continual improvement keeps quality and competitiveness high.
Example: After each release, run a retrospective, record action items, apply fixes, and measure results next cycle.
6. Evidence-based Decision Making (Measurement & Analysis)
Meaning: Use data and metrics to drive decisions (e.g., defect density, test coverage, cycle time).
Why it matters: Decisions based on facts are more likely to solve root problems and avoid guesswork.
Example: Use defect trends to decide where to increase unit testing or refactoring.
7. Relationship Management (Supplier & Stakeholder Management)
Meaning: Manage relationships with suppliers, partners, and stakeholders to ensure consistent quality across the supply
chain.
Why it matters: Poor supplier quality affects the final product; good relationships ensure timely, high-quality inputs.
Example: Audit a third-party API provider and include SLA clauses to guarantee uptime and response times.
Q3)
a) Differentiate between quality assurance & quality control.
b) Can you clarify different levels of CMM.
c) Illustrate selenium’s IDE and explain in detail.
Q4)
a) Why software has defects? explain in detail.
b) Explain in detail reliability of quality Process.
Answer :
Reliability of Quality Process (Detailed Explanation)
Meaning:
Reliability of a quality process means how consistently a software product performs its required functions under stated
conditions without failure for a specific period of time.
A reliable system works correctly every time and does not break unexpectedly.
Key Points to Explain Reliability
1. Consistency of Performance
A reliable system gives correct output every time when the same input is given.
No unexpected behavior should appear.
2. Fewer Failures
Reliability focuses on reducing defects, crashes, and breakdowns.
The lower the failure rate, the higher the reliability.
3. Dependability Under Different Conditions
Software must work correctly under:
different loads
different environments
different user actions
This ensures the system does not fail during real-world usage.
4. Predictability
A reliable system behaves in a predictable way.
Users know what the result will be because the system works the same every time.
5. Long-term Stability
Reliability ensures the system remains stable for a longer time without requiring restarts or fixes.
How Reliability is Achieved in the Quality Process
1. Proper Testing (Unit, Integration, System Testing)
Testing helps detect and fix defects early, improving reliability.
2. Error Prevention Processes
Coding standards, peer reviews, code inspections help prevent errors before testing.
3. Defect Tracking and Fixing
Using tools like JIRA to track and fix bugs increases long-term reliability.
4. Performance & Stress Testing
Ensures the system works even when many users use it at the same time.
5. Backup and Recovery Mechanisms
Reliable software should recover smoothly from failures like crashes or power loss.
6. Regular Maintenance and Updates
Fixing bugs and updating the system improves reliability over time.
Characteristics of Reliable Software
1. Fault tolerance – system continues working even if small failures occur.
2. Accuracy – gives correct output every time.
3. Availability – system is available for use when needed.
4. Stability – does not crash frequently.
5. Recoverability – can restart and recover data after a failure.
Example :
An online banking application must always show the correct account balance, process payments without errors,
and work 24×7 without crashing.
If it fails even once, user trust is lost.
This is why reliability is a key part of the quality process.
c) Explain Important Aspects of quality management.
Answer :
Important Aspects of Quality Management
Quality management ensures that products, services, or processes consistently meet customer expectations and
organizational standards. The important aspects of quality management are:
1. Customer Focus
The primary aim of quality management is to satisfy customers.
Organizations must understand customer needs, expectations, and feedback.
All processes, products, and improvements should be aligned to deliver value to customers.
2. Leadership
Strong leadership sets the vision, direction, and culture of quality.
Leaders create an environment where employees feel motivated, responsible, and committed to quality goals.
They influence policies, allocate resources, and ensure a quality-driven mindset.
3. Employee Involvement
Quality is not the job of one department; everyone contributes.
Employees must be trained, empowered, and encouraged to take responsibility for the quality of their output.
Effective teamwork improves decision-making and reduces errors.
4. Process Approach
A system functions better when activities are managed as interlinked processes, not isolated tasks.
Each process has inputs, activities, outputs, and resources.
Managing processes ensures efficiency, consistency, and clarity in operations.
5. Continuous Improvement
Quality is not a one-time activity; it is ongoing. Organizations should always look for ways to improve products,
workflows, methods, technologies, and performance. Techniques like PDCA (Plan-Do-Check-Act), Lean, and Six Sigma
help continuous improvement.
6. Fact-based Decision Making
Decisions should be based on data, statistics, and real evidence, not assumptions. This increases accuracy, reduces risks,
and improves understanding of problems. Tools include control charts, trend analysis, and performance reports.
7. Risk Management and Preventive Action
Quality management focuses on identifying risks, failures, and deviations early.
Preventive measures reduce defects, delays, rework, and customer dissatisfaction.
This approach ensures stable and predictable operations.
8. Relationship Management
Organizations depend on suppliers, partners, customers, and stakeholders.
Good relationships improve communication, trust, and cooperation.
Strong supplier quality management ensures better raw materials and services.
9. Standardization and Documentation
Written procedures, work instructions, policies, and standards help maintain consistency.
Documentation ensures everyone follows the same method and quality can be audited or improved when needed.
10. Performance Measurement
Quality must be tracked using metrics such as defect rate, customer satisfaction, cycle time, and process efficiency.
Regular measurement helps identify gaps and take corrective actions.
11. Compliance with Regulations and Standards
Organizations must follow legal requirements, safety rules, and industry standards such as ISO 9001, ISO 27001, etc.
Compliance ensures reliability, trust, and avoids penalties.
UNIT 5
Q5)
a) How would you explain selenium IDE explain in detail?
Answer :
b) Explain Robotic Process Automation in detail.
Answer :
Robotic Process Automation (RPA) is a technology where software robots (bots) are used to automate repetitive and rule-
based tasks done by humans.
Bots perform actions like clicking, typing, reading data, copying, pasting, sending emails, etc.
2) Why RPA is Used
Reduces manual work
Increases speed and accuracy
Saves cost
Useful for boring and repetitive tasks
3) Key Features
No coding required
Bots behave like real users
Works on web apps, Excel, emails, ERP systems
24×7 working capability
High accuracy and consistency
4) How RPA Works
1. Identify the task to automate
2. Create workflow using an RPA tool
3. Configure a bot
4. Run the bot
5. Monitor and improve the bot
5) Examples of RPA
Invoice processing
Bank account opening automation
HR tasks like generating offer letters
Form filling on websites
6) Benefits
Faster processing
Zero human errors
Cost reduction
Higher productivity
Better accuracy
Humans can focus on important work
7) Limitations
Works only for rule-based tasks
Cannot make human-like decisions
Needs updates if application UI changes
Setup cost can be high
8) Popular RPA Tools
UiPath
Automation Anywhere
Blue Prism
Pega
c) Construct different automated testing process.
Purpose: Automate repetitive tests to speed up feedback, increase coverage, and support continuous delivery.
1. Define Scope & Objectives
o Decide what to automate (unit, API, UI, regression).
o Set goals: reduce regression time, increase release confidence, etc.
2. Cost–Benefit & ROI Analysis
o Estimate effort to automate vs manual savings.
o Prioritize tests with high repeatability, stable UI, or high risk.
3. Select Tools & Framework
o Choose tools that fit technology (e.g., JUnit/TestNG for unit, Selenium/WebDriver for UI,
Postman/RestAssured for APIs, Cypress, Playwright).
o Decide language, reporting, and CI compatibility.
4. Test Strategy & Architecture
o Decide test pyramid (more unit/API tests, fewer UI tests).
o Create folder structure, page-object or modular design, utilities, data layers.
5. Environment & Test Data Setup
o Prepare test environments similar to production.
o Create/manage test data (fixtures, mocks, test DB).
o Use environment configs and secrets safely.
6. Write Automation Scripts
o Convert manual test cases to automated scripts.
o Use reusable functions, data-driven and keyword-driven approaches where needed.
o Keep tests independent and idempotent.
7. Integrate with CI/CD Pipeline
o Run suites on code commits, nightly builds, and pre-release.
o Use Jenkins/GitHub Actions/GitLab CI for scheduling and parallel runs.
8. Execution & Parallelization
o Execute suites in parallel to reduce time (use Grid/containers).
o Tag tests (smoke, regression, critical) and run subsets as needed.
9. Reporting & Logging
o Generate readable reports (HTML, JUnit XML).
o Capture screenshots, logs, and recordings for failed UI tests.
o Send alerts to teams on failures (email/Slack/JIRA).
10. Defect Triage & Feedback Loop
o Log defects with steps, attachments and test IDs.
o Team reviews failures, fixes applied, and tests re-run.
11. Maintenance & Flakiness Management
o Regularly review flaky tests, fix or quarantine them.
o Update tests when application changes; maintain refactoring discipline.
12. Monitoring, Metrics & Continuous Improvement
o Track metrics: pass rate, execution time, flaky rate, coverage, automation % of test suite.
o Use metrics to expand or prune automated tests and improve ROI.
13. Governance & Best Practices
o Enforce code reviews for test code, version control, branching strategy.
o Standardize naming, timeouts, waits, and retry logic.
o Secure credentials, and use containerization for reproducibility.
Q6)
a) Illustrate selenium tool suite in detail.
Answer :
Selenium is an open-source automation tool used for testing web applications.
It supports many browsers like Chrome, Firefox, Edge, and many languages like Java, Python, C#, Ruby, etc.
Selenium is not a single tool; it is a suite of four major tools.
1) Selenium IDE (Integrated Development Environment)
Record and Play tool for beginners.
Available as a browser extension (Chrome/Firefox).
Automatically records user actions and converts them into test scripts.
Useful for quick test creation and basic automation.
Supports simple debugging and exporting scripts to other languages.
2) Selenium RC (Remote Control) — (Older Tool)
First tool that allowed writing tests in multiple programming languages.
Needed a server called Selenium RC Server to run tests.
Slow execution, many limitations.
Now outdated because WebDriver is faster and better.
3) Selenium WebDriver (Most Important Tool)
Core component of Selenium suite.
Directly communicates with the browser without any server.
Fast, flexible, and supports many languages: Java, Python, C#, etc.
Allows testing of:
o Buttons, text fields, forms
o Alerts, dropdowns
o Keyboard & mouse actions
Supports cross-browser, cross-platform testing.
Suitable for complex and large automation frameworks.
4) Selenium Grid
Used for parallel execution of tests.
Allows running tests on multiple machines, multiple browsers, and multiple OS at the same time.
Reduces total test execution time.
Useful for large projects and CI/CD pipelines.
Advantages of Selenium Tool Suite
Open-source (free)
Supports multiple browsers
Supports multiple programming languages
Integrates with tools like TestNG, Maven, Jenkins
Works on Windows, Linux, macOS
b) Identify different benefits of Automation testing.
Answer :
1. Faster Test Execution
Automation runs tests much faster than humans, helping teams test large applications quickly.
2. Improved Test Coverage
Many test cases (functional, regression, data-driven, cross-browser) can be executed easily, increasing overall
coverage.
3. Reusability of Test Scripts
Once automation scripts are created, they can be reused across multiple builds and versions with very small
changes.
4. High Accuracy & Less Human Error
Automated tests follow the same steps perfectly every time, reducing mistakes that occur during manual testing.
5. Supports Continuous Testing (CI/CD)
Automation is essential for DevOps pipelines where tests must run automatically on every code push.
6. Better Regression Testing
Regression suites can be executed quickly and repeatedly, ensuring new changes do not break existing features.
7. Cost Saving in Long Run
Although initial setup cost is high, automation saves money over time by reducing manual efforts.
8. Parallel Execution
Multiple tests can run at the same time on different browsers, devices, or environments, saving time.
9. Improved Test Reporting
Automation tools provide detailed logs, screenshots, and reports for easy debugging.
10. Enhanced Productivity of Testers
Testers spend less time on repetitive tasks and more time on test design, analysis, and complex testing
c) How would you explain selenium Web Driver? Explain it.
Answer :
Selenium WebDriver –
1. Definition
Selenium WebDriver is a web automation tool used to automate actions in a web browser.
It allows testers to open a browser, click buttons, enter text, navigate pages, and test web applications automatically.
2. How WebDriver Works (Simple Explanation)
WebDriver directly communicates with the browser.
It uses the browser’s native automation support (like ChromeDriver, GeckoDriver).
It sends commands (open URL, click, type) and receives browser responses.
This makes automation fast, accurate, and realistic.
3. Features / Characteristics
a) Browser Independence
Works with many browsers like Chrome, Firefox, Edge, Safari.
b) Supports Multiple Programming Languages
Tests can be written in:
Java, Python, C#, JavaScript, Ruby, PHP.
c) Does Not Require Server
Unlike Selenium RC, WebDriver communicates directly with the browser without a separate server, making it
faster.
d) Supports Dynamic Web Elements
Can locate and interact with changing elements using locators like:
ID
Name
Class
XPath
CSS selector
Link text
e) Real Browser Interaction
WebDriver controls the browser like a real user (mouse clicks, keyboard input).
4. Common WebDriver Operations
1. Open Browser
2. Navigate to URL
3. Click Buttons / Links
4. Enter Text into Textboxes
5. Select Dropdown Values
6. Handle Alerts, Frames, Windows
7. Take Screenshots
8. Close Browser
5. Why WebDriver is Important
Helps in regression testing
Saves time for repetitive tasks
Supports cross-browser testing
Used widely in Agile + DevOps development
6. Simple Example (Java)
WebDriver driver = new ChromeDriver();
[Link]("[Link]
[Link]([Link]("q")).sendKeys("Selenium WebDriver");
[Link]([Link]("btnK")).click();
[Link]();
This script:
1. Opens Chrome
2. Goes to Google
3. Types search keyword
4. Clicks the search button
5. Closes browser
Q5)
a) How to choose an Automation tool? Explain in briefly. [6]
Choosing the right automation tool is important for successful test automation.
A good tool should match the project needs, budget, skills, and technology used.
1) Understand Application Type
Identify whether the application is web, mobile, desktop, API or hybrid.
Choose a tool that supports your technology stack (Java, .NET, Python, Angular, React, etc.).
2) Ease of Use
The tool should be easy to learn and have a simple interface.
Supports record & playback, good documentation, and clear workflow.
3) Language Support
Tool should support programming languages your team knows like Java, Python, C#, JavaScript.
4) Browser and Platform Support
Tool must support multiple browsers like Chrome, Firefox, Safari, Edge.
Should run on Windows, macOS, Linux.
5) Integration with Other Tools
Should integrate with CI/CD tools (Jenkins, GitHub).
Works with testing frameworks like TestNG, JUnit.
Supports reporting tools like Allure, Extent Reports.
6) Cost and Budget
Check whether the tool is free, open-source, or paid.
Choose as per project budget.
7) Maintenance and Updates
Tool should have regular updates, bug fixes, and strong community support.
Easy to maintain test scripts when application UI changes.
8) Execution Speed and Performance
Tool should execute scripts fast and handle large test suites.
Supports parallel execution to save time.
9) Reusability and Scalability
Scripts should be reusable for multiple modules.
Tool must scale as project size grows.
b) Illustrate selenium Tool suite in detail.[6]
Answer : refer previous
c) How would you explain Robotic Process Automation (RPA) [6]
Answer : refer previous
Q6)
a) Construct different automated testing process.
b) What is selenium RC? Explain in detail.
Selenium RC is an older Selenium tool used to automate web applications.
It allowed testers to write tests in multiple programming languages and run them on different browsers.
1) Meaning
RC stands for Remote Control.
It allows communication between test scripts and the browser using a server (Selenium RC Server).
Test scripts cannot communicate directly with the browser; they need the RC server as a middle layer.
2) Components of Selenium RC
1. Selenium RC Server
o Acts as a bridge between test scripts and the browser.
o Converts commands from scripts into browser actions.
2. Client Libraries / API
o Libraries in Java, C#, Python, Perl, Ruby, PHP.
o Testers write code in their preferred language using these APIs.
3) How Selenium RC Works
1. Start Selenium RC Server.
2. RC server launches the browser.
3. Test scripts send commands to the RC server.
4. RC server executes actions in the browser and sends responses back.
4) Features
Supports multiple programming languages.
Works on different browsers and OS.
Can execute tests remotely.
Supports automation of web applications.
5) Limitations of Selenium RC
Slow execution because commands pass through the RC server.
Complex setup; requires a separate server to run tests.
Difficult to handle dynamic elements compared to WebDriver.
Now outdated, replaced by Selenium WebDriver which is faster and simpler.
6) Example Use Case
Earlier, a tester used Selenium RC to automate a login page.
They wrote scripts in Java, started the RC server, and executed scripts on Firefox to test login functionality
automatically.
c) What do you understand selenium grid? Explain it.
Selenium Grid is a tool used in the Selenium suite to run automated tests on multiple browsers, machines, and operating
systems simultaneously.
It is especially useful for parallel execution, reducing the total test execution time.
1) Meaning
Selenium Grid allows testers to distribute tests across different environments.
It helps achieve cross-browser and cross-platform testing efficiently.
Works on a hub-node architecture.
2) Components of Selenium Grid
1. Hub
o Central server that manages test execution.
o Receives test requests from clients (test scripts) and assigns them to available nodes.
2. Node
o Machines registered with the hub.
o Each node can have different browsers (Chrome, Firefox, Edge) and OS (Windows, Linux, macOS).
o Executes the tests as assigned by the hub.
3) How Selenium Grid Works
1. Start the hub on a machine.
2. Register multiple nodes to the hub.
3. Test scripts send execution requests to the hub.
4. Hub selects an appropriate node based on browser/OS requirement.
5. Node runs the test and sends results back to the hub.
4) Features of Selenium Grid
Parallel Test Execution – Run multiple tests at the same time.
Cross-Browser Testing – Test on Chrome, Firefox, Edge, Safari.
Cross-Platform Testing – Test on Windows, Linux, macOS.
Reduces Execution Time – Executes many tests simultaneously.
5) Advantages
Faster execution of large test suites.
Efficient resource usage by utilizing multiple machines.
Supports continuous integration pipelines.
Helps in testing distributed environments.
6) Example Use Case
A company wants to test a web application on Chrome, Firefox, and Edge across Windows and Linux.
Using Selenium Grid, the hub distributes the tests to nodes on different machines.
All tests run in parallel, reducing total execution time from hours to minutes.
Q5)
a) Illustrate selenium tool suite in detail. [6]
b) Construct different automated testing process.[6]
c) Explain Robotic process Automation in details.[6]
Q6)
a) What is performance testing. What is use of it.[6]
b) How would you explain selenium web driver? Explain it. [6]
c) Construct different automated testing process.
UNIT 6
Q7)
a) Compare the Ishikawa’s Flow chart and Histogram tool.
Feature Ishikawa Diagram (Fishbone) Histogram
Purpose Identifies cause and effect of a problem Shows distribution and frequency of data
Focus Helps in finding root causes of defects or issues Helps in analyzing patterns, trends, and variability
Looks like a fishbone; main problem at the head, Looks like a bar graph with bars representing
Appearance
causes as bones frequency of data
Useful in statistical analysis and performance
Use Case Useful in quality improvement and problem solving
measurement
Type of Data Qualitative data (causes, factors) Quantitative data (numbers, measurements)
Helps to visualize data distribution and identify
Analysis Helps team brainstorming to identify causes
patterns quickly
Outcome Root causes of problems Frequency distribution of data points
b) Explain in detail six sigma characteristics in details.
Answer - Six Sigma in Software Quality Assurance (SQA) :
Six Sigma is a data-driven methodology aimed at improving software quality by reducing defects, minimizing variability,
and optimizing processes. In SQA, it ensures the delivery of reliable, efficient, and customer-centric software.
Key Features of Six Sigma in SQA:
1. Customer Focus: Addresses Critical to Quality (CTQ) attributes to meet user needs.
2. Data-Driven Approach: Uses metrics and statistical tools like control charts and Pareto analysis to analyze defects and
process inefficiencies.
3. Continuous Improvement: Employs DMAIC (Define, Measure, Analyze, Improve, Control) for existing processes and
DMADV (Define, Measure, Analyze, Design, Verify) for new ones.
4. Defect Reduction: Targets a defect level of fewer than 3.4 defects per million opportunities (DPMO).
5. Process Optimization: Improves coding practices, testing methodologies, and development workflows.
6. Proactive Quality Control: Prevents defects by integrating quality measures early in the software development lifecycle.
Benefits:
• Enhances software reliability and customer satisfaction.
• Reduces costs by preventing defects.
• Ensures consistent and efficient process execution.
By applying Six Sigma, organizations achieve higher software quality, reduced
defects, and better alignment with business goals.
c) Can you explain How to maintain SQA?
Maintaining SQA ensures that the software development process produces high-quality, reliable, and defect-free software.
1) Define Quality Standards
Establish clear quality standards and guidelines for the software.
Standards can be based on ISO-9001, CMMI, or organizational policies.
Ensures everyone in the team follows the same quality expectations.
2) Use Standardized Processes
Follow a structured software development process (SDLC).
Include coding standards, testing protocols, and documentation.
Helps maintain consistency across modules.
3) Continuous Testing
Perform testing at every stage: unit, integration, system, and acceptance.
Use both manual and automated testing.
Ensures defects are detected early.
4) Regular Code Reviews
Conduct peer reviews, walkthroughs, and inspections.
Detect errors, violations of coding standards, and potential risks.
Improves code quality and maintainability.
5) Use Metrics and Monitoring
Track software quality using metrics like:
o Defect density
o Test coverage
o Mean time to failure (MTTF)
Monitor progress to identify trends and areas needing improvement.
6) Maintain Proper Documentation
Keep detailed records of requirements, design, test cases, defects, and fixes.
Helps in future maintenance, audits, and process improvement.
7) Training and Awareness
Train team members on quality practices, tools, and standards.
Increases skill level, awareness, and adherence to quality goals.
8) Continuous Improvement
Apply feedback from testing, reviews, and customer inputs.
Update processes, tools, and standards for better quality over time.
9) Risk Management
Identify potential risks in development or testing.
Plan mitigation strategies to avoid defects and delays.
Q8)
a) Explain the six sigma characteristics in details.
b) Explain in detail Total Quality Management.
Total Quality Management (TQM) is a management approach focused on long-term success through customer
satisfaction. It involves all members of an organization in improving processes, products, services, and culture.
1) Meaning
TQM is a company-wide effort to ensure quality in every process, product, and service.
It emphasizes continuous improvement, defect prevention, and meeting customer expectations.
2) Key Principles of TQM
1. Customer Focus
o The customer is central to all quality efforts.
o Processes are designed to meet or exceed customer expectations.
2. Continuous Improvement (Kaizen)
o Regularly improve processes, products, and services.
o Use tools like PDCA cycle (Plan-Do-Check-Act) to enhance quality.
3. Employee Involvement
o All employees, from management to staff, participate in quality initiatives.
o Encourages teamwork, accountability, and empowerment.
4. Process Approach
o Focus on optimizing processes, not just final products.
o Consistent, efficient processes reduce defects and costs.
5. Integrated System
o All departments and processes are interconnected in quality management.
o Quality objectives align with overall organizational goals.
6. Fact-Based Decision Making
o Decisions are made based on data, metrics, and analysis, not assumptions.
o Tools like control charts, Pareto analysis, and histograms are used.
7. Communication
o Effective communication ensures everyone understands quality objectives and responsibilities.
3) Tools Used in TQM
Pareto Charts – Identify most significant problems.
Cause-and-Effect Diagram (Ishikawa) – Find root causes.
Control Charts – Monitor process stability.
Flowcharts – Understand processes.
4) Benefits of TQM
Improves customer satisfaction
Reduces defects and errors
Enhances employee morale
Increases efficiency and productivity
Reduces cost and waste
Promotes continuous improvement culture
5) Example
A software company implements TQM by:
o Conducting code reviews for all modules
o Using automated testing to reduce defects
o Training employees on quality standards
o Continuously improving processes based on customer feedback
c) Compare Run charts and Control chart in detail
Feature Run Chart Control Chart
Shows the trend or pattern of a process over
Purpose Monitors process stability and variation over time
time
Displays data points in sequence to observe Displays data with upper and lower control limits to detect
Focus
trends deviations
To observe patterns, shifts, or cycles in To identify out-of-control situations and maintain process
Use
process control
Time-sequenced data (can be variable or Time-sequenced data with statistical limits (variable or
Data Type
attribute data) attribute)
Has Upper Control Limit (UCL) and Lower Control Limit
Limits Does not have control limits
(LCL)
Useful for statistical process control (SPC) and detecting
Analysis Useful for simple trend analysis
unusual variation
Decision Helps to take corrective action when process goes out of
Helps to spot trends for improvement
Making control
More complex, requires calculation of control limits and
Complexity Simple and easy to use
statistical analysis
Daily bug counts with control limits to see if the process is
Example Daily software bug counts over a month
stable
Q7)
a) Can you illustrate Total Quality Management. Explain in detail. [6]
b) Illustrate Ishikawals 7 basic Tools in detail. [6]
1) Cause-and-Effect Diagram (Fishbone Diagram)
Purpose: Identifies root causes of a problem.
Appearance: Looks like a fishbone; problem is at the head, causes as bones.
Use: Helps teams brainstorm possible causes and find the main reason for defects.
Example: Identifying causes of software bugs – people, process, tools, environment.
2) Check Sheet
Purpose: Collects data in a structured manner.
Use: Useful for data gathering, counting defects, or events.
Example: Counting number of errors in different modules of a software.
3) Control Chart
Purpose: Monitors process variation over time.
Features: Includes Upper Control Limit (UCL) and Lower Control Limit (LCL).
Use: Detects out-of-control processes and ensures process stability.
Example: Tracking daily bug counts to check if the process is stable.
4) Histogram
Purpose: Shows frequency distribution of data.
Use: Helps visualize patterns, variability, and trends in process performance.
Example: Number of defects per module in a software release.
5) Pareto Chart
Purpose: Identifies most significant problems using the 80/20 rule.
Use: Focuses on vital few causes that contribute to most defects.
Example: Showing that 80% of software defects come from 20% of modules.
6) Scatter Diagram
Purpose: Shows the relationship between two variables.
Use: Helps determine correlation or dependency between factors.
Example: Relation between number of developers and number of bugs in software.
7) Flowchart
Purpose: Graphically represents process steps.
Use: Helps understand workflow, identify bottlenecks, and improve processes.
Example: Flowchart of software testing process from requirement analysis to deployment.
c) What do you understand by software maintenance? Explain in detail. [5]
Software Maintenance is the process of modifying and updating software after delivery to fix issues, improve
performance, or adapt it to a new environment.
It ensures the software continues to meet user needs and operate efficiently throughout its lifecycle.
1) Meaning
Involves correcting defects, improving functionality, and adapting software to changes in hardware,
software, or business requirements.
Maintenance is done after the software is delivered to the customer.
2) Objectives
Correct errors found in software after deployment.
Improve performance or maintainability.
Adapt to new requirements or environments.
Enhance reliability and security.
3) Types of Software Maintenance
1. Corrective Maintenance
o Fixes bugs and errors reported by users.
o Example: Correcting a software crash when saving a file.
2. Adaptive Maintenance
o Adapts software to new hardware, operating systems, or platforms.
o Example: Updating software to run on a new version of Windows.
3. Perfective Maintenance
o Improves performance, usability, or maintainability without changing functionality.
o Example: Optimizing database queries to make a system faster.
4. Preventive Maintenance
o Makes software less prone to future problems.
o Example: Refactoring code to reduce complexity and prevent bugs.
4) Importance
Ensures software reliability and performance over time.
Extends software life and avoids complete redevelopment.
Keeps software compatible with new technology or business needs.
Reduces user complaints and improves satisfaction.
5) Challenges
Understanding old code can be difficult.
High cost if software is large or poorly documented.
Risk of introducing new bugs while fixing existing ones.
Changing requirements may affect multiple modules.
Q8)
a) Can you Clarify Flow Chart. Run charts, control charts. [6]
1) Flow Chart
Definition: A graphical representation of a process showing steps and decision points.
Purpose: Helps to understand, analyze, and improve processes.
Symbols: Uses rectangles for processes, diamonds for decisions, and arrows to show flow.
Example: Flow of software testing from requirement analysis → test planning → execution → reporting.
2) Run Chart
Definition: A chart that displays data points in sequence over time to observe trends.
Purpose: Helps identify patterns, shifts, or cycles in a process.
Features: Shows trend of process data but does not have control limits.
Example: Daily number of defects reported in a software module over a month.
3) Control Chart
Definition: A chart that monitors process stability using statistical control limits.
Purpose: Detects out-of-control situations and ensures process consistency.
Features: Includes Upper Control Limit (UCL) and Lower Control Limit (LCL).
Example: Daily defect counts with control limits to check if software testing process is stable.
b) What are the facts to achieving the software quality. Explain in detail. [6]
Software quality is achieved when the software meets requirements, works reliably, and satisfies users.
Several key factors contribute to achieving high-quality software.
1) Clear Requirements
Definition: Well-defined, complete, and unambiguous requirements.
Importance: Prevents misunderstandings and errors during development.
Example: Functional and non-functional requirements documented clearly.
2) Good Design
Definition: Software architecture and design should be robust, modular, and scalable.
Importance: Easier to maintain, extend, and test.
Example: Using object-oriented design for modularity.
3) Proper Coding Standards
Definition: Following coding guidelines, naming conventions, and best practices.
Importance: Reduces errors, improves readability, and ensures maintainability.
Example: Using consistent indentation, meaningful variable names, and comments.
4) Testing and Verification
Definition: Systematic testing to detect and fix defects.
Importance: Ensures software behaves as expected and is defect-free.
Example: Unit testing, integration testing, system testing, and user acceptance testing.
5) Documentation
Definition: Detailed documentation of requirements, design, code, and tests.
Importance: Helps in maintenance, understanding, and training.
Example: Creating user manuals and technical documents.
6) Quality Assurance (QA) Practices
Definition: Implementing SQA activities to monitor and improve quality.
Importance: Ensures process compliance, standards adherence, and continuous improvement.
Example: Code reviews, walkthroughs, audits, and inspections.
7) Skilled Development Team
Definition: Developers and testers with relevant skills and experience.
Importance: High competency leads to better coding, fewer errors, and efficient problem-solving.
Example: Training on new frameworks, testing tools, and coding practices.
8) Effective Project Management
Definition: Planning, scheduling, monitoring, and controlling software projects.
Importance: Reduces delays, avoids cost overruns, and ensures quality delivery.
Example: Using Agile or Waterfall methodologies effectively.
9) Use of Tools and Automation
Definition: Using tools for testing, version control, build, and defect tracking.
Importance: Speeds up development, reduces human error, and ensures consistency.
Example: Selenium for automation testing, Git for version control.
10) Continuous Improvement
Definition: Regularly reviewing processes, feedback, and metrics to enhance quality.
Importance: Keeps software up-to-date, reliable, and efficient.
Example: Monitoring defect trends and improving development practices.
c) What are the different task goal and metric in SQA?[5]
1) Tasks in SQA
SQA involves activities to ensure software quality throughout development:
Defining quality standards: Set rules and guidelines for coding, testing, and documentation.
Review and audits: Conduct code reviews, inspections, and walkthroughs.
Testing and verification: Perform unit, integration, system, and acceptance testing.
Defect tracking and management: Identify, record, and resolve software defects.
Process improvement: Monitor software processes and suggest improvements.
2) Goals of SQA
The main goals of SQA are:
Ensure software reliability: Software should perform correctly under all conditions.
Maintain quality standards: Ensure adherence to coding, documentation, and testing standards.
Detect defects early: Identify errors before deployment to reduce cost and effort.
Improve customer satisfaction: Deliver software that meets user expectations.
Support continuous improvement: Enhance processes, productivity, and maintainability.
3) Metrics in SQA
Metrics help measure and monitor software quality:
Defect Density: Number of defects per size of code (e.g., per 1000 lines of code).
Test Coverage: Percentage of requirements or code tested.
Mean Time to Failure (MTTF): Average time between software failures.
Defect Removal Efficiency (DRE): Percentage of defects detected before release.
Customer-Reported Defects: Number of defects reported by users after deployment.
Q7)
a) Can you explain how to maintain SQA.
b) Compare Run charts and control chart in detail.
c) Explain six sigma characteristics in details.
Q8)
a) Compare flow charts and control chart in detail.
b) Explain in detail total quality management.
c) Compare the Ishikawa’s flow chart and histogram tool