0% found this document useful (0 votes)
36 views

unit 1 (1)

The document discusses Software Quality Engineering (QE), which emphasizes quality assurance throughout the product development process, contrasting it with traditional quality control methods that check quality only at the end. It outlines key aspects and attributes of software quality, including functionality, performance, reliability, and security, while also addressing the cost of quality and defect prevention methods. The document further explains defect phase containment as a practice to identify and rectify defects early in the development process to minimize costs and improve product quality.

Uploaded by

jakereacher535
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)
36 views

unit 1 (1)

The document discusses Software Quality Engineering (QE), which emphasizes quality assurance throughout the product development process, contrasting it with traditional quality control methods that check quality only at the end. It outlines key aspects and attributes of software quality, including functionality, performance, reliability, and security, while also addressing the cost of quality and defect prevention methods. The document further explains defect phase containment as a practice to identify and rectify defects early in the development process to minimize costs and improve product quality.

Uploaded by

jakereacher535
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/ 28

lOMoAR cPSD| 30361253

lOMoARcPSD|30 361253

Unit- 1: Software Quality


Quality Engineering

Quality engineering (QE) is a process that applies rigorous quality checks to each stage of product
development. It does this through analysis, development, management, and maintenance of quality
assurance (QA) protocols. QA is often continued after a product has been delivered.

The goal of QE is to ensure the quality of a product from the beginning, minimizing potential
losses caused by defects. QE is different from traditional quality control measures in that it is
present throughout the production process. In traditional systems, quality is only checked in the
final production stages. In comparison, traditional methods are inefficient and can lead to
additional expenses and work.

Software Quality Engineering

The quality of software can be defined as the ability of the software to function as per user
requirement. When it comes to software products it must satisfy all the functionalities written
down in the SRS document.

Example: Consider a functionally correct software product. That is, it performs all tasks as
specified in the SRS document. But, has an almost unusable user interface. Even though it may be
functionally right, we cannot consider it to be a quality product.

In software quality engineering, engineers play a key role. Quality engineers design, implement,
and maintain policies and procedures used to ensure the quality of development processes. This
requires a thorough understanding of evaluation practices and technologies in use, including
artificial intelligence (AI), big data analytics, and automation.
The primary goals of software quality engineering are:
• Process control and oversight
• Implementing standards and metrics
• Data collection and analysis
• Test development
• Identification of issues and solutions
lOMoAR cPSD| 30361253

• Follow-up to ensure corrective actions

Key aspects that conclude software quality include,

• Good design – It’s always important to have a good and aesthetic design to please users
• Reliability – Be it any software it should be able to perform the functionality
impeccably withoutissues
• Durability- Durability is a confusing term, In this context, durability means
the ability of thesoftware to work without any issue for a long period of time.
• Consistency – Software should be able to perform consistently over platform and devices
• Maintainability – Bugs associated with any software should be able to capture and
fix quickly andnews tasks and enhancement must be added without any trouble

• Value for money – customer and companies who make this app should feel that the
money spent onthis app has not gone to waste.

Software Quality Attributes

Software Quality Attributes are features that facilitate the measurement of a software product’s
performance by Software Testing professionals. They play a vital role in helping software
architects guarantee that a software application will perform as expected based on the
specifications provided by the client. Though there are numerous software quality attributes:

Functionality

This attribute determines the conformity of a software-driven system with the defined
requirements andspecifications.
lOMoAR cPSD| 30361253

Most Software Testing professionals view this attribute as the most important one as an
application fails on the most basic level if it doesn’t function as expected. That is why we always
advocate performing tests that assess the desired functionality of a system during the early stages
of software testing.

Performance

Performance is on our list of the most important software quality attributes as it is a very
important trait for every software to have in this fast-paced world. It can be understood as the
ability of a software-driven systemto conform to timing requirements.
From a testing point of view, it implies that QA testers must check whether the system responds to
various events within defined time limits. These events may occur in the form of clock events,
process interruptions, messages, and requests from different users, and so on.

