0% found this document useful (0 votes)
2 views91 pages

Unit 3 - UID, Coding and Testing

The document discusses User Interface (UI) design, emphasizing its importance in facilitating user interaction with digital products through elements like buttons and menus. It outlines key concepts such as simplicity, consistency, and accessibility, as well as various UI types like GUI and voice interfaces. Additionally, it covers coding standards, software testing methodologies, and the significance of test cases in ensuring software quality and functionality.

Uploaded by

bekruthi999
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)
2 views91 pages

Unit 3 - UID, Coding and Testing

The document discusses User Interface (UI) design, emphasizing its importance in facilitating user interaction with digital products through elements like buttons and menus. It outlines key concepts such as simplicity, consistency, and accessibility, as well as various UI types like GUI and voice interfaces. Additionally, it covers coding standards, software testing methodologies, and the significance of test cases in ensuring software quality and functionality.

Uploaded by

bekruthi999
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

User interface design

Introduction
• User Interface (UI) defines the way humans interact with the
information systems.
• In Layman’s terms, User Interface (UI) is a series of pages,
screens, buttons, forms, and other visual elements that are used
to interact with the device.
• Every app and every website has a user interface.
• User Interface (UI) Design is the creation of graphics,
illustrations, and the use of photographic artwork and
typography to enhance the display and layout of a digital
product within its various device views.
• Interface elements consist of input controls (buttons, drop-down
menus, data fields), navigational components (search fields,
slider, icons, tags), and informational components (progress
bars, notifications, message boxes).
Basic concepts of user interface design
• User interface (UI) design is the process of creating interfaces for
machines and software that are easy and efficient for users to
interact with.
Some basic concepts of UI design include:
• Simplicity: Keep interfaces simple and only include elements that
help users accomplish their goals.
• Consistency: Use common elements to make the UI predictable
and easy to navigate.
• Control: Put the user in control of the interface.
• Comfortability: Make interacting with the product an effortless
and comfortable experience.
• Cognitive load: Be mindful of bombarding users with content and
be as clear and concise as possible.
• Accessibility: Design for all users, including those with visual,
mobility, or hearing impairments.
• Hierarchy and readability: Use proper alignment, color,
brightness, and contrast to draw attention to key features.
• Invisibility: Great UI goes unnoticed, allowing users to
navigate a site or app without getting confused.
• Form follows function: Make buttons and other common
elements perform predictably so users can unconsciously
use them.
• Format content to fit the screen: Format content so users
don't need to zoom or scroll horizontally to view the entire
page.
• Align fields effectively: Left-justify edit fields and right-
justify the corresponding labels.
• Use informational components: Use message boxes,
notifications, and progress bars to communicate useful
information to the user.
Types of User Interfaces
• There are several types of User Interface (UI) depending upon the
interaction between users and computers or electronic devices in
different ways.
• Some common types of User Interface(UI) are:
• GUI (Graphical User Interface): Visual user interface output (keyboard
and monitor) with a tactile user interface input.
• Menu Driven Interface: An UI that uses a menu of options to navigate a
program or website is known as a menu-driven UI. For instance, ATMs
have user interfaces that are menu-driven and simple to use.
• Form Based Interface: Form-based user interfaces provide a small
number of options for users to choose from when entering data into a
program or application. For instance, a device’s settings menu is form-
based.
• Touch user interface: Haptic or tactile user interface. Haptic input is used
by most smartphones, tablets, and other devices with touch screens.
• Voice user interface: Auditory commands are used to communicate
between humans and machines. GPS, talk-to-text gadgets, and virtual
assistants are a few examples.
Importance of UI Design
• How you present your product matters the most. The
presentation (the interface) of a badly designed application or
website can drive away the incoming users and leave a bad
impression on them. Navigation through a site can be made
efficient and simple by effective UI design.
• Great design is great business The color scheme, layout, graphics,
tab and button placement, typography usage and other design
elements determine how well the site/app communicates visually
with the user.
• At a given time, finding right thing at right place is essential
Consistent navigation that is equally easy to locate and browse
through is basic need of any app/website. If navigation is complex
for a user to work, there is no way he would want to work on that
site/app.
Example of UI Design
As the User Interface can make or break the
incoming users, it’s important to take care of
below points when designing a UI:

• Keep the interface simple


