0% found this document useful (0 votes)
8 views40 pages

Chapter No 1-3 FINAL

The document outlines the development of Harmony Home, a web-based real estate platform that connects buyers and sellers directly, eliminating the need for agents. It includes sections on project scope, software requirements, system features, and design specifications, emphasizing user registration, property listings, and direct communication. The platform aims to enhance the real estate experience by providing a user-friendly interface and robust security measures, facilitating efficient property transactions.

Uploaded by

Haseeb Hyder
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)
8 views40 pages

Chapter No 1-3 FINAL

The document outlines the development of Harmony Home, a web-based real estate platform that connects buyers and sellers directly, eliminating the need for agents. It includes sections on project scope, software requirements, system features, and design specifications, emphasizing user registration, property listings, and direct communication. The platform aims to enhance the real estate experience by providing a user-friendly interface and robust security measures, facilitating efficient property transactions.

Uploaded by

Haseeb Hyder
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
You are on page 1/ 40

Table of Contents

Chapter No 1: Introduction to the Problem .............................................................................................................. 3


1.1 Introduction ........................................................................................................................................................ 3
1.4 Project Scope ...................................................................................................................................................... 3
1.5 Objective ............................................................................................................................................................. 4
1.6 Intended Audience and Reading Suggestions .................................................................................................. 4
1.7 Document Conventions ...................................................................................................................................... 4
Chapter No 2: Software Requirement Specification................................................................................................. 5
2.1 Overall Description ............................................................................................................................................ 5
2.1.1 Product Perspectives ................................................................................................................................... 6
2.1.2 Product Features ......................................................................................................................................... 7
2.1.3 Design and Implementation Constraints .................................................................................................. 7
2.1.4 Assumptions and Dependencies ................................................................................................................. 8
2.2 System Features ................................................................................................................................................. 9
2.2.1 System Feature 1: ........................................................................................................................................ 9
2.2.2 System Feature 2: ........................................................................................................................................ 9
2.3 External Interface Requirements ................................................................................................................... 10
2.3.1 User Interfaces........................................................................................................................................... 10
2.3.2 Hardware Interfaces ................................................................................................................................. 13
2.3.3 Software Interfaces ................................................................................................................................... 14
2.3.4 Communications Interfaces ..................................................................................................................... 14
2.4 Other Nonfunctional Requirements ............................................................................................................... 14
2.4.1 Performance Requirements ..................................................................................................................... 15
2.4.2 Safety Requirements ................................................................................................................................. 15
2.4.3 Security Requirements ............................................................................................................................. 15
Chapter No 3: Analysis (use case model) ................................................................................................................. 15
3.1 Identifying Actors and Use Cases using Textual Analysis ........................................................................... 15
3.2 Forming Use Case Diagram with Candidate Actors and Use Cases .......................................................... 16
Chapter No 4: Design................................................................................................................................................. 17
4.1 Architecture Diagram ...................................................................................................................................... 17
4.2 ERD with Data Dictionary .............................................................................................................................. 18
4.3 Data Flow Diagram (Level 0 and Level 1) ..................................................................................................... 19
4.4 Class Diagram .................................................................................................................................................. 21
4.5 Object Diagram ................................................................................................................................................ 22
4.6 Sequence Diagram ........................................................................................................................................... 23

1
4.7 Activity Diagram .............................................................................................................................................. 24
4.8 Collaboration Diagram .................................................................................................................................... 25
4.9 State Transition Diagram ................................................................................................................................ 26
Chapter 5: Implementation ....................................................................................................................................... 27
5.1 Component Diagram ....................................................................................................................................... 27
5.2 Deployment Diagram ....................................................................................................................................... 28
5.3 Database Architecture (1- Tire, 2-Tire, 3- Tire Architecture ) .................................................................... 29
Types of DBMS Architecture ............................................................................................................................ 29
Tier Architecture................................................................................................................................................ 29
Tier Architecture................................................................................................................................................ 30
Diagram .............................................................................................................................................................. 30
Tier Architecture................................................................................................................................................ 30
Chapter 6: Testing (Software Quality Attributes) .................................................................................................. 31
Integration Testing ............................................................................................................................................. 32
6.1 Test Case Specification .................................................................................................................................... 32
6.2 Black box test case ........................................................................................................................................... 32
6.2.1 BVA or Boundary value Analysis ............................................................................................................ 33
6.2.2 Equivalence class partitioning ................................................................................................................. 33
6.2.3 State transition testing .............................................................................................................................. 34
6.2.3 Decision table testing ................................................................................................................................ 34
6.2.4 Graph base testing..................................................................................................................................... 35
6.3 White box testing .............................................................................................................................................. 35
6.3.1 Statement coverage ................................................................................................................................... 36
6.3.2 Branch coverage ........................................................................................................................................ 36
6.3.3 Path coverage............................................................................................................................................. 36
Chapter 7: Tools and Technologies .......................................................................................................................... 37
7.1 Programming Language .................................................................................................................................. 37
7.2 Operating Environment .................................................................................................................................. 38
Visual Studio Code (VS Code) .......................................................................................................................... 39
7.3 Appendix B: Source Code ............................................................................................................................... 40

