0% found this document useful (0 votes)
9 views8 pages

Automated Testing & Software Maintenance Guide

The document is an assignment on Software Engineering focusing on Automated Testing Tools and Software Maintenance. It covers tools like Selenium and JUnit, their features, advantages, limitations, and various types of software testing and maintenance. Additionally, it discusses the importance of security testing and the change management process in software development.

Uploaded by

suhani.bamania
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)
9 views8 pages

Automated Testing & Software Maintenance Guide

The document is an assignment on Software Engineering focusing on Automated Testing Tools and Software Maintenance. It covers tools like Selenium and JUnit, their features, advantages, limitations, and various types of software testing and maintenance. Additionally, it discusses the importance of security testing and the change management process in software development.

Uploaded by

suhani.bamania
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

INDIRA GANDHI DELHI TECHNICAL UNIVERSITY FOR

WOMEN

Software Engineering

BIT -205

SW Assignment

SUBMITTED BY: SUBMITTED TO:

Suhani Bamania(21001012024) [Link] Thannaya

[Link]. CSE-3(3rd Semester) CSE Department


SOFTWARE ENGINEERING ASSIGNMENT

Unit: Automated Testing Tools & Software


Maintenance

1. Automated Testing Tools


Software testing is a critical activity in the software development life cycle
(SDLC), aimed at ensuring that a system functions as intended, is free of
defects, and meets the requirements given by the client. Automated testing
refers to the process where test cases are executed using specialized tools
rather than manual execution. Today, automation significantly reduces human
effort, increases accuracy, and accelerates testing for large software systems.

1.1 Selenium

Selenium is one of the most popular open-source tools used for automating
the testing of web applications. It supports multiple browsers such as
Chrome, Firefox, Edge, and Safari, and is compatible with several
programming languages including Java, Python, C#, Ruby, and JavaScript.

Features of Selenium

• Supports cross-browser and cross-platform testing.


• Allows parallel test execution.
• Integrates easily with CI/CD tools like Jenkins.
• Provides detailed test reports.
• Highly extendable through WebDriver and Selenium Grid.

Components of Selenium

Component Purpose
Selenium IDE Record-and-playback tool to create simple test cases
without coding.

Selenium Most powerful component that interacts with browsers


WebDriver using programming.

Selenium Used for distributed and parallel test execution across


Grid multiple machines.

Advantages

• Free and open source.


• Works with multiple OS & languages.
• Supports dynamic web applications.

Limitations

• Only for web applications, not desktop apps.


• Requires programming knowledge for advanced testing.
• No built-in reporting mechanism.

1.2 JUnit

JUnit is a widely-used automated testing framework for Java applications. It


follows a unit testing approach, meaning the smallest parts (units) of code are
tested individually.

Features

• Supports Test-Driven Development (TDD).


• Provides annotations like @Test, @Before, @After.
• Offers assertion libraries to validate outputs.
• Integrates with Maven, Gradle, Jenkins for CI pipelines.

JUnit Annotations
Annotation Use

@Test Marks a method as a test case.

@BeforeClass Runs once before all tests.

@AfterClass Runs once after all tests.

@Before Executes before every test.

@After Executes after every test.

Example JUnit Code


import [Link];
import static [Link].*;
public class AddTest {
@Test
public void addition() {
assertEquals(10, 5+5);
}
}
1.3 Web Application Testing

Web applications must be tested thoroughly due to their wide user base and
real-time accessibility. Testing ensures that the application is functional,
secure, fast, and user-friendly.

Types of Web Testing

1. Functional Testing – verifies features like login, forms, links.


2. Usability Testing – checks design, navigation, and user experience.
3. Performance Testing – load, stress, scalability testing.
4. Security Testing – authentication, data protection.
5. Compatibility Testing – browser compatibility, mobile responsiveness.

Common Tools
• Selenium
• Apache JMeter
• Postman API Tester
• Bugzilla / Jira for issue tracking

1.4 Security Testing

Security testing ensures that the application is protected from attacks and
vulnerabilities. This is especially important for systems dealing with financial
transactions, healthcare, and personal user data.

Major Security Testing Activities

• Authentication Testing
• Authorization Validation
• SQL Injection Testing
• Cross-Site Scripting (XSS)
• Penetration and Vulnerability Analysis

Popular Tools

Tool Use

OWASP ZAP Detects security vulnerabilities.

Burp Suite Performs penetration testing.

Nessus Vulnerability scanning.

1.5 Software Testing

Software Testing is the process of evaluating a software product to detect


differences between expected and actual outcomes. It ensures reliability,
performance, and quality.

Categories
1. Manual Testing
2. Automated Testing
3. White-Box and Black-Box Testing
4. Unit, Integration, System, Acceptance Testing

Benefits

• Reduces risks and errors.


• Ensures product quality.
• Improves customer satisfaction.

2. Software Maintenance
Software maintenance is the process of modifying and enhancing software
after deployment. Software is not static; it evolves over time due to changing
technology, new user requirements, and detected issues.

2.1 Types of Software Maintenance

Type Purpose

Corrective Fixes bugs, faults, and defects found after


Maintenance delivery.

Adaptive Modifies system for new environments (OS,


Maintenance hardware, regulations).

Perfective Enhances performance, user interface, and


Maintenance features.

Preventive Improves maintainability, prevents future


Maintenance faults.

2.2 Software Maintenance Models


1. Quick Fix Model
o Fixes issues immediately without restructuring code.
o Fast but reduces maintainability.
1. Iterative Enhancement Model
o Software evolves through multiple updates.
o Improves long-term performance.
1. Boehm’s Maintenance Model
o Considers cost, risk, and quality.
o Suitable for large long-term systems.
1. Re-use Oriented Model
o Uses existing reusable components to reduce development effort.

2.3 Reverse Engineering & Re-Engineering

Reverse Engineering

Extracting knowledge from an existing product to understand its design and


implementation.
Used when documentation is missing or to recover lost code logic.

Applications

• Malware analysis
• Legacy system understanding
• Cloning or competitive analysis

Re-Engineering

Improving and modifying initial software to enhance performance and


maintainability.
Often takes place after reverse engineering.

Steps

1. Reverse engineer the system.


2. Analyze and restructure source code.
3. Optimize database, architecture, and UI.
4. Convert into a better upgraded version.

2.4 Change Management Process

Change management ensures modifications are controlled, documented, and


do not break the existing system.

Steps in Change Management

1. Request for Change (RFC) is raised


2. Impact analysis is performed
3. Approval or rejection by Change Control Board (CCB)
4. Change implementation & testing
5. Release to production
6. Documentation & version creation

Advantages

• Prevents unexpected system failures


• Maintains version control
• Enhances traceability and accountability

You might also like