• Be consistent and use common UI elements
• Placement of items
• Use of right color
• Anticipate
Advantages of UI Design
• No need to learn complex commands/languages for working with
UI.
• Easiness for non-technical people. A beginner can navigate
through a site with ease if its simple and well informative.
• Usage of blocks and typography makes user experience better.
• Easy setup and ready to start working are awesome. Hiding the
complexity of actions from the user and display only the required
information is key to good interface.
Disadvantages of UI Design

• When not properly built, it can be very difficult to work with.


• Takes time to built a Perfect UI Design.
• May lack customization options
Coding and Testing
Coding Standards and Guidelines

A set of best practices and guidelines that ensure code is consistent,

readable, and maintainable. They can help improve code quality,

reduce errors, and make it easier for other developers to understand

and maintain the codebase.


Coding Standards and Guidelines
• Good software development organizations want their programmers to maintain

to some well-defined and standard style of coding called coding standards.

• They usually make their own coding standards and guidelines depending on what

suits their organization best and based on the types of software they develop.

• It is very important for the programmers to maintain the coding standards

otherwise the code will be rejected during code review.


Purpose of Having Coding Standards :
• A coding standard gives a uniform appearance to the codes written by
different engineers.
• It improves readability, and maintainability of the code and it reduces
complexity also.
• It helps in code reuse and helps to detect errors easily.
• It promotes sound programming practices and increases the
efficiency of the programmers.
Coding Standards in Software Engineering
• Standard headers for different modules
• Indentation
• Error return values and exception handling conventions
Code Review

In the software development life cycle, code reviews are a stage where
programmers carefully verify each other’s code for errors, odd
formatting, or discrepancies with system requirements that could cause
more severe issues during software integration. It is the systematic
study of computer source code, sometimes known as peer review.
Advantages of Code Review
• Improvement of code quality

• Promotes Knowledge Transfer

• Supports teams in improving documentation

• It simplifies QA testing
Code Walkthrough
• A code walkthrough is a peer review process that helps identify issues in
software code before it's released.
Purpose:
• A code walkthrough helps identify issues like design flaws, errors, and
algorithmic problems. It also allows the code author to compare their code
to the architecture specification.
How it works
• The code author leads a meeting where other team members review the
code. The author may provide a copy of the code to some team members
before the meeting. During the meeting, the attendees run test cases
against the code and ask questions. They then share their results and
discuss them with the author.
Benefits
• A code walkthrough allows a fresh set of eyes to review the code. It also
helps the development team see problems that they're too familiar with
the code.
Code Inspection

• Code inspection is a type of Static testing that aims to review the


software code and examine for any errors.
Advantages of Code Inspections
• It is done to enhance the software quality.
• It identifies bugs in the software code.
• It suggests various process improvements in the project.
• Educates the team how to leverage from past mistakes.
• It detects inefficiency in the code and project.
Cleanroom Testing

• Cleanroom Testing was pioneered by IBM. This kind of testing

depends heavily on walkthroughs, inspection, and formal verification.


Objectives of Cleanroom Testing
• Defect Prevention

• Verification and Validation

• Improvement and Control of Processes

• Customer satisfaction

• Cost-Effective Quality Assurance


Software testing
• Software testing is an important process in the software development
lifecycle.
• It involves verifying and validating that a software application is free
of bugs, meets the technical requirements set by its design and
development, and satisfies user requirements efficiently and
effectively.
• This process ensures that the application can handle all exceptional
and boundary cases, providing a robust and reliable user experience.
• By systematically identifying and fixing issues, software testing helps
deliver high-quality software that performs as expected in various
scenarios.
What is the purpose of Software
testing?
• Software testing ensures that the software program meets
users' needs.
• It ensures that the software operates as designed.
• It ensures that the software maintains peak performance under
varying testing conditions.
• It ensures that the final product has minimal errors.
• It ensures that applications conform to specifications.
• It ensures increased dependability.
• It ensures increased usefulness.
• It guarantees high-end quality.
Types of Software Testing :
[Link] Testing

[Link] Testing
Manual Testing
• Manual testing is a technique to test the software that is carried out
using the functions and features of an application.
• In manual software testing, a tester carries out tests on the software
by following a set of predefined test cases.
• In this testing, testers make test cases for the codes, test the
software, and give the final report about that software.
• Manual testing is time-consuming because it is done by humans, and
there is a chance of human errors.
Advantages of Manual Testing
• Fast and accurate visual feedback: It detects almost every bug in the
software application and is used to test the dynamically changing GUI
designs like layout, text, etc.
• Less expensive: It is less expensive as it does not require any high-
level skill or a specific type of tool.
• No coding is required: No programming knowledge is required while
using the black box testing method. It is easy to learn for the new
testers.
• Efficient for unplanned changes: Manual testing is suitable in case of
unplanned changes to the application, as it can be adopted easily.
Automation Testing
• Automated Testing is a technique where the Tester writes scripts on
their own and uses suitable Software or Automation Tool to test the
software.