Reliability
Now that we have seen the functionality & performance software quality attributes, let’s shift our
focus to reliability. Reliability is to check if the application or the testing product with different
combinations to see if it withstands its nature and produces the expected results. By different
combinations, we mean testing it in different browsers, operating systems, environments, and so
on.

Testability
It indicates how well the application allows software testers to perform tests in line with the
predefined criteria. In addition to that, this software quality attribute also assesses the ease with
which QA engineers can develop test criteria for a said system and its various components.
QA professionals can assess the testability of a system by using various techniques such as
encapsulation, interfaces, patterns, low coupling, and more.

Availability
As the name suggests, this software quality attribute indicates whether an application will execute
the tasks when they are assigned. It can be defined as a ratio of the system’s available time to the
required time it is
expected to perform.
Top-notch availability indicates that a software-driven system will recover from operational
failures or scheduled maintenance periods without exceeding a specific time value. Availability
lOMoAR cPSD| 30361253

also includes certain concepts that relate to software security, performance, integrity, reliability,
dependability, and confidentiality.

Interoperability
Software-driven systems could be required to communicate and act in tandem with different
systems to perform certain tasks. Interoperability is the ability of the system to interact with other
systems to exchange the required information via certain interfaces. So, Software Quality
Assurance engineers must examine the interoperability of a system in terms of both syntactic and
semantic interoperability.

Security
The number of cyber-attacks has been on the rise and users have started prioritizing a product’s
safety. So the security attribute measures the ability of a system to protect and block malicious or
unauthorized actions that could negatively impact the user or destroy the system.
Security also includes authorization and authentication techniques, protection against network
attacks, data encryption, and other risks. It is imperative for Software Testing Companies and
professionals to regularly conduct updated security checks on systems.

Flexibility
If keeping up with the security threats is a key aspect, so is the system’s ability to keep up with the
upcoming trends and requirements. And for that, the system should be flexible enough or should
be able to modify accordingly.
For example, let’s say you’re working on a web application that was developed when Windows 8
was launched. As the OS gets upgraded, the application should be flexible enough to support
future versions such as Windows 10 & 11.

Efficiency
It is still one of the most important software quality attributes, an inefficient application might
work well only when it consumes excessive resources that slow down other applications or the
system on the whole. In addition to checking how long it takes to complete a process, it is also
important to check the level of system resourceusage.
For example, if the system uses the entire CPU power and memory for a single application. It can
be considered
to be inefficient as it pulls down the performance of the entire system from the user’s perspective.
lOMoAR cPSD| 30361253

Usability
Though all software-driven systems are designed with ease of use in mind, not all achieve this
goal. And the software quality attribute of usability denotes the ease with which users are able to
execute tasks on the system. It also indicates the level of user support provided by the system.

Cost of Quality

Cost of quality is a method for calculating the costs companies incur ensuring that products
meet quality standards, as well as the costs of producing goods that fail to meet quality
standards.

The goal of calculating the cost of quality is to create an understanding of how quality impacts the
bottom line. Whether it’s the cost of scrap and rework associated with poor quality, or the expense
of audits and maintenance associated with good quality, both count. Cost of quality gives
manufacturers an opportunity to analyze, and thus improve their quality operations.

This two-pronged approach to quality can be categorized as “control” (good quality) vs.
“failure of control”(bad quality).

Cost of Good Quality vs. Poor Quality:


Cost of quality has four main components between the two buckets of “good” and
“bad” quality. Taken together, the four main costs of quality add up to make up the
total cost of quality.
CoQ = Appraisal + Prevention + Internal Failure + External Failure

Four Types of Cost of Quality:

Appraisal Costs:
Measurement and inspection activities during operations, to determine conformance to quality
requirements.Examples include inspection, testing, process or service audits, calibration of measuring
and test equipment.