2
Chapter No 1: Introduction to the Problem

1.1 Introduction

Harmony Home is a web-based real estate platform designed to simplify the process of buying and selling
properties by eliminating the need for agents. The platform allows sellers to easily list their properties with
detailed information, while buyers can browse these listings, search for homes based on specific criteria, and
directly contact sellers.

By providing a direct communication channel between buyers and sellers, Harmony Home aims to make
real estate transactions more transparent, efficient, and cost-effective. Developed with modern web
technologies, the platform offers a user-friendly interface that enhances the real estate experience for all
users, making property transactions smoother and more accessible.

1.2 Background
The traditional real estate market involves multiple intermediaries, which can lead to increased costs and
inefficiencies. Buyers often face difficulties in finding properties that meet their specific requirements, while
sellers struggle to reach potential buyers effectively. The rise of digital technologies has created an
opportunity to transform the real estate industry by providing platforms that connect buyers and sellers
directly. Online real estate platforms have gained popularity due to their convenience, extensive listings, and
advanced search capabilities. Harmony Homes builds on this trend, offering a comprehensive solution that
addresses the limitations of traditional methods and enhances the overall user experience.

1.3 Purpose

The Harmony Home project is designed to provide users with an online platform where sellers can list their
properties and services, and buyers can browse available homes and directly contact sellers. The system
enables sellers to register, log in, and manage their property listings, while buyers can search for homes,
view detailed property information, and connect with sellers without the need for intermediaries like agents.

1.4 Project Scope

The Harmony Home project aims to develop a web-based real estate platform designed to streamline the
process of buying and selling properties by facilitating direct connections between buyers and sellers in
[Target City/Region]. The platform will enable sellers to register and create detailed property listings that
include essential information such as property descriptions, images, and location details. Sellers will also
have the option to include their contact information directly within each listing, allowing buyers to contact

3
them without needing intermediaries. Buyers will benefit from an easy-to-navigate interface, where they can
browse available properties, use search functionality to filter listings based on their preferences, and contact
sellers directly for inquiries and negotiations. The project is expected to be completed in three months,
covering the design, development, testing, and deployment phases to ensure that the platform provides a
straightforward and efficient solution for real estate transactions.

1.5 Objective

The Harmony Homes website is designed to empower sellers by allowing them to upload and manage their
property listings independently. Sellers will no longer need to rely on agents, as the platform enables them
to connect directly with potential buyers. This approach simplifies the process and reduces reliance on
intermediaries, ensuring that sellers can efficiently handle their property transactions and engage directly
with customers. The site will also feature advanced search options, detailed property descriptions, and direct
communication channels between buyers and sellers, while integrating external APIs for payment
processing, geolocation, and property valuation. By maintaining high security and scalability standards, the
platform aims to provide a streamlined and effective solution for both sellers and buyers.

1.6 Intended Audience and Reading Suggestions

The intended audience for this document includes potential end users of the Harmony Home platform, as
well as stakeholders interested in understanding the features and functionality of the system. This document
may also serve as a reference guide for users to better navigate and utilize the platform.

Reading Suggestions: To gain a deeper understanding of real estate platforms and best practices, consider
exploring the following resources:

 Understanding Real Estate Market Trends


 Best Practices for Online Property Listings
 Research Papers and Reports
 Real Estate and Property Management Websites

1.7 Document Conventions

 Entire document should be fully justified.

 Convention for Main Title

 Font Face: Times New Roman

 Font Style: Bold

4
 Font Size: 14

 Convention for Sub Titles

 Font Face: Times New Roman

 Font Style: Bold

 Font Size: 12

 Convention for Body Text

 Font Face: Times New Roman

 Font Size: 12

Chapter No 2: Software Requirement Specification

A Software Requirements Specification (SRS) document details what the software will do and how it is
expected to perform. It describes the functionality required to meet the needs of all stakeholders, including
both business and user requirements.

2.1 Overall Description


Harmony Home is a web-based real estate platform designed to offer a secure, efficient, and user-friendly
way for buyers and sellers to connect directly. The platform allows users to list properties, browse available
listings, and communicate with each other without intermediaries. It aims to enhance the real estate
experience by providing a transparent and streamlined process for property transactions.

The Harmony Home platform consists of several key components:

User Registration and Authentication:

Users can create accounts by providing personal information and verifying their identity through a secure
authentication process.This ensures that only registered and verified users can access the platform’s features.

Property Listings:

Sellers can create and manage detailed property listings, including descriptions, images, and location
information.

The system allows sellers to include their contact details within the listing for direct buyer-seller
communication
5
Search and Browsing:

Buyers can browse and search for available properties using various filters such as location, price, and
property type. The platform provides an easy-to-navigate interface to help users find properties that match
their criteria.

Direct Communication:

Buyers can contact sellers directly through the contact information provided in the property listings. This
feature facilitates efficient and transparent communication between buyers and sellers.

Administration:

Administrators have access to an administrative interface to manage user accounts, monitor platform
activities, and handle any issues that may arise. They can oversee the overall operation of the platform to
ensure smooth and effective functionality.

Security and Privacy:

The platform incorporates robust security measures to protect user data and ensure the integrity of the
information exchanged on the site.

Secure data transmission protocols are used to safeguard user information during interactions with the server.
Access controls and authentication mechanisms are in place to prevent unauthorized access to sensitive data.

2.1.1 Product Perspectives


The product perspective of Harmony Home defines its role and integration within the broader real estate
ecosystem and its interaction with various stakeholders. It outlines how the platform fits into the larger
environment and interfaces with other components involved in the real estate process.

Key aspects of the product perspective for Harmony Home include:

 Interoperability:
The platform should interface with external systems like property databases or mapping services
using standard protocols to facilitate smooth data exchange and enhance functionality.

 User Roles and Interfaces:


The system defines roles such as buyers, sellers, and administrators, each with tailored, user-friendly
interfaces. These interfaces should be designed to ensure efficient interactions and a seamless user
experience.

6
2.1.2 Product Features
The features of Harmony Home are designed to streamline the real estate process and provide a user-friendly
experience for both buyers and sellers. Key features include:

User Registration: Users can securely register on the platform, allowing sellers to create and manage
property listings and buyers to browse available properties.

Property Listings: Sellers can create detailed property listings with descriptions, images, and contact
information. This feature enables buyers to view and assess properties directly on the platform.

Search and Browsing: The platform offers intuitive search functionality and browsing options, allowing
buyers to filter properties based on criteria such as location, price, and property type.

Direct Communication: Buyers can contact sellers directly through the contact details provided in each
listing, facilitating straightforward and efficient communication.

Administration Tools: Administrators have access to tools for managing user accounts, monitoring
platform activities, and addressing any issues to ensure smooth operation.

Security Measures: The platform includes robust security features to protect user data and ensure safe
interactions. This includes secure data transmission and access controls to prevent unauthorized access.

2.1.3 Design and Implementation Constraints


The development and deployment of Harmony Home involve several constraints that must be addressed to
ensure the platform's effectiveness and reliability. Key constraints include:

Security: Measures must be implemented to protect user data and prevent unauthorized access. This includes
secure data transmission and robust access controls.

Data Protection: Ensuring the confidentiality and integrity of user information is crucial. Data protection
protocols must be in place to safeguard sensitive information from breaches or unauthorized access.

Usability: The platform should offer an intuitive and user-friendly interface to ensure that users of all
technical levels can navigate and use the site effectively

Device Compatibility: Harmony Home must be compatible with various devices, including desktops,
tablets, and smartphones, to provide a consistent user experience across different platforms.

Accessibility: The website should be accessible to users with disabilities, adhering to web accessibility
standards to ensure inclusivity.

7
Scalability and Performance: The system should be designed to handle increasing numbers of users and
property listings efficiently, maintaining high performance and responsiveness as the platform grows.

2.1.4 Assumptions and Dependencies


Harmony Home operates under several assumptions and dependencies that impact its development and
deployment:

1. Assumptions:

 User Device Availability: It is assumed that users have access to devices such as desktops, tablets,
or smartphones to interact with the platform.
 User Device Compatibility: The platform is designed assuming that users' devices meet the basic
requirements for running modern web browsers.
 User Familiarity: Users are expected to have a basic level of familiarity with web navigation and
online transactions.
 Trust in Platform Security: It is assumed that users trust the platform's security measures and data
protection protocols to safeguard their information.
 Adequate Network Connectivity: The platform assumes that users have reliable internet
connectivity to access and use the website effectively.

2. Dependencies:

 Backend Infrastructure: The platform depends on a robust backend infrastructure to handle data
storage, processing, and management effectively.
 Security Measures: Effective security measures are necessary to protect user data and ensure the
integrity of the platform.
 User Authentication Systems: Reliable authentication systems are needed to verify user identities
and secure access to their accounts.
 Compliance with Regulations: The platform must comply with relevant real estate and data
protection regulations to ensure legal and operational compliance.

