Unit 4
Unit 4
It shows how data enters and leaves the system, what changes the information, and
where data is stored.
Standard symbols for DFDs are derived from the electric circuit diagram analysis and are
shown in fig:
Circle: A circle (bubble) shows a process that transforms data inputs into data
outputs
Data Flow: A curved line shows the flow of data into or out of a process or data store.
Data Store: A set of parallel lines shows a place for the collection of data items. The
data store can have an element or group of elements.
Source or Sink: Source or Sink is an external entity and acts as a source of system
inputs or sink of system outputs.
The Level-0 DFD, also called context diagram of the result management system is
shown in fig.
1-level DFD
2-Level DFD
2-level DFD goes one process deeper into parts of 1-level DFD. It can be used to
project or record the specific/necessary detail about the system's functioning
Types of DFD
Data Flow Diagrams are either Logical or Physical.
1. Logical DFD - This type of DFD concentrates on the system process, and flow of
data in the system. For example in a banking software system, how data is
moved between different entities.
2. Physical DFD - This type of DFD shows how the data flow is actually
implemented in the system. It is more specific and close to the implementation.
1. Object-OrientedAnalysis :
Object-Oriented Analysis (OOA) is a technical approach generally used for
analyzing and application designing, system designing, or even business
designing just by applying object-oriented programming even with the use of
visual modeling throughout the process of development to just simply guide the
stakeholder communication and quality of the product. it is actually a process of
discovery where a team of developers understands and models all the
requirements of the system.
1) Objects - All entities involved in the solution design are known as objects.
Example –
Difference Between Structured and Object-oriented analysis :
The main focus is on the process and procedures of the The main focus is on data structure and real-world objects
system. that are important.
It is suitable for well-defined projects with stable user It is suitable for large projects with changing user
requirements. requirements.
Risk while using this analysis technique is high and Risk while using this analysis technique is low and reusability
reusability is also low. is also high.
This technique is old and is not preferred usually. This technique is new and is mostly preferred.
Software Testing
Testing is the process of executing a program to find errors. To make our software
perform well it should be error-free. If testing is done successfully it will remove all the
errors from the software. In this article, we will discuss first the principles of testing and
then we will discuss, the different types of testing.
Principles of Testing
It follows the Pareto rule(80/20 rule) which states that 80% of errors come from
20% of program components.
Types of Testing
With the help of below image, we can easily understand the type of software testing:
To help the developers understand the code base and enable them
to make changes quickly.
To help with code reuse.
Unit testing allows the programmer to refine code and make sure the
module works properly.
Unit testing enables testing parts of the project without waiting for
others to be completed.
Unit Testing is not efficient for checking the errors in the UI(User
Interface) part of the module.
It requires more time for maintenance when the source code is
changed frequently.
White box Testing :- White box testing is a software testing technique that involves
testing the internal structure and workings of a software application. The tester has
access to the source code and uses this knowledge to design test cases that can verify
the correctness of the software at the code level.It is also called glass box testing or
clear box testing or structural testing. White Box Testing is also known as transparent
testing or open box testing.
White box testing is also known as structural testing or code-based testing, and it is
used to test the software’s internal logic, flow, and structure. The tester creates test
cases to examine the code paths and logic flows to ensure they meet the specified
requirements.
Features of white box testing:
Identifying logical errors: White box testing helps to identify logical errors in the
code, such as infinite loops or incorrect conditional statements.
Integration testing: White box testing is useful for integration testing, as it allows
testers to verify that the different components of an application are working
together as expected.
Unit testing: White box testing is also used for unit testing, which involves
testing individual units of code to ensure that they are working correctly.
Optimization of code: White box testing can help to optimize the code by
identifying any performance issues, redundant code, or other areas that can be
improved.
Security testing: White box testing can also be used for security testing, as it
allows testers to identify any vulnerabilities in the application’s code.
Advantages:
White box testing is thorough as the entire code and structures are tested.
It results in the optimization of code removing errors and helps in removing extra
lines of code.
It can start at an earlier stage as it doesn’t require any interface as in the case of
black box testing.
Easy to automate.
White box testing can be easily started in Software Development Life Cycle.
Disadvantages:
It is very expensive.
Redesigning code and rewriting code needs test cases to be written again.
System Testing
System testing is a type of software testing that evaluates the overall functionality and
performance of a complete and fully integrated software solution. It tests if the system
meets the specified requirements and if it is suitable for delivery to the end-users. This
type of testing is performed after the integration testing and before the acceptance
testing.
This testing is time consuming process than another testing techniques since it
checks the entire product or software.
The cost for the testing will be high since it covers the testing of entire software.
It needs good debugging tool otherwise the hidden errors will not be found