Prevention Costs:
Activities planned and designed before operations to guarantee good quality and prevent bad quality
lOMoAR cPSD| 30361253

products orservices.

Examples include new product review, quality planning, supplier surveys, process
reviews, qualityimprovement teams, education and training.

Internal Failure Costs:


Expenses incurred to remedy defects discovered before the delivery of a product or
service. Examples include scrap, rework, re-inspection, re-testing, material review,
material downgrades.

External Failure Costs:

Expenses incurred to remedy defects discovered by customers after the customer receives the
product or service. Examples include processing customer complaints, customer returns,
warranty claims, product recalls.

Error, Bug/Defect/ Fault &


Failure

Error
The Problem in code leads to errors, which means that a mistake can occur due to the developer's
coding erroras the developer misunderstood the requirement or the requirement was not defined
correctly.
The developers use
the term error.

Fault /Defect /bug


The fault may occur in software because it has not added the code for fault tolerance, making an
application act
up. A fault may happen in a program because of the following reasons:

• Lack of resources
• An invalid step
• Inappropriate data definition

In software testing, a bug is the informal name of defects, which means that software or
lOMoAR cPSD| 30361253

application is not working as per the requirement. When we have some coding error, it leads a
program to its breakdown, which isknown as a bug. The test engineers use the terminology Bug.

When the application is not working as per the requirement is knows as defects. It is specified as
the aberration from the actual and expected result of the application or software.
In other words, we can say that the bug announced by the programmer and inside the code is called a
Defect.
lOMoAR cPSD| 30361253

Failure
Many defects lead to the software's failure, which means that a loss specifies a fatal issue in software/

application or in its module, which makes the system unresponsive or broken.

In other words, we can say that if an end-user detects an issue in the product, then that particular issue is
called

a failure.

Possibilities are there one defect that might lead to one failure or several failures.

For example, in a bank application if the Amount Transfer module is not working for end-users when the
enduser tries to transfer money, submit button is not working. Hence, this is a failure.
lOMoAR cPSD| 30361253
lOMoAR cPSD| 30361253
lOMoAR cPSD| 30361253

Defect Prevention Methods and


Techniques

For identification and resolution of defect, defect prevention (DP) is most important and essential
activity of software development life cycle that directly effect on controlling the cost and quality of
software product. Someone has well said that “Prevention is better than cure”. The main goal of defect
prevention is to identify defects and take corrective measures to minimize their impact and completely
reduce chances of their re-occurrence in future releases.

Basic Principle of DP:


• Programmers need to evaluate i.e. check their own errors.
• There should be use of feedback as a part of process.
• Improvement of process should be included as an integral part of software process.
• Take some time to understand improvement in process.
• Casual analysis should also be a part of process.

Objective of Defect Prevention (DP):


There are several objectives of DP as given below:
• Main objective of defect prevention is to identify defects and then analyze their impact on
system.This is simply done so that re-occurrence of defects can be minimized.
• To reduce and minimize total number of defects to increase software quality.
• To ensure that defects do not occur again by suggesting some prevention techniques.
lOMoAR cPSD| 30361253

• To increase overall productivity.


• To reduce work effort required to fix defects by not allowing defects to occur.
• To set some goals for simply improving critical processes with team-level accountability.
• To reduce cost of fixing defects by taking some measures that will prevent defect being
introduced insystem.
• To establish some practice within projects for identification of defects as early as possible in process.
• Testers and developers should work together and collaborate for taking correct and quick
decisionsregarding defects and minimize the risk.

Methods of Defect Prevention:

For defect prevention, there are different methods that are generally used over a long period of time. These
methods or activities are given below:

1. Software Requirement Analysis :


The main cause of defects in software products is due to error in software requirements and designs.

Software requirements and design both are important, and should be analyzed in an efficient way with
more focus. Software requirement is basically considered an integral part of Software Development Life
Cycle (SDLC). These are the requirements that basically describes features and functionalities of target
product and also conveys expectations or requirement of users from software product.
Therefore, it is very much needed to understand about software requirements more carefully, If
requirements are not understood well by tester and developers, then there might be chance of
occurringof issue or defect in further process.