8
2.2 System Features
Harmony Home offers a range of functionalities designed to facilitate seamless property transactions
between buyers and sellers. The system features include:

2.2.1 System Feature 1:


User Registration: Users can create accounts by providing essential details such as name, email address, and
password. The registration process includes validation and security measures to protect user information.

User Authentication: Users can securely log in using their registered credentials. Enhanced security is
provided through mechanisms like email verification and two-factor authentication.

Property Listings: Sellers can create and manage property listings, including detailed descriptions, images,
and contact information. Buyers can view and browse these listings to find properties of interest.

Search and Filtering: The platform provides an intuitive interface for buyers to search for properties based
on various criteria such as location, price, and property type. Filters help narrow down search results to meet
specific needs.

Direct Communication: Buyers can contact sellers directly through the contact details provided in each
listing, facilitating efficient communication and negotiations.

Real-time Updates: The platform offers real-time updates on new property listings and changes to existing
listings, ensuring users have access to the most current information.

Results Display: When applicable, the platform displays information about property transactions and
interactions in a clear and accessible manner.

Security and Data Integrity: Robust security measures are implemented to protect user data and ensure the
integrity of transactions. This includes encryption for data transmission and storage, as well as protection
against unauthorized access.

2.2.2 System Feature 2:


User Registration

Authentication and Security

Property Listings

Search and Filtering

Direct Communication

Real-time Updates
9
Results Display

Security and Data Integrity

2.3 External Interface Requirements


Harmony Home provides quick email-based registration and login, efficient property listing displays, and
search functions. Buyers can contact sellers directly, and the platform offers real-time updates on listings.
Results from transactions and interactions are presented clearly.

2.3.1 User Interfaces


Login Option:

Register Option:

10
Filters Option:

Contact us

11
About us

FAQ

12
Seller Post property

2.3.2 Hardware Interfaces

The hardware interfaces for the Harmony Homes real estate website focus on the devices and components
through which users interact with the platform. The primary hardware interfaces include:

13
Mobile Devices (Smartphones and Tablets): Users access the website via touchscreens and virtual
keyboards. The site must be compatible with Android and iOS operating systems and optimized for mobile
browsers.

Desktops and Laptops: Users interact using physical keyboards and mice or touchpads. The site should be
compatible with Windows, macOS, and Linux, and optimized for major desktop web browsers.

2.3.3 Software Interfaces

HTM

CSS

JavaScript

Php

MySQL

2.3.4 Communications Interfaces


HTTP/HTTPS: The Harmony Homes website communicates with users' web browsers over HTTP/HTTPS
for secure data exchange and presentation of web pages. HTTPS ensures that user interactions and data
transmissions are encrypted and secure.

SMTP: The system uses the Simple Mail Transfer Protocol (SMTP) to send email notifications to users.
This includes registration confirmations, contact responses, and updates related to property inquiries and
interactions.

2.4 Other Nonfunctional Requirements


Non-functional requirements define how well the Harmony Homes website should perform rather than what
it should do. These requirements are critical as they directly impact the user experience and the overall
success of the website. Properly addressing these non-functional requirements is essential for building a
secure, reliable, and efficient real estate platform.

14
2.4.1 Performance Requirements
Performance requirements ensure that the Harmony Homes website operates smoothly and efficiently. Key
aspects include:

Response Time: The website should provide fast loading times for property listings and user interactions to
enhance user satisfaction.

Scalability: The site must handle high user loads, especially during peak times, without significant
degradation in performance.

Responsiveness: The website should be responsive and perform well across various devices and screen
sizes, including smartphones, tablets, and desktops.

2.4.2 Safety Requirements


Safety requirements are crucial to maintaining the integrity and confidentiality of user interactions on the
Harmony Homes website. Key considerations include:

Data Privacy: Protecting user information and ensuring that personal data is kept confidential and used only
for its intended purpose.

Integrity: Ensuring that property listings and user data are accurate and not subject to unauthorized
modifications or tampering.

2.4.3 Security Requirements


Security requirements are essential to protect the Harmony Homes website from unauthorized access, data
breaches, and other threats. Key security measures include:

Authentication: Implementing secure login processes to ensure that only authorized users can access their
accounts and sensitive features.

Data Encryption: Using encryption protocols to secure data transmission between users and the server,
safeguarding against interception and unauthorized access.

Vulnerability Management: Regularly updating and patching the website to protect against known security
vulnerabilities and threats.

Chapter No 3: Analysis (use case model)


3.1 Identifying Actors and Use Cases using Textual Analysis

15
3.2 Forming Use Case Diagram with Candidate Actors and Use Cases

16
Chapter No 4: Design

4.1 Architecture Diagram


