ST Unit-5 Full Notes
ST Unit-5 Full Notes
2. Client-Side Components:
- Browser: The platform through which users access and interact with the web
application.
3. Server-Side Components:
- Web Server: The server that hosts the web application and processes client
requests.
4. Communication Protocols:
- Stress Testing: Pushes the application beyond its limits to identify breaking
points.
7. Database Testing:
- Data Integrity Testing: Ensures that data is stored, retrieved, and updated
accurately.
8. Security Testing:
9. Scalability Testing:
The main objective of software testing is to design the tests in such a way that it
systematically finds different types of errors without taking much time and effort
so that less time is required for the development of the software. The overall
strategy for testing software includes:
148. Explain in detail about commonly Known attacks of
software?
1. SQL Injection:
- Description: XSS involves injecting malicious scripts into web pages, which
are then executed by the user's browser. Attackers often exploit user input fields
or inadequate output encoding.
- Testing Strategy: Include testing for anti-CSRF tokens, ensuring that actions
require authentication, and validating the origin of requests.
- Description: DoS and DDoS attacks flood a system or network with traffic,
overwhelming its capacity and causing it to become unavailable to users.
- Testing Strategy: Perform stress testing and load testing to assess the
system's capacity and response to high volumes of traffic. Implementing rate
limiting and traffic filtering can help mitigate these attacks.
5. Man-in-the-Middle (MitM) Attacks:
6. Security Misconfigurations:
- Testing Strategy: Regularly perform security audits and use automated tools
to identify and address misconfigurations. Testers should review configuration
files and settings for potential weaknesses.
7. Phishing Attacks:
1. Introduction to SPI-SIG:
5. Defining Baselines:
6. Metric Categories:
- SPI-SIG categorizes software test metrics into various categories such as:
Wear-out: Software does not have an energy-related wear-out phase. Bugs can
arise without warning.
SECTION – B (8 MARKS)
116. Explain the various types of Testing?
1. Unit Testing:
3. System Testing:
4. Acceptance Testing:
1. Specification Development:
The formal verification of the GUH program begins with the development of a
precise and unambiguous specification. This specification outlines the intended
behaviour, requirements, and constraints of the program. It serves as the
foundation for the subsequent verification steps.
3. Theorem Formulation:
4. Proof Construction:
5. Model Checking:
1. Functionality Testing:
- Verify that the software meets the specified requirements and performs its
intended functions accurately.
2. Performance Testing:
3. Compatibility Testing:
- Test the software across various configurations to identify and resolve any
compatibility issues.
4. Security Testing:
5. Usability Testing:
- Evaluate the user interface and overall user experience to ensure that the
software is intuitive and user-friendly.
- Test the software's stability and reliability under normal and stressful
conditions.
- Identify and address any potential issues related to crashes, data loss, or
system failures.
7. Regression Testing:
8. Documentation Review:
1. Selenium:
2. JIRA:
JIRA is primarily a project management tool, but it is often used for issue
tracking and bug reporting in web testing.
Testers can use JIRA to create, track, and manage testing tasks and
issues, providing a centralized platform for collaboration among testing and
development teams.
3. LoadRunner:
4. TestComplete:
5. Burp Suite:
6. Postman:
Postman is an API testing tool that helps in testing web services and APIs.
It allows testers to create and manage API requests, automate testing, and
validate responses.
Postman simplifies the testing of RESTful APIs, ensuring their functionality
and interoperability.
8. Snyk:
Snyk is a tool used for identifying and fixing security vulnerabilities in web
applications and their dependencies.
It scans for known vulnerabilities in libraries and dependencies, helping
developers and testers address security issues proactively.
1. Incomplete Requirements:
Inadequate or unclear requirements can lead to misunderstandings between
developers and testers, resulting in the development of software that does not
meet the user's expectations. Without comprehensive and precise
requirements, it becomes challenging to create effective test cases and assess
the software's functionality accurately.
2. Poorly Defined Test Cases:
Test cases serve as the foundation for software testing. If test cases are
poorly designed or lack coverage, critical functionalities may be overlooked,
leaving potential defects undiscovered. It's essential to have a comprehensive
set of test cases that cover various scenarios and edge cases to ensure
thorough testing.
3. Lack of Test Data:
Insufficient or unrealistic test data can lead to an inadequate evaluation of the
software's performance. The absence of diverse and representative test data
may result in overlooking potential issues related to data processing, validation,
or security.
4. Inadequate Testing Environment:
The testing environment needs to mirror the production environment closely.
Issues may arise if there are disparities between the testing and production
environments, leading to failures that only become apparent in the live system.
5. Communication Gaps:
Communication breakdowns between development and testing teams can
result in misunderstandings, missed requirements, or incomplete test coverage.
Effective communication is crucial to ensure that all stakeholders are on the
same page regarding expectations, changes, and testing progress.
6. Insufficient Regression Testing:
Changes in the codebase or new feature implementations can introduce
unexpected side effects or break existing functionalities. Without thorough
regression testing, it's challenging to identify and rectify issues arising from
modifications made during the development cycle.
1. Client-Side (Frontend):
The client-side, or frontend, is the user interface that users interact
with. It is rendered in web browsers and is responsible for presenting
data and handling user interactions.
Technologies such as HTML (Hypertext Markup Language), CSS
(Cascading Style Sheets), and JavaScript are commonly used to build
the client-side.
2. Server-Side (Backend):
The server-side, or backend, is responsible for processing requests,
managing data, and performing business logic. It runs on a web server
and communicates with the client-side.
Common technologies for backend development include server-side
languages like Node.js, Python (Django/Flask), Ruby (Ruby on Rails),
Java (Spring), or PHP.
3. Database:
The database stores and manages the application's data. It could be a
relational database (e.g., MySQL, PostgreSQL) or a NoSQL database
(e.g., MongoDB, Cassandra).
The backend interacts with the database to retrieve or store data
based on user requests.
4. Web Server:
The web server handles communication between the client-side and
the server-side. It receives incoming requests from clients, forwards
them to the backend, and sends the response back to the client.
Common web servers include Apache, Nginx, and Microsoft Internet
Information Services (IIS).
5. Application Programming Interface (API):
APIs enable communication and data exchange between different
software systems. In the context of web applications, APIs define how
the frontend and backend interact.
RESTful APIs or GraphQL are common approaches for building web
application APIs.
Software testing can be further divided into manual and automated testing.
Both manual and automated testing has its strength and weakness.
Base Metrics.
Calculated Metrics.
SECTION – A (3 MARKS)
61. What is security testing?
1. Waterfall.
2. Agile.
3. Lean Development.
4. Scrum.
5. Software Testing.
6. DevOps Methodology.
7. Dynamic systems development.
8. Software Deployment.
Scalability.
Cross Platform.
Accessibility.
Data Recovery.
Portal Web Apps.
Customization.
Deployment.
Security.
User Interaction.
Lower Cost.
Integration.
Search Engine Optimization.
Loosely Coupled.
Confidentiality
Integrity
Authentication
Authorization
Availability
Non-repudiation
Defect injection rate measures the total number of defects (bugs) that was
detected during an interval of time (days / weeks etc.…)
Selenium.
Apache JMeter.
Katalon Studio
SoapUI.
TestComplete.
Cucumber.
LoadRunner.
WebLoad.
LambdaTest.
LoadUI.
Software threats are malicious pieces of computer code and applications that can
damage your computer, as well as steal your personal or financial information.
For this reason, these dangerous programs are often called malware (short for
“malicious software”).
Malware Attack.
SQL Injection Attack.