2. Review and Inspection :


lOMoAR cPSD| 30361253

Review and inspection, both are essential and integral part of software development. They are
considered as powerful tools that can be used to identify and remove defects if present before there
occurrence and impact on production. Review and inspection come in different levels or stages of defect
prevention to meet different needs. They are used in all software development and maintenance
methods. There are two types of review i.e. self-review and peer-review.

3. Defect Logging and Documentation :

After successful analysis and review, there should be records maintained about defects to simply
complete description of defect. This record can be further used to have better understanding of
defects. After getting knowledge and understanding of defect, then only one can take some effective and
required measures and actions to resolve particular defects so that defect cannot be carried further to
next phase.

4. Root Cause Analysis :

Root cause analysis is basically analysis of main cause of defect. It simply analysis what triggered
defect to occur. After analyzing main cause of defect, one can find best way to simply avoid occurrence
of such types of defects next time.
lOMoAR cPSD| 30361253

Defect Reduction
It includes improving quality, reducing wastes, and sustaining the improvements attained in the process. The
main objective is to improve the process yield by reducing the defect in the process/product.

What can you do to reduce production defects?

o Peer code reviews – static testing


o Continuous Integration
o Test in a QA environment
o Perform regression testing
o Effective defect tracking
o Empower testers to make project recommendations
o Add a warranty period
o Product Design: Poor product design can obviously result in product defects.
o Manufacturing Flexibility: Having a balance of flexibility in the manufacturing process
can beone way to reduce defects.
o Inspection
o Preventative Measures
o Quality Control
o Communication

Defect phase containment and how to calculate it?

Defect phase containment is a software quality engineering practice that involves identifying and fixing
defects as early in the development process as possible. This helps to prevent the defects from being
introduced into later phases of the development process, where they can be more costly and time-consuming
to fix.

To calculate defect phase containment, you would first need to determine the number of defects that were
identified and fixed in a particular phase of the development process. This could be the design phase, the
codingphase, the testing phase, or any other phase in the development process.
lOMoAR cPSD| 30361253

Next, you would need to determine the total number of defects that were identified in that phase. This would
include both the defects that were fixed, as well as those that were not.

To calculate the defect phase containment rate, you would then divide the number of defects that were fixed
by the total number of defects that were identified, and multiply the result by 100 to express it as a
percentage.

For example, if there were 100 defects identified in the design phase, and 50 of those defects were fixed, the
defect phase containment rate would be 50%, as follows:

Defect phase containment rate = (number of defects fixed / total number of defects identified) x 100
= (50 / 100) x 100
= 50%

Defect phase containment is an important practice for ensuring the quality of a product or service. By
identifying and fixing defects early in the development process, it can help to save time, money, and effort,
and ultimately result in a better product or service.
lOMoAR cPSD| 30361253

Overview of Different Types of Software Review

What is Software Review?

Software review is an important part of "Software Development Life Cycle (SDLC)" that assists software
engineers in validating the quality, functionality, and other vital features and components of the software. As
mentioned above, it is a complete process that involves testing the software product and ensuring that it
meets the requirements stated by the client.

It is systematic examination of a document by one or more individuals, who work together to find & resolve
errors and defects in the software during the early stages of Software Development Life Cycle (SDLC).
Usually performed manually, software review is used to verify various documents like requirements, system
designs, codes, "test plans" & "test cases".

Why is Software Review Important?

The reasons that make software review an important element of software development process are
numerous. It is one such methodology that offers an opportunity to the development team & the client, to get
clarity on the project as well as its requirements. With the assistance of software review, the team can verify
whether the software is developed as per the requested requirements or not, and make the necessary changes
before its release in the market.

In this process of reviewing software, often we train technical authors for defect detection process as
well asfor "defect prevention process". It is only at this stage the inadequacies are eliminated.