An architecture diagram provides a visual representation of the high-level structure, components, and
interactions of the Harmony Homes website. It offers an overview of how various elements of the system
are organized and work together to fulfill the website's objectives. This diagram outlines the key
components, such as the web server, MySQL database, and user interface, and shows how they interact to
handle user requests and manage data. It also illustrates the integration of external services, like email
notifications via SMTP, into the system. Architecture diagrams are crucial for effectively communicating
the design of the Harmony Homes website to stakeholders, developers, and team members, ensuring a clear
and shared understanding of the system’s structure and functionality.

17
4.2 ERD with Data Dictionary
An entity relationship diagram (ERD), also known as an entity relationship model, is

a graphical representation that depicts relationships among people, objects, places,

concepts or events within an information technology (IT) system.

18
4.3 Data Flow Diagram (Level 0 and Level 1)
A Data Flow Diagram (DFD) illustrates the flow of information through a system, including data inputs and
outputs, data stores, and sub-processes. It uses standardized symbols and notation to depict various entities
and their interactions.

 Zero Level DFD

The Level 0 DFD, also known as the Context Diagram, provides a high-level overview of the Harmony
Homes website. It represents the entire system as a single process, showing its interactions with external
entities. The diagram offers an at-a-glance view of how the Harmony Homes website interfaces with external
users and systems

19
 First Level DFD

The First Level DFD (Level 1) provides a detailed view of the Harmony Homes website by breaking down
the high-level process from the Context Diagram (Level 0) into its main sub-processes. It offers an "exploded
view" of the system, showing how various components and interactions contribute to the overall
functionality.

20
4.4 Class Diagram
A class diagram is a visual representation used in software engineering to illustrate the structure of the
Harmony Homes website. It depicts the system's classes, their attributes, methods, and the relationships
between these classes. As part of the Unified Modeling Language (UML), class diagrams provide a
standardized way to design and document the software system.

21
4.5 Object Diagram
Object diagrams are derived from class diagrams so object diagrams are dependent upon classdiagrams.
Object diagrams represent an instance of a class diagram. The basic concepts are similar for class diagrams
and object diagrams. Object diagrams also represent the static view of a system but this static view is a
snapshot of the system at a particular moment. Object diagrams are used to render a set of objects and their
relationships as an instant

22
4.6 Sequence Diagram
A sequence diagram is a type of interaction diagram because it describes how and in what

order a group of objects works together. These diagrams are used by software developers and

business professionals to understand requirements for a new system or to document an existing

process.

23
4.7 Activity Diagram
Activity diagram is another important diagram in UML to describe the dynamic aspects of the system.
Activity diagram is basically a flowchart to represent the flow from one activity to another activity. The
activity can be described as an operation of the system. The control flow is drawn from one operation to
another.

24
4.8 Collaboration Diagram
A collaboration diagram, also known as a communication diagram, is an illustration of the relationships and
interactions among software objects in the Unified Modeling Language (UML). These diagrams can be used
to portray the dynamic behavior of a particular use case and define the role of each object.

25
4.9 State Transition Diagram
State-transition diagrams visually represent an object's behavior, showing its states, transitions (triggered by
events), conditions (guards), and actions. They're used to model and understand complex object behaviors
in software systems.

26
Chapter 5: Implementation

This report focuses on the design and implementation of the Online Voting system. It deals with the complete
processes on building and implementing it implementing an online voting application involves creating a
digital platform that allows eligible voters to cast their votes electronically, while ensuring security, privacy,
and accuracy.

5.1 Component Diagram


A component diagram, also known as a UML component diagram, depicts the organization and wiring of
the physical components in a system. Component diagrams are often used to model implementation details
and ensure that all aspects of the system's required functions are covered by planned development.

27
5.2 Deployment Diagram
Deployment diagrams are a type of UML diagram that illustrate the physical layout of a system's hardware
and software components. They provide a static view of the system's deployment by showing how different
software components are hosted on various hardware nodes. These diagrams help in understanding the
architecture of a system by depicting the relationships and interactions between the nodes where the software
is installed.

28
5.3 Database Architecture (1- Tire, 2-Tire, 3- Tire Architecture )
A Database Architecture is a representation of DBMS design. It helps to design, develop, implement, and
maintain the database management system. A DBMS architecture allows dividing the database system into
individual components that can be independently modified, changed, replaced, and altered. It also helps to
understand the components of a database. A database stores critical information and helps access data
quickly and securely. Therefore, selecting the correct Architecture of DBMS helps in easy and efficient data
management.

Types of DBMS Architecture

 1-Tier Architecture

 2-Tier Architecture

 3-Tier Architecture

Tier Architecture

1 Tier Architecture in DBMS is the simplest architecture of database in which the client,