• It is an Automation Process of a Manual Process.

• It allows for executing repetitive tasks without the intervention of a


Manual Tester.
Advantages of Automation Testing:
• Simplifies Test Case Execution: Automation testing can be left virtually
unattended and thus it allows monitoring of the results at the end of the
process. Thus, simplifying the overall test execution and increasing the
efficiency of the application.
• Improves Reliability of Tests: Automation testing ensures that there is equal
focus on all the areas of the testing, thus ensuring the best quality end
product.
• Increases amount of test coverage: Using automation testing, more test
cases can be created and executed for the application under test. Thus,
resulting in higher test coverage and the detection of more bugs. This
allows for the testing of more complex applications and more features can
be tested.
• Minimizing Human Interaction: In automation testing, everything is
automated from test case creation to execution thus there are no changes
for human error due to neglect. This reduces the necessity for fixing
glitches in the post-release phase.
Types of Manual Testing
[Link] Box Testing

[Link] Box Testing

[Link] Box Testing


White Box Testing

• White box testing techniques analyze the internal structures the used
data structures, internal design, code structure, and the working of
the software rather than just the functionality as in black box testing.

• It is also called glass box testing clear box testing or structural testing.

• White Box Testing is also known as transparent testing or open box


testing.
Advantages of White box Testing:
• Thorough Testing: White box testing is thorough as the entire code
and structures are tested.
• Code Optimization: It results in the optimization of code removing
errors and helps in removing extra lines of code.
• Early Detection of Defects: It can start at an earlier stage as it doesn’t
require any interface as in the case of black box testing.
• Integration with SDLC: White box testing can be easily started in the
Software Development Life Cycle.
• Detection of Complex Defects: Testers can identify defects that cannot
be detected through other testing techniques.
Black Box Testing

• Black-box testing is a type of software testing in which the tester is

not concerned with the internal knowledge or implementation details

of the software but rather focuses on validating the functionality

based on the provided specifications or requirements.


Advantages of Black Box Testing:
• The tester does not need to have more functional knowledge or
programming skills to implement the Black Box Testing.

• It is efficient for implementing the tests in the larger system.

• Tests are executed from the user’s or client’s point of view.

• Test cases are easily reproducible.


Gray Box Testing
• Gray Box Testing is a software testing technique that is a combination
of the Black Box Testing technique and the White Box Testing
technique.
• In the Black Box Testing technique, the tester is unaware of the
internal structure of the item being tested and in White Box Testing
the internal structure is known to the tester.
• The internal structure is partially known in Gray Box Testing.
• This includes access to internal data structures and algorithms to
design the test cases.
Advantages of Gray Box Testing:
• Clarity of goals: Users and developers have clear goals while doing
testing.
• Done from a user perspective: Gray box testing is mostly done from
the user perspective.
• High programming skills not required: Testers are not required to
have high programming skills for this testing.
• Improved product quality: Overall quality of the product is improved.
Testing Activities
• Test planning
• Test monitoring and control
• Test analysis
• Test Design
• Test Implementation
• Test Execution
• Test Completion
Test planning :
Define the testing objectives, Choose test techniques and tasks, Create a test
schedule, and Prioritize testing activities.

Test execution :
Carry out planned test cases, Compare expected and actual results, and
Perform testing manually or automatically.

Design Focus :
It depends on design specifications, Review design specifications, Create test
cases, and Create test data.

Implementation and execution :


Test the software application, Prioritize test cases, and Create test data.
Integration testing :
Check the flow of data between application components
Ensure that interactions between integrated units are error-free

Requirement analysis :
Learn more about the product
Understand how the product should be in its ideal state
Create a detailed requirements report

System testing :
Performed by test engineers after integration testing is done
Test Case In Software Testing:
• A test case in software testing is a set of steps that verifies if an
application functions as expected. It defines the input data, expected
results, and steps to be performed.
Purpose :
• To ensure that the application functions correctly
• To determine if the application behaves as expected under specific
circumstances
• To verify that different software components work together as
intended
• To verify that an application is safe to use
Why Design Test Cases?