Elimination of defects or errors can benefit the software to a great extent. Frequent check of samples of
work and identification of small time errors can lead to low error rate.

This process results in dramatic reduction of time taken in producing a technically sound document.
lOMoAR cPSD| 30361253

Types of Software Reviews:


There are mainly three types of software reviews, all of which are conducted by different members of the
teamwho evaluate various aspects of the software. Hence, the types of software review are:

1. Software Peer Review:


Peer review is the process of evaluating the technical content and quality of the product and it is
usually conducted by the author of the work product, along with some other developers.
According to "Capacity Maturity Model", the main purpose of peer review is to provide “a
disciplined engineering practice for detecting or correcting defects in the software artifacts,
preventing their leakage into the field operations”. In short, peer review is performed in order to
determine or resolve the defects in the software, whose quality is also checked by other members of
the team.

Types of Peer Review:

o Code Review: To fix mistakes and to remove vulnerabilities from the software product,
systematic examination of the computer source code is conducted, which further improves
the quality & security of the product.

o Pair Programming: This is a type of code review, where two programmers work on a single
workstation and develop a code together.

o Informal: As suggested by its name, this is an informal type of review, which is extremely
popular and is widely used by people all over the world. Informal review does not require any
documentation, "entry criteria", or a large group of people. It is a time saving process
that isnot documented.

o Walkthrough: Here, a designer or developer lead a team of software developers to go


through a software product, where they ask question and make necessary comments about
various defects & errors. This process differs from "software inspection" and technical
review in variousaspects.

o Technical Review: During the process of technical review a team of qualified personnels
lOMoAR cPSD| 30361253

review the software and examine its suitability to define its intended use as well as to identify
various discrepancies.

o Inspection: This is a formal type of peer review, wherein experienced & qualified
individuals examine the software product for bugs and defects using a defined process.
Inspection helps the author improve the quality of the software.

2. Software Management Review:

These reviews take place in the later stages by the management representatives. The objective of this
type of review is to evaluate the work status. Also, on the basis of such reviews decisions regarding
downstream activities are taken.

3. Software Audit Reviews:

"Software Audit" review or software review is a type of external review, wherein one or more
auditors, who are not a part of the development team conduct an independent examination of the
software product and its processes to assess their compliance with stated specifications, standards,
and other important criterion's. This is done by managerial level people.

Formal Review Vs Informal Review:

Formal and informal review are two very important types of reviews that are used most commonly by
software engineers to identify defects as well as to discuss ways to tackle these issues or discrepancies.
Therefore, to understand these important types of software review, following is a comparison of the two:

Formal Review:
A type of peer review, "formal review" follows a formal process and has a specific formal agenda. It has a
well structured and regulated process, which is usually implemented at the end of each life cycle. During
this process, a formal review panel or board considers the necessary steps for the next life cycle.

Features of Formal Review:

• This evaluates conformance to specification and various standards.


• Conducted by a group of 3 or more individuals.
• The review team petitions the management of technical leadership to act on the
lOMoAR cPSD| 30361253

suggestedrecommendations.
• Here, the leader verifies that the action documents are verified and incorporated into external processes.
• Formal review consists of six important steps, which are:
o Planning.
o Kick-off.
o Preparation.
o Review meeting.
o Rework.

o Follow up.

Informal Review:

Unlike Formal Reviews, Informal reviews are applied multiple times during the early stages of software
development process. The major difference between the formal and informal reviews is that the former
follows a formal agenda, whereas the latter is conducted as per the need of the team and follows an informal
agenda. Though time saving, this process is not documented and does not require any entry criteria or large
group of members.

Features of Informal Review:

• Conducted by a group of 2-7 members, which includes the designer an any other interested party.
• Here the team identifies errors & issues as well as examine alternatives.
• It is a forum for learning.
• All the changes are made by the software designer.
• These changes are verified by other project controls.
• The role of informal review is to keep the author informed and to improve the quality of the product.