29
server, and database all reside on the same machine. A simple one tier architecture example
would be anytime you install a database in your system and access it to practice SQL queries.
But such architecture is rarely used in production.

Tier Architecture

A 2 Tier Architecture in DBMS is a Database architecture where the presentation layer


runs on a client (PC, Mobile, Tablet, etc.), and data is stored on a server called the second
tier. Two tier architecture provides added security to the DBMS as it is not exposed to the
end-user directly. It also provides direct and faster communication.

Diagram

Tier Architecture
A 3 Tier Architecture in DBMS is the most popular client server architecture in DBMS in which
the development and maintenance of functional processes, logic, data access, data storage, and
user interface is done independently as separate modules. Three Tier architecture contains a
presentation layer, an application layer, and a database server.

3-Tier database Architecture design is an extension of the 2-tier client-server architecture. A

3-tier architecture has the following layers:

1. Presentation layer (your PC, Tablet, Mobile, etc.)

2. Application layer (server)

3. Database Serve

30
Chapter 6: Testing (Software Quality Attributes)

The system testing for our Harmony Homes website aimed to identify defects by subjecting the website to
various test inputs and observing its behavior. This process involved two levels of testing: Functional
Testing, which verified that all features such as property listings and search functionality operated as
intended, and Performance Testing, which assessed the website’s responsiveness and ability to handle high
traffic. Based on these observations, we determined whether the website met the expected standards for
performance and functionality. Our project went through two level of testing.

 Unit Testing

 Integration Testing

Unit Testing

31
Unit Testing for our Harmony Homes website involves testing individual components of the site to ensure
they function correctly. This type of testing focuses on verifying that each part of the website—such as the
property listing module, search functionality, and user authentication—works as intended. Conducted during
the development phase, Unit Testing isolates sections of code to validate their performance. Although
typically performed by developers, in practice, QA engineers may also conduct Unit Testing due to time
constraints or developer reluctance. Unit Testing is a crucial initial step before integration testing in the
software development lifecycle (SDLC) and follows the White Box testing technique.

Integration Testing

INTEGRATION TESTING is defined as a type of testing where software modules are integrated
logically and tested as a group. A typical software project consists of multiple software modules, coded
by different programmers. The purpose of this level of testing is toexpose defects in the interaction
between these software modules when they are integrated Integration Testing focuses on checking data
communication amongst these modules. Henceit is also termed as ‘I & T’ (Integration and Testing),
‘String Testing’ and sometimes ‘Thread Testing’.

6.1 Test Case Specification


The test plan outlines the overall strategy for testing the Harmony Homes website project, detailing how
testing will be conducted, which components will be tested, and the approaches and tools to be used during
different testing stages. It does not, however, cover the specifics of unit testing or specify individual test

Test case specification is handled separately for each unit. Based on the approach defined in the test plan,
the features to be tested for each unit are identified. The general strategy from the test plan is then refined
into specific testing techniques and evaluation criteria. Test cases are created based on these refined
techniques and criteria to thoroughly test each unit of the website.

6.2 Black box test case

Black Box Testing is a software testing method in which the functionalities of software
applications are tested without having knowledge of internal code structure, implementation
details and internal paths. Black Box Testing mainly focuses on input and output of software
applications and it is entirely based on software requirements and specifications. It is also
known as Behavioral Testing.
32
The above Black-Box can be any software system you want to test. For Example, an operating system like
Windows, a website like Google, a database like Oracle or even yourown custom application. Under Black
Box Testing, you can test these applications by just focusing on the inputs and outputs without knowing their
internal code implementation

6.2.1 BVA or Boundary value Analysis


Boundary Value Analysis (BVA) is a Black Box Test Design Technique that focuses on identifying errors
at the edges of input domains, rather than within the center. The core idea is to test the program’s behavior
at the boundaries of input ranges. This involves selecting input values at key points: the minimum, just above
the minimum, just below the minimum, a nominal value, just below the maximum, the maximum, and just
above the maximum. Each range has two boundaries: the lower boundary (start of the range) and the upper
boundary (end of the range). Test cases should be designed to evaluate the program's functionality at these
boundaries, as well as with values just inside and outside these limits. Boundary Value Analysis is also
relevant in stress and negative testing scenarios.

6.2.2 Equivalence class partitioning


Equivalence Partitioning, also known as Equivalence Class Partitioning, is a method used to streamline
testing by dividing input data into different equivalence classes, typically categorized as 'Valid' and 'Invalid'.
This technique involves grouping inputs that are expected to produce similar behavior, which helps in
reducing the number of test cases to a manageable set while still covering a broad range of possibilities. By
testing representative values from each equivalence class, this method ensures that the system's response is
adequately evaluated without the need for exhaustive testing.