• Designing test cases is crucial in software development because it helps

ensure thorough testing by systematically covering various input scenarios,

identifying potential defects early in the development process, improving

code quality, facilitating documentation, and ultimately delivering a reliable

product to users by verifying that the system functions as intended across

different conditions.
Testing in the Large vs Testing in the Small

"Testing in the large" refers to testing a complete system or large, integrated


components of a software application, essentially looking at the overall
functionality and interactions between different parts, while "testing in the
small" focuses on testing individual, smaller units of code like functions or
modules in isolation to verify their specific behavior, usually done at a lower
level of details.
Code refactoring:
• Code refactoring is the process of restructuring existing computer code to
improve its design and structure, without changing its external
behavior(functionality) .
• The goal is to make the code easier to understand, maintain, and modify.
Why refactor?
• Readability: Refactoring makes code easier to read and understand, which can
speed up development.
• Maintainability: Refactoring makes code easier to maintain and modify.
How to refactor?
• Identify and address "code smells", such as duplicated code, long methods, and
frequent use of switch statements
• Apply a series of standardized, basic actions, sometimes known as micro-
refactorings
Unit Testing:
• Unit testing is a software testing process that verifies that isolated code
behaves as expected. It's also known as component or module testing.
• Isolated code is a code that is separated from the rest of an application.
This is a testing strategy that can help prevent data races and make code
easier to refactor.
How it works ?
• Developers write small pieces of code to test functions in the software
• These test codes are run automatically using special tools
• The tools tell us if any of the code doesn't pass the tests
Benefits :
• Helps find out if one part of the software depends too much on
another
• Helps ensure code quality
• Helps identify untested parts of the code
Types of unit testing
• White box testing: Tests the internal functionality of the software
• Black box testing: Validates the software's user interface, input, and
output
• Gray-box testing: A blend of white box and black box testing
Steps in unit testing :
• Understand the concept
• Set up the environment
• Write a unit test
• Run the tests
• Interpret results and refactor
Tools for unit testing :
• TestNG, a framework that simplifies
unit testing and integration testing.
• TestNG is one of the most widely used
open-source testing frameworks used
in the automation testing suite.
Equivalence Class Partitioning and Boundary
Value Analysis
• In black-box test suite design, "Equivalence Class Partitioning"
involves dividing input data into groups of similar values (partitions),
where each group is treated the same by the system, while
"Boundary Value Analysis" focuses on testing the extreme values at
the boundaries between these partitions, essentially checking if the
system handles edge cases correctly;
WhiteBox Testing - statement coverage,
branch coverage
Statement coverage:

• Ensures that every line of code is executed at least once

• Helps find unused statements, dead code, and missing statements

• Can be used to check the quality of code and the flow of different
paths in the program
• Branch coverage :

• Ensures that every possible outcome of the code's decision points are
tested
• Involves testing both the true and false outcomes of each decision
point (branch) in the code
• For example, in an "if-else" statement, there will be two test
conditions: one to validate the "true" branch, and the other to
validate the "false" branch
Multiple Condition Coverage and
Path Coverage
• "Multiple Condition Coverage" (MCC) refers to a software testing technique where
every possible combination of conditions within a decision statement is tested,
ensuring that all truth values of each condition are evaluated at least once; while "Path
Coverage" means executing every possible execution path through a program, testing
all sequences of branches within the code flow, from entry point to exit point.

• Multiple Condition Coverage is a software testing technique that ensures that all
possible combinations of conditions in a software program are tested.

• It is also known as MCC or Multiple Condition Decision Coverage (MCDC).


McCabe’s Cyclomatic Complexity Metric
• Cyclomatic complexity, developed by Thomas McCabe, is a metric that measures the
complexity of a program by counting its decision points.

• It measures the number of unique paths through the code, indicating how complex
the logic is.

• Lower complexity suggests simpler, more manageable code, reducing the chances of
errors and making it easier to maintain and modify.

• Essentially, it helps assess the code’s readability and risk associated with changes.

• Developers use cyclomatic complexity to identify areas of code that might need
refactoring to reduce complexity.
Data Flow-based Testing

• DFT is a software testing technique that focuses on the flow of data


within a program or system. It is primarily used to identify potential
issues related to the improper handling of data, such as variables
being use before they are initialized or data not being properly
updated.
Mutation testing