Process of Software Review:

The process of software review is a simple one and is common for all its types. It is usually implemented by
following a set of activities, which are laid down by IEEE Standard 1028. All these steps are extremely
important and need to be followed rigorously, as skipping even a single step can lead to a complication with
thedevelopment process, which can further affect the quality of the end product.

Entry Evaluation:
A standard check-list is used by entry criteria in order to ensure an ideal condition for a successful review.
lOMoAR cPSD| 30361253

Management Preparation:
During this stage of the process, a responsible management ensures that the software review has all the required
resources, which includes things like staff, time, materials, and tools.

Review Planning:
To undergo a software review, an objective is identified. Based on the objective, a recognized team of
resourcesis formed.

Preparation:
The reviewers are held responsible for preparing group examination to do the reviewing task.

Examination and Exit Evaluation:


In the end, the result made by each reviewer is combined all together. Before the review is finalized,
verificationof all activities is done that are considered necessary for an efficacious software review.
lOMoAR cPSD| 30361253

Introduction to Measurement and


Inspection Process
Software Measurement: A measurement is a manifestation of the size, quantity, amount, or dimension of a
particular attribute of a product or process. Software measurement is a titrate impute of a characteristic of a
software product or the software process. It is an authority within software engineering. The software
measurement process is defined and governed by ISO Standard.

Software Measurement Principles:

The software measurement process can be characterized by five activities-

1. Formulation: The derivation of software measures and metrics appropriate for the representation
ofthe software that is being considered.
2. Collection: The mechanism used to accumulate data required to derive the formulated metrics.
3. Analysis: The computation of metrics and the application of mathematical tools.
4. Interpretation: The evaluation of metrics resulting in insight into the quality of the representation.
5. Feedback: Recommendation derived from the interpretation of product metrics transmitted to the
software team.

Need for Software Measurement:

Software is measured to:

• Create the quality of the current product or process.


• Anticipate future qualities of the product or process.
• Enhance the quality of a product or process.
• Regulate the state of the project in relation to budget and schedule.

Classification of Software Measurement:


There are 2 types of software measurement:

1. Direct Measurement: In direct measurement, the product, process, or thing is measured directly
using a standard scale.
lOMoAR cPSD| 30361253

2. Indirect Measurement: In indirect measurement, the quantity or quality to be measured is


measuredusing related parameters i.e. by use of reference.

Software Metrics: A metric is a measurement of the level at which any impute belongs to a system
product or process. Software metrics will be useful only if they are characterized effectively and validated
sothat their worth is proven. There are 4 functions related to software metrics:
1. Planning
2. Organizing
3. Controlling
4. Improving

Characteristics of software Metrics:

1. Quantitative: Metrics must possess quantitative nature. It means metrics can be expressed in values.
2. Understandable: Metric computation should be easily understood, and the method of computing
metrics should be clearly defined.
3. Applicability: Metrics should be applicable in the initial phases of the development of the software.
4. Repeatable: The metric values should be the same when measured repeatedly and consistent in
nature.
5. Economical: The computation of metrics should be economical.
6. Language Independent: Metrics should not depend on any programming language.

Inspection
Software inspection is a process in which other developers or team members review the code written by a
developer to identify potential errors or areas for improvement. This process can help improve the overall
quality of the software by identifying and resolving faults early in the development process.

The term software inspection was developed by IBM in the early 1970s, when it was noticed that the
testingwas not enough sufficient to attain high quality software for large applications.

There are several ways that software inspection can improve software quality:

1. Identifying and resolving defects early: By identifying and resolving defects early in
lOMoAR cPSD| 30361253

thedevelopment process, inspection can prevent costly rework and delays later in the
project.