33
6.2.3 State transition testing
State Transition Testing is used to evaluate how the real estate website changes states in response to different
inputs. This black box testing technique examines the system's behavior as inputs are varied, observing how
state transitions occur.

In this testing, both positive and negative inputs are used to ensure the website behaves correctly under
different conditions. The key transitions observed include:

 Search Mode: When this mode is activated, the search functionality changes from a general search
to a property-specific search.
 Reset: When the reset mode is activated during a property search or listing, it clears all search
parameters or listings and returns to the default state.
 Listing Creation: When this mode is activated, the display changes from a property search view to
a property listing creation view.
 Listing Update: When this mode is activated, the display changes from a property search or listing
view to an updated listing view.

State Transition Diagram

A State Transition Diagram for our real estate website illustrates how the system's state changes in response
to different inputs. The diagram consists of four main components:

1. States: Represent the various conditions or modes the website can be in, such as the property
search view, listing creation view, and user profile view.
2. Transitions: Show the movement from one state to another based on user interactions or
system events, such as moving from the search view to the property details page.
3. Events: Trigger the state transitions, such as clicking a "Search" button, submitting a property
listing, or updating user profile information.
4. Actions: Define the activities that occur during or as a result of a state transition, such as
displaying search results, saving a new property listing, or updating user information.

6.2.3 Decision table testing


A Decision Table is a tabular representation of inputs versus rules/cases/test conditions. It isa
very effective tool used for both complex software testing and requirements management.
Decision table helps to check all possible combinations of conditions for testing and testers

34
can also identify missed conditions easily. The conditions are indicated as True (T) and False

(F) values.

6.2.4 Graph base testing

The first step in black-box testing is to understand the objects that are modeled in software
and the relationships that connect these objects. Once this has been accomplished, the next
step is to define a series of tests that verify all objects have the expected relationship to one
another. Stated in another way, software testing begins by creating a graph of important
objects and their relationships and then devising a series of tests that will cover the graph so
that each object and relationship is exercised and errors are uncovered.

To accomplish these steps, the software engineer begins by creating a graph a collection of
nodes that represent objects; links that represent the relationships between objects; node
weights that describe the properties of node (e.g., a specific data value or state behavior); and
link weight that describe some characteristic of a link.

6.3 White box testing

White Box Testing is software testing technique in which internal structure, design and coding
of software are tested to verify flow of input-output and to improve design, usability and
security. In white box testing, code is visible to testers so it is also called Clear box testing,
Open box testing, Transparent box testing, Code-based testing and Glass box testing. It is one
of two parts of the Box Testing approach to software testing. Its counterpart, Black box testing,
involves testing from an external or end-user type perspective. On the other hand,White box
testing in software engineering is based on the inner workings of an application and revolves
around internal testing.

35
6.3.1 Statement coverage

Statement Coverage is a white box testing technique in which all the executable statements
in the source code are executed at least once. It is used for calculation of the number of
statements in source code which have been executed. The main purpose of Statement
Coverage is to cover all the possible paths, lines and statements in source code.

Statement coverage is used to derive scenario based upon the structure of the code under test.

. In White Box Testing, the tester is concentrating on how the software works. In other words,
the tester will be concentrating on the internal working of source code concerning control flow
graphs or flow charts.

Generally in any software, if we look at the source code, there will be a wide variety of
elements like operators, functions, looping, exceptional handlers, etc. Based on the input to
the program, some of the code statements may not be executed. The goal of Statement
coverage is to cover all the possible paths, line, and statement in the code.

6.3.2 Branch coverage

Branch Coverage is a white box testing method in which every outcome from
a codemodule(statement or loop) is tested. The purpose of branch coverage is to
ensure that each decision condition from every branch is executed at least once.
It helps to measure fractions of independent code segments and to find out
sections having no branches.

6.3.3 Path coverage

Path testing is a structural testing method that involves using the source code of a program in
order to find every possible executable path. It helps to determine all faults lying within a pieceof
36
code. This method is designed to execute all or selected path through a computer program.

Any software program includes, multiple entry and exit points. Testing each of these points is a
challenging as well as time-consuming. In order to reduce the redundant tests and to achieve
maximum test coverage, basis path testing is used.

The way that path coverage testing works is that the testers must look at each individual line of
code that plays a role in a module and, for complete coverage, the testers must look at each
possible scenario, so that all lines of code are covered. In a very basic example, consider a code
function that takes in a variable "x" and returns one of two results: if x is greater than 5, the
program will return the result "A" and if x is less thanor equal to 5, the program will return the
result "B."

The code for the program would look something like this:

input x

if x > 5 then
return A
else return B

In order for path coverage testing to effectively "cover all paths," the two test cases must be
run, with x greater than 5 and x less than or equal to 5.