• Mutation testing is a software testing technique that involves making

small changes to a program and then running tests to see if the

changes are detected. It's also known as mutation analysis or

program mutation.
How it works
• Create a modified version of the program, called a mutant
• Run the test suite against the mutant
• If the test fails, the mutant is considered "killed"
• If the test doesn't fail, the mutant is considered "alive"
• Repeat the process for each mutant
Benefits
• Helps improve the quality of software tests
• Helps identify weaknesses in the test suite
• Helps identify areas of code that aren't adequately tested
• Helps design new software tests
Integration testing :
• Integration testing is a software testing process that verifies that multiple
parts of a software system work together as intended.
• It's also known as integration and testing (I&T).
System Testing:
• System testing is a type of software testing that evaluates a software system
as a whole. It's also known as end-to-end testing.
Integration testing focuses on verifying how individual components of a software

system interact with each other, while system testing evaluates the entire system as

a whole to ensure it meets all functional and non-functional requirements;

for example, in an online shopping cart, integration testing would check if the "add

to cart" function correctly communicates with the inventory database, while

system testing would check if a user can successfully complete a purchase from

browsing items to checkout, including payment processing and order confirmation

across different functionalities.


• Smoke testing:

• Smoke testing is a software testing process that verifies if a software


build is stable and functional.
• It's also known as confidence testing, build verification testing, or
shakeout testing.
• A realistic example would be a smoke test for an online shopping
platform.
• The test cases might include: Verifying user registration and login
processes. Checking the product catalog and search functionality.
• The term “smoke testing” is derived from the concept of “smoke and
mirrors,” which refers to focusing on basic functionality rather than
diving deep into all features and functionalities.
• Smoke tests evaluate whether an application or system’s critical
functionalities work as expected.

For example,
• Does the software start successfully?
• Is the user able to log in?
• Are the main features accessible?
Why You Need Smoke Tests?

• Bugs cost exponentially more when found in the later stages of the
software development lifecycle.
• Early detection of bugs saves time and effort and reduces the overall
development cost.
• Fixing a bug in the early stages of development is usually simpler and
less time-consuming than fixing a bug in later stages.
Performance Testing :
• Performance testing is a non-functional software testing technique
that determines how the stability, speed, scalability, and
responsiveness of an application holds up under a given workload.
• It is a testing technique carried out to determine system performance
in terms of sensitivity, reactivity, and stability under a particular
workload.
• Performance testing is a type of software testing that focuses on
evaluating the performance and scalability of a system or application.
• An example of a performance test is simulating a high volume of users
logging into an e-commerce platform during a sale.
Performance testing is also known as Perf Testing . The types of
Performance testing are as follows:
Why use performance testing?
• The objective of performance testing is to eliminate performance
congestion.
• It uncovers what needs to be improved before the product is launched in
the market.
• The objective of performance testing is to make software rapid.
• The objective of performance testing is to make software stable and
reliable.
• The objective of performance testing is to evaluate the performance and
scalability of a system or application under various loads and conditions.
• It helps identify bottlenecks, measure system performance, and ensure
that the system can handle the expected number of users or transactions.
• It also helps to ensure that the system is reliable, stable, and can handle
the expected load in a production environment.
Error Seeding

Defect seeding is a software testing technique that involves

intentionally introducing defects into a program to evaluate its

readiness for release. It's also known as error seeding, fault seeding, or

bebugging.
• The process works by adding the errors to the program code that one can
try to find & estimate the number of real errors in the code base with the
help of the number of seeded errors.
• In the error-seeding technique, a predefined number of artificial errors are
seeded in the program code.
• This technique target to detect errors in order to find out the ratio between
the real and artificial errors.
• In other words, some artificial errors are introduced into the program
artificially for determining the leftover errors in the program.
Some General Issues Associated with Testing
• Software testing can be challenging due to a variety of factors,
including unstable environments, changing requirements, and
communication issues.
• Challenges related to environment
Unstable environments
• Server crashes and frequent restarts can delay timelines and
compromise test results
Test environment duplication
• It can be difficult to duplicate test environments when software needs
to be tested in different environments
Challenges related to requirements
• Incomplete or changing requirements:
It can be difficult to understand requirements or know what needs to be
tested
• Ambiguous requirements:
Ambiguous or incomplete requirements can lead to misunderstandings and
missed test cases
Challenges related to communication
•Ineffective communication: Lack of communication can lead to poor insight
into risks and issues
•Inconsistent feedback from users: Different users may have different
expectations and requirements
Other challenges:

•Inadequate test coverage: Can lead to inefficient development cycles


and increased maintenance costs

•Test data management: Can be challenging, especially when dealing


with large volumes of data

•Cross-browser and cross-platform testing: Can be challenging to


ensure consistent functionality and user experience
Debugging techniques
What is Debugging ?
• Debugging is the process of finding and resolving defects or problems
within a computer program that prevent the correct operation of
computer software or a system.

Need for debugging :


• Once errors are known during a program code, it’s necessary to
initially establish the precise program statements liable for the errors
and so to repair them.
Debugging Approaches
Brute Force Method:

The brute force method is a problem-solving technique that involves


trying every possible solution until the correct one is found. It's also
known as exhaustive search or generate and test.
Examples of brute force:
Cracking passwords
Hackers use brute force to crack passwords, login credentials, and
encryption keys.
Backtracking:

“Backtracking" refers to a debugging technique where a tester


systematically revisits the steps taken by a user or program execution,
moving backwards from the point of error to identify the exact
sequence of actions that led to a bug, essentially retracing their path to
find the source of the problem; it's particularly useful when the cause
of a bug isn't immediately clear.
Automated debugging :
• Involves using automated tools and techniques to assist in the
debugging process

Cause elimination :
• Involves forming hypotheses about the potential causes of a bug
• Testing each hypothesis until the actual cause is identified
Software documentation:
• Software documentation is a written piece of text that is often
accompanied by a software program.
• This makes the life of all the members associated with the project
easier.
• It may contain anything from API documentation, build notes or just
help content.
• It is a very critical process in software development.
• For example, before the development of any software product
requirements are documented which is called Software Requirement
Specification (SRS). Requirement gathering is considered a stage of
Software Development Life Cycle (SDLC).

• Another example can be a user manual that a user refers to for


installing, using, and providing maintenance to the software
application/product.
Advantages of software documentation:
• The presence of documentation helps in keeping the track of all
aspects of an application and also improves the quality of the
software product.
• The main focus is based on the development, maintenance, and
knowledge transfer to other developers.
• Helps development teams during development.
• Helps end-users in using the product.
• Improves overall quality of software product
• It cuts down duplicative work.
• Makes easier to understand code.
• Helps in establishing internal coordination in work.
Disadvantages of software documentation :
• The documenting code is time-consuming.

• The software development process often takes place under time


pressure, due to which many times the documentation updates don’t
match the updated code.

• Documenting is not so fun, it’s sometimes boring to a certain extent.


Types Of Software Documentation:
• Requirement Documentation: It is the description of how the software
shall perform and which environment setup would be appropriate to have
the best out of it. These are generated while the software is under
development and is supplied to the tester groups too.
• Architectural Documentation: Architecture documentation is a special type
of documentation that concerns the design. It contains very little code and
is more focused on the components of the system, their roles, and working.
It also shows the data flow throughout the system.
• Technical Documentation: These contain the technical aspects of the
software like API, algorithms, etc. It is prepared mostly for software devs.
• End-user Documentation: As the name suggests these are made for the
end user. It contains support resources for the end user.
Internal Documentation
• Internal documentation is a collection of documents that are used
within an organization. It can include procedures, policies, processes,
and guidelines.
• Internal documentation is often used to help employees understand
and work with a product or service.
Types of internal documentation:

•Process documentation
Describes how work is carried out within the business. This includes
how-to guides, best practices, checklists, and standard operating
procedures (SOPs).
•Project documentation
Includes information about a particular company project, such as
business plans, project proposals, meeting minutes, and risk analysis.
•Technical documentation
Describes the application, purpose, creation, or architecture of a
product or service. This includes user manuals, installation guides, API
documentation, and system architectures.
External Documentation
External documentation is written, audio, or visual information that is intended for
users outside of a company. It can include user manuals, installation guides, and
marketing materials.

Purpose

• To help users understand and use a product or service

• To help users troubleshoot common issues without contacting customer support

• To help potential customers understand the product's features and benefits

• To help users learn new features, solve problems, or integrate systems effectively
Examples :

User manuals, Installation guides, Frequently asked questions (FAQs),


Troubleshooting guides, Product brochures, Case studies, Whitepapers,
Online help resources, API documentation, and Technical guides.
THANK YOU

You might also like