0% found this document useful (0 votes)
3 views17 pages

Software Engineering Term Work

The document covers essential concepts in software engineering, including software quality, verification and validation, testing life cycle, and types of testing. It also discusses test case writing, test execution, automation frameworks, and quality assurance processes. Overall, it provides a comprehensive overview of software testing methodologies and best practices.

Uploaded by

arjunk74840
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views17 pages

Software Engineering Term Work

The document covers essential concepts in software engineering, including software quality, verification and validation, testing life cycle, and types of testing. It also discusses test case writing, test execution, automation frameworks, and quality assurance processes. Overall, it provides a comprehensive overview of software testing methodologies and best practices.

Uploaded by

arjunk74840
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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.

You might also like