Term Work
Subject: Software Engineering
Unit-1: Introduction
1. Aim
To study the basic concepts of software quality, verification and validation, software testing
life cycle, QA process, and types of testing.
2. Software Quality Basics
Software Quality refers to how well a software meets the requirements and satisfies the user
needs.
Characteristics of Software Quality
Reliability
Efficiency
Usability
Maintainability
Portability
Importance
Ensures error-free software
Improves user satisfaction
Reduces maintenance cost
3. Verification and Validation
Verification
Verification checks whether the software is built correctly according to design specifications.
👉 “Are we building the product right?”
Examples:
Code review
Design review
Inspections
Validation
Validation checks whether the software meets user requirements.
👉 “Are we building the right product?”
Examples:
Testing
User acceptance testing
4. Quality Perspectives
Software quality can be viewed from different perspectives:
1. User Perspective – Ease of use and satisfaction
2. Developer Perspective – Code quality and performance
3. Manager Perspective – Cost and time efficiency
4. Customer Perspective – Requirement fulfillment
5. Software Testing
Software testing is the process of finding errors or bugs in a program.
Objectives of Testing
Identify defects
Ensure quality
Verify functionality
Improve performance
6. Software Testing Life Cycle (STLC)
STLC defines the steps involved in testing.
Phases of STLC
1. Requirement Analysis
o Understand requirements
2. Test Planning
o Define testing strategy
3. Test Case Development
o Create test cases
4. Test Environment Setup
o Prepare hardware/software
5. Test Execution
o Execute test cases
6. Test Closure
o Analyze results and prepare reports
7. V-Model of Testing
The V-Model represents the relationship between development and testing phases.
Structure
Left side → Development phases
Right side → Testing phases
Development Phase Testing Phase
Requirement Acceptance Testing
System Design System Testing
Architecture Integration Testing
Coding Unit Testing
Advantages
Early testing
Better quality assurance
8. QA Process (Quality Assurance Process)
QA ensures that the development process is followed correctly.
QA Activities
Process definition
Audits and reviews
Testing
Documentation
Goals
Improve software quality
Prevent defects
9. Cost of Testing
Testing requires time and resources, which increases cost.
Types of Cost
1. Prevention Cost
o Training, planning
2. Detection Cost
o Testing and inspections
3. Failure Cost
o Fixing bugs after release
👉 Early testing reduces overall cost.
10. Types of Testing
1. Functional Testing
Tests software functionality.
2. Non-Functional Testing
Tests performance, security, usability.
3. Manual Testing
Testing done by humans.
4. Automation Testing
Testing using tools and scripts.
5. Unit Testing
Testing individual components.
6. Integration Testing
Testing combined modules.
7. System Testing
Testing complete system.
8. Acceptance Testing
Testing by end users.
11. Result
Thus, the concepts of software quality, verification & validation, testing life cycle
(STLC), V-model, QA process, cost of testing, and types of testing were studied
successfully.
Unit–02: Writing Test Case
1. Aim
To study the process of writing test cases, preparing test data, and understanding different
types of testing such as functional, non-functional, unit, integration, and user acceptance
testing.
2. Writing Test Cases
A test case is a set of conditions used to verify whether a software application works
correctly.
Components of a Test Case
Test Case ID
Test Description
Preconditions
Test Steps
Expected Result
Actual Result
Status (Pass/Fail)
Example Test Case
Test Case ID TC_01
Description Check login functionality
Steps Enter username and password
Expected Result User should login successfully
Status Pass
3. Functional and Non-Functional Testing
Functional Testing
Tests whether the software functions according to requirements.
Examples:
Login testing
Registration testing
Non-Functional Testing
Tests performance, usability, and reliability.
Examples:
Performance testing
Security testing
Usability testing
4. Performance and UI Testing
Performance Testing
Checks how the system performs under load.
Types:
Load testing
Stress testing
UI (User Interface) Testing
Tests the design and user interface of the application.
Checks:
Buttons
Layout
Navigation
User experience
5. Preparing Test Data
Test Data is the input given to test the system.
Types of Test Data
Valid Data
Invalid Data
Boundary Data
Example
For login system:
Valid: correct username/password
Invalid: wrong password
Boundary: empty fields
6. Writing Unit Test
Unit Testing tests individual components or modules.
Example (Pseudo Code)
def add(a,b):
return a+b
print(add(2,3)) # Expected output: 5
7. Integration Testing
Integration testing checks whether different modules work together correctly.
Example
Login module + Database connection
8. User Acceptance Testing (UAT)
UAT is performed by the end users to verify that the system meets their requirements.
Features
Done after system testing
Ensures customer satisfaction
9. Preparing Test Scenarios from Software
Requirements
A test scenario is a high-level description of what to test.
Steps to Prepare Test Scenarios
1. Understand requirements
2. Identify user actions
3. Define possible scenarios
4. Prioritize important cases
Example
Requirement: User login system
Test Scenarios:
Login with valid credentials
Login with invalid credentials
Login with empty fields
10. Result
Thus, the process of writing test cases, preparing test data, and understanding different
testing techniques such as functional, non-functional, performance, UI, unit,
integration, and user acceptance testing was studied successfully.
Unit–03: Test Execution & Management
1. Aim
To study the process of test execution, test planning, test strategies, coverage techniques, bug
tracking tools, and test reporting.
2. Test Execution
Test Execution is the process of running test cases and comparing actual results with
expected results.
Steps in Test Execution
1. Execute test cases
2. Record results
3. Compare expected and actual output
4. Report defects
3. Test Oracles
A Test Oracle is a mechanism used to determine whether a test case has passed or failed.
Types of Test Oracles
Specified Oracle – Based on requirements
Derived Oracle – Based on similar systems
Human Oracle – Based on tester’s judgment
4. Test Planning
Test Planning defines the strategy and approach for testing.
Components of Test Plan
Objectives
Scope
Resources
Schedule
Test environment
Risk analysis
5. Test Strategies (Including When to Stop
Testing)
A test strategy is a high-level plan for testing activities.
Types of Strategies
Manual testing
Automation testing
Risk-based testing
When to Stop Testing
Testing can be stopped when:
All test cases are executed
No major defects remain
Deadline is reached
Required quality level is achieved
6. Test Coverage & Traceability Matrix
Test Coverage
Test coverage measures how much of the application is tested.
Traceability Matrix (RTM)
RTM maps requirements with test cases.
Example
Requirement Test Case Status
Login TC_01 Pass
Register TC_02 Pass
7. Test Coverage Tools (JIRA, Bugzilla &
Bug Tracking Tools)
JIRA
JIRA is a popular tool used for:
Bug tracking
Project management
Test management
Bugzilla
Bugzilla is an open-source bug tracking tool.
Features
Bug reporting
Bug tracking
Status updates
Bug Tracking Tools
Used to track defects during testing.
Common features:
Bug ID
Priority
Status
Assigned developer
8. Test Data Mining
Test Data Mining involves extracting useful test data from large datasets.
Uses
Improve testing efficiency
Identify patterns in defects
Generate test data
9. Test Reporting
Test reporting provides information about testing progress and results.
Contents of Test Report
Total test cases executed
Passed/Failed test cases
Defects found
Testing summary
10. Need of Automation
Automation testing uses tools to execute test cases automatically.
Advantages
Saves time
Reduces human effort
Improves accuracy
Reusable test scripts
Examples of Automation Tools
Selenium
QTP (UFT)
TestNG
11. Result
Thus, the concepts of test execution, test planning, test strategies, test coverage, bug
tracking tools, test data mining, test reporting, and automation testing were studied
successfully.
Unit–04: Test Automation
1. Aim
To study the concepts of test automation, situations when automation should not be used,
writing automated test cases, and automation frameworks like Selenium.
2. Test Automation
Test Automation is the process of using software tools to execute test cases automatically
without human intervention.
Advantages
Saves time
Increases efficiency
Reduces human errors
Reusable test scripts
3. When Not to Automate
Automation is not suitable in all cases.
Situations When Automation Should Not Be Used
1. Small Projects
o Manual testing is more cost-effective
2. Short Deadline Projects
o No time to develop automation scripts
3. Unstable Requirements
o Frequent changes make automation difficult
4. UI Frequently Changes
o Scripts need constant updates
5. One-Time Testing
o Automation is not useful for single execution
4. Writing Simple Automated Test Case
Automated test cases are written using programming languages and tools.
Example (Basic Selenium Python Script)
from selenium import webdriver
driver = [Link]()
[Link]("[Link]
print("Page Title:", [Link])
[Link]()
Explanation
Opens Chrome browser
Navigates to website
Prints page title
Closes browser
5. Automated Testing Framework
A testing framework is a set of guidelines and tools used to create and run automated tests.
Types of Frameworks
Linear Framework
Modular Framework
Data-Driven Framework
Keyword-Driven Framework
6. Selenium Framework
Selenium is a popular open-source automation tool used for testing web applications.
Features of Selenium
Supports multiple browsers (Chrome, Firefox)
Supports multiple languages (Python, Java)
Open-source and free
Cross-platform compatibility
Components of Selenium
Selenium IDE
Selenium WebDriver
Selenium Grid
7. Advantages of Automation Framework
Improves test efficiency
Reusability of test scripts
Easy maintenance
Better reporting
8. Result
Thus, the concepts of test automation, situations when automation should not be used,
writing automated test cases, and automation frameworks like Selenium were studied
successfully.
Unit–05: Other Quality Assurance
1. Aim
To study quality and defect management, code reviews, quality tools, change management,
and version control in software development.
2. Quality & Defect Management
Quality Management
Quality management ensures that the software meets required standards and user
expectations.
Activities
Quality planning
Quality assurance
Quality control
Defect Management
Defect management is the process of identifying, tracking, and resolving bugs.
Defect Life Cycle
1. New
2. Assigned
3. Open
4. Fixed
5. Retest
6. Closed
3. Code Reviews
Code review is the process of checking source code to find errors and improve quality.
Types of Code Review
Peer Review
Walkthrough
Inspection
Benefits
Improves code quality
Detects bugs early
Enhances team collaboration
4. Quality Tools
Quality tools help in improving software quality and detecting defects.
Common Quality Tools
Selenium – Automation testing
JIRA – Bug tracking
Bugzilla – Defect tracking
TestNG – Testing framework
LoadRunner – Performance testing
Advantages
Faster testing
Better accuracy
Easy defect tracking
5. Change Management
Change management is the process of handling changes in software development.
Steps
1. Request for change
2. Impact analysis
3. Approval
4. Implementation
5. Testing
6. Deployment
Importance
Controls project changes
Reduces risk
Maintains stability
6. Version Control
Version control is used to manage changes in source code over time.
Popular Version Control Systems
Git
SVN (Subversion)
Features
Track changes
Maintain history
Collaboration among developers
Rollback to previous versions
7. Advantages of Version Control
Prevents data loss
Supports team collaboration
Keeps project organized
Easy tracking of changes
8. Result
Thus, the concepts of quality management, defect management, code reviews, quality
tools, change management, and version control were studied successfully.