2. Enhancing code readability: Inspection can help improve the readability of the code,
making iteasier for other developers to understand and maintain.
3. Improving team collaboration: Inspection can help improve team collaboration by
encouragingdevelopers to share their ideas and knowledge.
4. Enhancing code maintainability: Inspection can help identify areas where code is
difficult tomaintain and suggest improvements to make it more maintainable.
5. Improving code efficiency: Inspection can help identify areas where code is inefficient and
suggestimprovements to make it more efficient.
6. Enhancing security: Inspection can help identify security vulnerabilities in the code and
suggestimprovements to make the software more secure.
7. Improving the overall quality of the software: By identifying and resolving defects early in
the development process, inspection can help improve the overall quality of the software and ensure
that itmeets the needs of its users.

Inspection is an important aspect of software quality assurance and can help ensure that the software
functions correctly and meets the needs of its users. It is an efficient way to detect errors and defects
early in the development process, and can save time and resources by preventing costly rework or delays
later in the project.
Inspection is used to determine the defects in the code and remove it efficiently. This prevents defects and
enhances the quality of testing to remove defects. This software inspection method achieved the highest
level for efficiently removing defects and improving software quality.

There are some factors that generate the high quality software:

• Phrases quality design inspection and Code inspections: This factor refers to formal oversight
that follows protocols such as training. Participants, material distributed for inspection. Both moderators
and recorders are present to analyze defect statistics.
• Phrase quality assurance: This factor refers to an active software quality assurance group,
which joins a group of software developments to support them in the development of high quality
software.
• Formal Testing :It throws the test process under certain conditions
• For an application, a test plan was created.
• Are complete specifications so that test cases can be made without significant gaps.
• Vast library control tools are used.
• Test coverage analysis tools are used.
lOMoAR cPSD| 30361253

Software Inspection Process:

There are some of the stages in the software inspection process such as-

• Planning: The moderator plan the inspection.


• Overview Meeting: The background of the work product is described by the author.
• Preparation: The examination of the work product is done by inspector to identify the possible
defects.
• Inspection Meeting: The reader reads the work product part by part during this meeting and
theinspectors the faults of each part.
• Rework: After the inspection meeting, the writer changes the work product according to the
workplans.
• Follow Up: The changes done by the author are checked to make sure that everything is correct.

Advantages of Software Inspection:

• Helps in the early removal of major defects.


• This inspection enables a numeric quality assessment of any technical document.
• Software inspection helps in process improvement.
• It helps in staff training on the job.
• Software inspection helps in gradual productivity improvement.
• Early identification and resolution of defects: Software inspection allows developers to identify and
resolve defects early in the development process, which can save time and resources by preventing
costly rework or delays later in the project.
lOMoAR cPSD| 30361253

• Improved code quality: Software inspection can help improve the overall quality of the code by
identifying areas for improvement and suggesting changes to make the code more readable,
maintainable, and efficient.
• Enhanced team collaboration: Software inspection can encourage developers to share their ideas and
knowledge, and can help improve team collaboration and communication.
• Increased code maintainability: Software inspection can help identify areas where code is difficult to
maintain and suggest improvements to make it more maintainable.
• Enhanced security: Software inspection can help identify security vulnerabilities in the code and
suggest improvements to make the software more secure.
• Cost-effective: Software inspection is relatively low cost and time-efficient, as it can be done by the
team members themselves.
• Increased accountability: Software inspection can help hold developers and teams accountable for
the quality of their code, by providing metrics and feedback.
• Provides a comprehensive view of the code: Software inspection can provide an in-depth view of the
code, which can help to identify both functional and non-functional requirements of the software.

Disadvantages of Software Inspection:

• It is a time-consuming process.
• Software inspection requires discipline.
• Time-consuming: Software inspection can be time-consuming, especially for large and complex
systems, as it involves a thorough review of the code.
• Dependence on human interpretation: Software inspection is often dependent on
humaninterpretation, which can lead to inconsistencies and errors.
• Can be subject to bias: Reviewers might have their own biases, which can affect their
interpretationof the code and the defects they identify.
• Limited scope: Software inspection is limited to the code that is reviewed, and may not identify
alldefects in the system.
• Limited to detecting syntax errors: Software inspection is not able to detect all types of errors,
particularly semantic errors, which are caused by incorrect logic or design.
• Can be costly: Software inspection can be costly, especially if it requires the involvement of
externalexperts or specialized tools.
• Can be tedious and demotivating, Reviewing code can be tedious, and constant reviews can
demotivate the team members.
• Can lead to a lack of creativity: Software inspection can stifle creativity, as developers may
feelconstrained by the need to conform to established standards and practices.
lOMoAR cPSD| 30361253

Software documentation

Software documentation is written text or illustration that accompanies computer software or is embedded
in the source code. The documentation either explains how the software operates or how to use it, and may
mean different things to people in different roles.

It includes the technical manuals and online material, such as online versions of manuals and help
capabilities. The term is sometimes used to refer to source information about the product discussed in design
documentation,code comments, white papers and session notes.

Software documentation is a way for engineers and programmers to describe their product and the process
theyused in creating it in formal writing. Early computer users were sometimes simply given the engineers'
or programmers' notes. As software development became more complicated and formalized, technical
writers andeditors took over the documentation process.

Software documentation shows what the software developers did when creating the software and what IT
staff and users must do when deploying and using it. Documentation is often incorporated into the software's
user interface and also included as part of help documentation. The information is often divided into task
categories,including the following:
• evaluating
• planning
• setting up or installing
• customizing
• administering
• using
• maintaining

Software documentation importance

• Software documentation provides information about a software program for everyone involved
in itscreation, deployment and use. Documentation guides and records the development process.
It also assists with basic tasks such as installation and troubleshooting.

• Effective documentation gets users familiar with the software and makes them aware of its
lOMoAR cPSD| 30361253

features. Itcan have a significant role in driving user acceptance. Documentation can also reduce
the burden on support teams, because it gives users the power to troubleshoot issues.

• Software documentation can be a living document that is updated over the software development
lifecycle. Its use and the communication it encourages with users provides developers with
information

on problems users have with the software and what additional features they need. Developers can
respond with software updates, improving customer satisfaction and user experience.

Documentation is an important part of software engineering. Types of documentation include:

• Requirements – Statements that identify attributes, capabilities, characteristics, or qualities of a


system. This is the foundation for what will be or has been implemented.
• Architecture/Design – Overview of software. Includes relations to an environment and
constructionprinciples to be used in design of software components.
• Technical – Documentation of code, algorithms, interfaces, and APIs.
• End user – Manuals for the end-user, system administrators and support staff.
• Marketing – How to market the product and analysis of the market demand.

Types of software documentation


The two main types of software documentation are internal and external.
1. Internal software documentation

Developers and software engineers create internal documentation that is used inside a company. Internal
documentation may include the following:

• Administrative documentation. This is the high-level administrative guidelines, roadmaps and


product requirements for the software development team and project managers working on the software.
It also mayinclude status reports and meeting notes.

• Developer documentation. This provides instructions to developers for building the software and
guides them through the development process. It includes requirements documentation, which
describes how the software should perform when tested. It also includes architectural documentation
that focuses onhow all the components and features work together, and details data flows throughout
the product.
lOMoAR cPSD| 30361253

2. External software documentation

Software developers create this documentation to provide IT managers and end users with information on
howto deploy and use the software. External documentation includes the following:

• End-user documentation. This type gives end users basic instructions on how to use, install and
troubleshoot the software. It might provide resources, such as user guides, knowledge bases, tutorials
and release notes.
• Enterprise user documentation. Enterprise software often has documentation for IT staff that
deploy the software across the enterprise. It may also provide documentation for the end users of the
software.

• Just-in-time documentation. This provides end users with support documentation at the exact time
they will need it. This allows developers to create a minimal amount of documentation at the release of
a software product and add documentation as new features are added. It is based on the Agile software
development These can be knowledge bases, FAQ pages etc.

You might also like