Obviously, this method becomes much more complicated with more complex modules of
code. Experts generally consider path coverage testing to be a type of white box testing,
which actually inspects the internal code of a program, rather just relying on external inputs
and strategies that are considered black box testing, which do not consider internal code.

Chapter 7: Tools and Technologies

7.1 Programming Language

HTML

CSS

JavaScript

PHP

MySQL

37
In Harmony Homes, my tech stack involves HTML, CSS, JavaScript, PHP, and MySQL, each playing a
crucial role in creating a dynamic and functional real estate website.

HTML (HyperText Markup Language) forms the backbone of your website, structuring the content and
layout. It allows you to define various elements like headings, paragraphs, images, and forms. For Harmony
Homes, HTML will be used to build pages that showcase property listings, user registration forms, and
detailed property information. This foundational structure enables users to interact with your website
effectively.

CSS (Cascading Style Sheets) enhances the visual appeal and layout of your site. By applying CSS, you
can control the presentation aspects such as colors, fonts, and spacing, ensuring that Harmony Homes not
only functions well but also provides an attractive and user-friendly experience. CSS will be crucial in
making the site responsive, meaning it will look and work well on devices of all sizes, from desktops to
smartphones.

JavaScript adds interactivity and dynamic features to your site. It enables you to implement functionalities
like interactive property search filters, image sliders, and dynamic content updates without requiring a page
reload. For instance, JavaScript can be used to create real-time property search results and manage user
interactions seamlessly.

PHP (Hypertext Preprocessor) is your server-side scripting language, responsible for processing user
inputs and interacting with the MySQL database. PHP will handle tasks such as processing form
submissions, managing user registrations, and querying the database for property listings. It enables the
dynamic generation of web content based on user actions and ensures that data is handled securely and
efficiently.

MySQL serves as the relational database management system for storing and managing your data. It will be
used to organize and retrieve information about properties, users, and other relevant data. PHP scripts will
interact with MySQL to perform operations such as searching for properties, updating listings, and managing
user information. This robust database system ensures that your website can handle large amounts of data
and provide fast, reliable access.

7.2 Operating Environment

38
Visual Studio Code (VS Code)

Visual Studio Code is the integrated development environment (IDE) you use for the Harmony Homes
website project. It offers a comprehensive suite of tools designed to streamline web development tasks.
Below are some key details about VS Code and its features relevant to your project:

IDE Purpose:

Visual Studio Code is tailored for a wide range of development tasks, including web development, which
makes it suitable for building and maintaining the Harmony Homes website. It supports coding in multiple
languages, such as HTML, CSS, JavaScript, PHP, and MySQL.

Features:

 Code Editing: Provides intelligent code completion, syntax highlighting, and code snippets,
enhancing productivity and accuracy in coding.

 Integrated Terminal: Allows you to run command-line tools and scripts directly within the IDE,
streamlining the development workflow.

 Version Control: Built-in support for Git integration helps in managing your codebase efficiently.
You can perform version control operations like commits, pushes, and pulls directly from VS Code.

 Extensions: A vast marketplace of extensions enhances functionality, including tools for linting,
formatting, debugging, and integration with other services.

 Debugger: Offers a powerful debugging tool for setting breakpoints, inspecting variables, and
stepping through code to troubleshoot issues.

 Live Server: Provides a live preview of your website as you make changes, which is particularly
useful for real-time feedback during development.

 Emmet: Facilitates faster HTML and CSS coding with shorthand syntax expansion.

Language Support:

VS Code supports various programming languages used in web development, including:

 HTML/CSS: For designing and styling web pages.

 JavaScript: For adding interactivity and dynamic behavior to your website.

 PHP: For server-side scripting and dynamic content management.

 MySQL: Integration through extensions allows for database management and queries directly from
the IDE.

39
User Interface (UI):

Visual Studio Code features a user-friendly interface with multiple panels for code editing, file navigation,
and terminal access. It provides a customizable workspace to fit different development needs.

Extensions and Customization:

VS Code’s extension marketplace allows you to tailor your development environment with additional tools
and features, such as:

 Prettier: For code formatting.

 ESLint: For JavaScript code linting.

 PHP Intelephense: For enhanced PHP language support.

Updates and Community:

Visual Studio Code is regularly updated with new features, improvements, and bug fixes. It has a strong
developer community and extensive documentation, making it a robust choice for web development.

Free and Official:

Visual Studio Code is freely available for download from the official website and is supported on Windows,
macOS, and Linux platforms.

System Requirements:

VS Code runs on modern computers with adequate processing power and memory. It is lightweight and
efficient, suitable for development across different operating systems.

Visual Studio Code provides a versatile and powerful environment for developing the Harmony Homes
website, facilitating a streamlined and productive web development process.

7.3 Appendix B: Source Code

Code

40

You might also like