ICT Notes-1-1
ICT Notes-1-1
1
Black Box Testing White Box Testing
2
To see whether SUT handles valid inputs successfully, the tester selects
legitimate inputs (positive test scenario). In addition, certain faulty inputs are
generated (negative test scenario) to ensure that the SUT can identify them.
For each of those inputs, the tester calculates predicted outcomes.
With the chosen inputs, the software tester creates test cases.
The test cases are carried out.
The genuine results are compared to the predicted outputs by the software
tester.
If there are any flaws, they are corrected and rechecked.
Black Box Testing Types
There are many different forms of Black Box Testing, however, the ones listed here
are the most common
Functional testing- This form of black-box testing is concerned with a
system's functional requirements and is carried out by software testers.
Non-functional testing- This sort of black-box testing is concerned with
non-functional criteria such as performance, scalability, and usability rather
than particular functionality.
Regression testing is performed after code changes, upgrades, or other
system maintenance to ensure that the new code does not harm the current
code.
Methods for Black Box Testing
Among the various test strategies used in black-box testing, the following are the
most popular −
Equivalence Class Testing − is a technique for reducing the number of
potential test cases to the bare minimum while maintaining adequate test
coverage.
Boundary Value Testing − Boundary value testing is concerned with the
values found at the edges of a boundary. This method assesses whether or
not a set of values is acceptable to the system. It's a great way to cut down
on the number of test cases. It's best for systems with inputs that fall
between certain ranges.
Decision Table Testing − A decision table is a matrix that contains the
causes and consequences of a problem. Each column has a different
combination.
What is White Box Testing and How Does It Work?
White Box Testing is a software examining approach that involves testing the
product's underlying structure, architecture, and code in order to validate input-
output flow and enhance the design, usability, and security. White box testing is
also known as Clear box testing, Open box testing, transparent box testing, Code-
based testing, and Glass box testing since the code is visible to the testers.
In White Box Testing, what do you check?
White box testing entails putting the software code to the test for the following −
Internal flaws in security
Paths in the coding process that are broken or poorly organized
The path is taken by specified inputs through the program.
3
Expected results
Conditional loops are useful in a variety of situations.
Individualized testing of each statement, object, and function
Systems analysis
Systems design
Systems Analysis
It is a process of collecting and interpreting facts, identifying the problems, and
decomposition of a system into its components.
System analysis is conducted for the purpose of studying a system or its parts in
order to identify its objectives. It is a problem solving technique that improves the
system and ensures that all the components of the system work efficiently to
accomplish their purpose.
Analysis specifies what the system should do.
Systems Design
It is a process of planning a new business system or replacing an existing system by
defining its components or modules to satisfy the specific requirements. Before
planning, you need to understand the old system thoroughly and determine how
computers can best be used in order to operate efficiently.
System Design focuses on how to accomplish the objective of the system.
System Analysis and Design (SAD) mainly focuses on −
Systems
Processes
Technology
What is a System?
The word System is derived from Greek word Systema, which means an organized
relationship between any set of components to achieve some common cause or
objective.
A system is “an orderly grouping of interdependent components linked together
according to a plan to achieve a specific goal.”
4
Constraints of a System
A system must have three basic constraints −
A system must have some structure and behavior which is designed to
achieve a predefined objective.
Interconnectivity and interdependence must exist among the system
components.
The objectives of the organization have a higher priority than the
objectives of its subsystems.
For example, traffic management system, payroll system, automatic library system,
human resources information system.
Properties of a System
A system has the following properties −
Organization
Organization implies structure and order. It is the arrangement of components that
helps to achieve predetermined objectives.
Interaction
It is defined by the manner in which the components operate with each other.
For example, in an organization, purchasing department must interact with
production department and payroll with personnel department.
Interdependence
Interdependence means how the components of a system depend on one another.
For proper functioning, the components are coordinated and linked together
according to a specified plan. The output of one subsystem is the required by other
subsystem as input.
Integration
Integration is concerned with how a system components are connected together. It
means that the parts of the system work together within the system even if each
part performs a unique function.
Central Objective
The objective of system must be central. It may be real or stated. It is not
uncommon for an organization to state an objective and operate to achieve
another.
The users must know the main objective of a computer application early in the
analysis for a successful design and conversion.
Elements of a System
The following diagram shows the elements of a system −
5
Outputs and Inputs
The main aim of a system is to produce an output which is useful for its user.
Inputs are the information that enters into the system for processing.
Output is the outcome of processing.
Processor(s)
The processor is the element of a system that involves the actual
transformation of input into output.
It is the operational component of a system. Processors may modify the input
either totally or partially, depending on the output specification.
As the output specifications change, so does the processing. In some cases,
input is also modified to enable the processor for handling the transformation.
Control
The control element guides the system.
It is the decision–making subsystem that controls the pattern of activities
governing input, processing, and output.
The behavior of a computer System is controlled by the Operating System
and software. In order to keep system in balance, what and how much input is
needed is determined by Output Specifications.
Feedback
Feedback provides the control in a dynamic system.
Positive feedback is routine in nature that encourages the performance of the
system.
Negative feedback is informational in nature that provides the controller with
information for action.
Environment
The environment is the “supersystem” within which an organization operates.
It is the source of external elements that strike on the system.
It determines how a system must function. For example, vendors and
competitors of organization’s environment, may provide constraints that
affect the actual performance of the business.
6
Boundaries and Interface
A system should be defined by its boundaries. Boundaries are the limits that
identify its components, processes, and interrelationship when it interfaces
with another system.
Each system has boundaries that determine its sphere of influence and
control.
The knowledge of the boundaries of a given system is crucial in determining
the nature of its interface with other systems for successful design.
Types of Systems
The systems can be divided into the following types −
Physical or Abstract Systems
Physical systems are tangible entities. We can touch and feel them.
Physical System may be static or dynamic in nature. For example, desks and
chairs are the physical parts of computer center which are static. A
programmed computer is a dynamic system in which programs, data, and
applications can change according to the user's needs.
Abstract systems are non-physical entities or conceptual that may be
formulas, representation or model of a real system.
Open or Closed Systems
An open system must interact with its environment. It receives inputs from
and delivers outputs to the outside of the system. For example, an
information system which must adapt to the changing environmental
conditions.
A closed system does not interact with its environment. It is isolated from
environmental influences. A completely closed system is rare in reality.
Adaptive and Non Adaptive System
Adaptive System responds to the change in the environment in a way to
improve their performance and to survive. For example, human beings,
animals.
Non Adaptive System is the system which does not respond to the
environment. For example, machines.
Permanent or Temporary System
Permanent System persists for long time. For example, business policies.
Temporary System is made for specified time and after that they are
demolished. For example, A DJ system is set up for a program and it is
dissembled after the program.
Natural and Manufactured System
Natural systems are created by the nature. For example, Solar system,
seasonal system.
Manufactured System is the man-made system. For example, Rockets, dams,
trains.
Deterministic or Probabilistic System
Deterministic system operates in a predictable manner and the interaction
between system components is known with certainty. For example, two
molecules of hydrogen and one molecule of oxygen makes water.
Probabilistic System shows uncertain behavior. The exact output is not
known. For example, Weather forecasting, mail delivery.
7
Social, Human-Machine, Machine System
Social System is made up of people. For example, social clubs, societies.
In Human-Machine System, both human and machines are involved to
perform a particular task. For example, Computer programming.
Machine System is where human interference is neglected. All the tasks are
performed by the machine. For example, an autonomous robot.
Man–Made Information Systems
It is an interconnected set of information resources to manage data for
particular organization, under Direct Management Control (DMC).
This system includes hardware, software, communication, data, and
application for producing information according to the need of an
organization.
Man-made information systems are divided into three types −
Formal Information System − It is based on the flow of information in the
form of memos, instructions, etc., from top level to lower levels of
management.
Informal Information System − This is employee based system which
solves the day to day work related problems.
Computer Based System − This system is directly dependent on the
computer for managing business applications. For example, automatic library
system, railway reservation system, banking system, etc.
Systems Models
Schematic Models
A schematic model is a 2-D chart that shows system elements and their
linkages.
Different arrows are used to show information flow, material flow, and
information feedback.
Flow System Models
A flow system model shows the orderly flow of the material, energy, and
information that hold the system together.
Program Evaluation and Review Technique (PERT), for example, is used to
abstract a real world system in model form.
Static System Models
They represent one pair of relationships such as activity–time or cost–
quantity.
The Gantt chart, for example, gives a static picture of an activity-time
relationship.
Dynamic System Models
Business organizations are dynamic systems. A dynamic model approximates
the type of organization or application that analysts deal with.
It shows an ongoing, constantly changing status of the system. It consists of
−
o Inputs that enter the system
o The processor through which transformation takes place
o The program(s) required for processing
o The output(s) that result from processing.
Categories of Information
There are three categories of information related to managerial levels and the
decision managers make.
8
Strategic Information
This information is required by topmost management for long range planning
policies for next few years. For example, trends in revenues, financial
investment, and human resources, and population growth.
This type of information is achieved with the aid of Decision Support System
(DSS).
Managerial Information
This type of Information is required by middle management for short and
intermediate range planning which is in terms of months. For example, sales
analysis, cash flow projection, and annual financial statements.
It is achieved with the aid of Management Information Systems (MIS).
Operational information
This type of information is required by low management for daily and short
term planning to enforce day-to-day operational activities. For example,
keeping employee attendance records, overdue purchase orders, and current
stocks available.
It is achieved with the aid of Data Processing Systems (DPS).
9
SDLC is used by analysts to develop an information system. SDLC includes the
following activities −
requirements
design
implementation
testing
deployment
operations
maintenance
Phases of SDLC
Systems Development Life Cycle is a systematic approach which explicitly breaks
down the work into phases that are required to implement either new or modified
Information System.
10
Feasibility Study or Planning
Define the problem and scope of existing system.
Overview the new system and determine its objectives.
Confirm project feasibility and produce the project Schedule.
During this phase, threats, constraints, integration and security of system are
also considered.
A feasibility report for the entire project is created at the end of this phase.
Analysis and Specification
Gather, analyze, and validate the information.
Define the requirements and prototypes for new system.
Evaluate the alternatives and prioritize the requirements.
Examine the information needs of end-user and enhances the system goal.
A Software Requirement Specification (SRS) document, which specifies the
software, hardware, functional, and network requirements of the system is
prepared at the end of this phase.
System Design
Includes the design of application, network, databases, user interfaces, and
system interfaces.
Transform the SRS document into logical structure, which contains detailed
and complete set of specifications that can be implemented in a programming
language.
Create a contingency, training, maintenance, and operation plan.
Review the proposed design. Ensure that the final design must meet the
requirements stated in SRS document.
Finally, prepare a design document which will be used during next phases.
Implementation
Implement the design into source code through coding.
Combine all the modules together into training environment that detects
errors and defects.
A test report which contains errors is prepared through test plan that includes
test related tasks such as test case generation, testing criteria, and resource
allocation for testing.
Integrate the information system into its environment and install the new
system.
Maintenance/Support
Include all the activities such as phone support or physical on-site support for
users that is required once the system is installing.
Implement the changes that software might undergo over a period of time, or
implement any new requirements after the software is deployed at the
customer location.
It also includes handling the residual errors and resolve any issues that may
exist in the system even after the testing phase.
Maintenance and support may be needed for a longer time for large systems
and for a short time for smaller systems.
Life Cycle of System Analysis and Design
The following diagram shows the complete life cycle of the system during analysis
and design phase.
11
Role of System Analyst
The system analyst is a person who is thoroughly aware of the system and guides
the system development project by giving proper directions. He is an expert having
technical and interpersonal skills to carry out development tasks required at each
phase.
He pursues to match the objectives of information system with the organization
goal.
Main Roles
Defining and understanding the requirement of user through various Fact
finding techniques.
Prioritizing the requirements by obtaining user consensus.
Gathering the facts or information and acquires the opinions of users.
Maintains analysis and evaluation to arrive at appropriate system which is
more user friendly.
Suggests many flexible alternative solutions, pick the best solution, and
quantify cost and benefits.
Draw certain specifications which are easily understood by users and
programmer in precise and detailed form.
Implemented the logical design of system which must be modular.
Plan the periodicity for evaluation after it has been used for some time, and
modify the system as needed.
Attributes of a Systems Analyst
The following figure shows the attributes a systems analyst should possess −
12
Interpersonal Skills
Interface with users and programmer.
Facilitate groups and lead smaller teams.
Managing expectations.
Good understanding, communication, selling and teaching abilities.
Motivator having the confidence to solve queries.
Analytical Skills
System study and organizational knowledge
Problem identification, problem analysis, and problem solving
Sound commonsense
Ability to access trade-off
Curiosity to learn about new organization
Management Skills
Understand users jargon and practices.
Resource & project management.
13
Change & risk management.
Understand the management functions thoroughly.
Technical Skills
Knowledge of computers and software.
Keep abreast of modern development.
Know of system design tools.
Breadth knowledge about new technologies.
While some guides combine or add phases, there are typically seven identified
phases in the system development process. These are:
1. Planning
Planning helps systems engineers and developers identify whether a new system
can help a business achieve its strategic objectives. A preliminary plan is sometimes
called a feasibility study, and can allow development teams to outline the resources
they need to build new infrastructure or upgrade an existing service. This phase of
the life cycle helps teams discover potential problems and work toward solutions.
Companies can complete the planning stage in a few steps:
Initial analysis: In your initial analysis, work to define the client's objectives
and fully understand the problem you're studying. If a client asked you to
design a chat function for their website, you could use your analysis to
understand all the features they want and how their current site functions.
Brainstorming: In the second part of the planning stage, consider using the
organization's objectives, interviews with employees, clients, suppliers and
consultants, and competitor research to help you develop your ideas. In the
chat function example, you might look at the chat features of alternative
sites to find one that matches the client's request.
Cost-benefit analysis: A cost-benefit analysis can help you analyze and
describe the benefits and costs of your proposed solutions, and you may
choose to leave the system as it is, work to improve it or create a new system
based on what you uncovered in your preliminary analysis. For example, you
may discover it's cheaper and easier to add a third-party widget to the site
rather than create your own function.
Related: Cost-Benefit Analysis: Definition, Uses, Formula and Example
2. Analysis
In the analysis phase, development teams work on the source of the issue or the
reason for the desired change. They can take the ideas they came up with during
the planning phase and identify the functional requirements of their proposed
project or solution to find the best way to achieve their goals.
14
Phase two is also where you can perform a system analysis and review end-users'
needs to make sure the proposed system meets expectations. The analysis phase is
important for assigning team members to individual pieces of the project, assessing
the business's needs and establishing project timelines.
There are several tools that can help teams in the second phase, including:
The third phase of the system development life cycle requires a detailed description
of desired features and operations. This could include screen layouts, business rules
and process diagrams. By describing the steps in the proposed algorithm or system
in plain language, end-users can discuss their specific needs for the proposed
system. Consider creating a master document that specifies the plan and
requirements.
After thorough planning, analysis and review, systems engineers and developers
are ready to work on the project's implementation. Because all the stakeholders
worked together to define the steps, timelines and expectations clearly, production
should be able to progress with limited issues. If you're working with outside
development teams, it's important to make sure the developers and programmers
fully understand the project specifications and system design. You can share the
master document you created to make sure everyone learns the development plan.
Using the previous chat feature example, your development team would begin the
coding process or installation of a widget depending on the decisions the team
made in the previous phases.
15
5. Systems testing and integration
The next phase tests the programs and procedures you implemented. Usually, a
quality assurance (QA) professional completes this part of the process by verifying
the proposed design meets the predetermined requirements. You might have to
test the new system multiple times to find errors, check for bugs and ensure
interoperability. Repeat this phase until you resolve all errors and meet the end-
user's specifications. Completing the verification and validation processes helps
ensure the program's success.
For example, you could test the chat feature to make sure the responses, timing
and visual display meet client requirements and seamlessly integrate into the
current site without affecting the functionality of the existing features.
6. Implementation
The sixth phase is implementation. This is where you make the software or program
accessible for the end-user. Depending on the project requirements, you might also
use this time to perform a direct cutover, where you move the data and
components from the old system to the new system.
Consider performing your cutover when no one is using the system and warning
users they might experience a loss of functionality while you complete the process.
When you've finished, you should be able to use the new program or service. For
example, the chat feature would now be live and able to receive and send
messages to system users.
If you installed a chat feature, you might use this time to assess its final
functionality compared to the original request. If parts of the process took longer
than you would have liked or if you receive feedback from the client, you can take
what you learned and apply it to future projects.
System is a broad and a general term, and as per to Wikipedia; “A system is a set
of interacting or interdependent components forming an integrated whole” it’s a
16
term that can be used in different industries, therefore Software Development Life
Cycle is a limited term that explains the phases of creating a software component
that integrates with other software components to create the whole system.
Below we’ll take a general look on System Development Life Cycle phases, bearing
in mind that each system is different from the other in terms of complexity, required
components and expected solutions and functionalities:
1- System Planning
The Planning phase is the most crucial step in creating a successful system, during
this phase you decide exactly what you want to do and the problems you’re trying
to solve, by:
Defining the problems, the objectives and the resources such as personnel and
costs.
17
Studying the ability of proposing alternative solutions after meeting with clients,
suppliers, consultants and employees.
After analyzing this data you will have three choices: develop a new system,
improve the current system or leave the system as it is.
2- System Analysis
3- System Design
A general system design can be done with a pen and a piece of paper to determine
how the system will look like and how it will function, and then a detailed and
expanded system design is produced, and it will meet all functional and technical
requirements, logically and physically.
In the Software Development Life Cycle, the actual code is written here, and if the
system contains hardware, then the implementation phase will contain
configuration and fine-tuning for the hardware to meet certain requirements and
functions.
18
5- System Testing and Integration
6- System Maintenance
In this phase, periodic maintenance for the system will be carried out to make sure
that the system won’t become obsolete, this will include replacing the old hardware
and continuously evaluating system’s performance, it also includes providing latest
updates for certain components to make sure it meets the right standards and the
latest technologies to face current security threats.
These are the main six phases of the System Development Life Cycle, and it’s an
iterative process for each project. It’s important to mention that excellent
communication level should be maintained with the customer, and Prototypes are
very important and helpful when it comes to meeting the requirements. By building
the system in short iterations; we can guarantee meeting the customer’s
requirements before we build the whole system.
Waterfall Strengths
1. Ideal for supporting less experienced project teams and project managers, or
project teams
whose composition fluctuates.
2. The orderly sequence of development steps and strict controls for ensuring the
adequacy of
19
documentation and design reviews helps ensure the quality, reliability, and
maintainability of the
developed software.
3. Progress of system development is measurable.
4. Conserves resources.
Waterfall Weaknesses
1. Inflexible, slow, costly and cumbersome due to significant structure and tight
controls.
2. Project progresses forward, with only slight movement backward.
3. Little room for use of iteration, which can reduce manageability if used.
4. Depends upon early identification and specification of requirements, yet users
may not be able to
clearly define what they need early in the project.
5. Requirements inconsistencies, missing system components, and unexpected
development needs
are often discovered during design and coding.
6. Problems are often not discovered until system testing.
7. System performance cannot be tested until the system is almost fully coded, and
under-capacity
may be difficult to correct.
8. Difficult to respond to changes. Changes that occur later in the life cycle are
more costly and are
thus discouraged.
9. Produces excessive documentation and keeping it updated as the project
progresses is time-
consuming.
10.Written specifications are often difficult for users to read and thoroughly
appreciate. 11.Promotes
the gap between users and developers with clear division of responsibility.
Types of Systems
Information systems are developed for different purposes, depending on the needs
of human users and the business. Transaction processing systems (TPS) function at
the operational level of the organization; office automation systems (OAS) and
knowledge work systems (KWS) support work at the knowledge level. Higher-level
systems include management information systems (MIS) and decision support
systems (DSS). Expert systems apply the expertise of decision makers to solve
specific, structured problems. On the strategic level of management we find
executive support systems (ESS). Group decision support systems (GDSS) and the
more generally described computer-supported collaborative work systems (CSCWS)
aid group-level decision making of a semi-structured or unstructured variety.
20
Transaction processing systems are boundary-spanning systems that permit the
organization to interact with external environments. Because managers look to the
data generated by the TPS for up-to-the-minute information about what is
happening in their companies, it is essential to the day-to-day operations of
business that these systems function smoothly and without interruption.
At the knowledge level of the organization are two classes of systems. Office
automation systems (OAS) support data workers, who do not usually create new
knowledge but rather analyze information to transform data or manipulate it in
some way before sharing it with, or formally disseminating it throughout, the
organization and, sometimes, beyond. Familiar aspects of OAS include word
processing, spreadsheets, desktop publishing, electronic scheduling, and
communication through voice mail, email (electronic mail), and teleconferencing.
21
broader spectrum of organizational tasks than transaction processing systems,
including decision analysis and decision making.
Artificial intelligence (AI) can be considered the overarching field for expert
systems. The general thrust of AI has been to develop machines that behave
intelligently. Two avenues of AI research are (1) understanding natural language
and (2) analyzing the ability to reason through a problem to its logical conclusion.
Expert systems use the approaches of AI reasoning to solve the problems put to
them by business (and other) users.
Expert systems are a very special class of information system that has been made
practicable for use by business as a result of widespread availability of hardware
and software such as personal computers (PCs) and expert system shells. An expert
system (also called a knowledge-based system) effectively captures and uses the
knowledge of a human expert or experts for solving a particular problem
experienced in an organization. Notice that unlike DSS, which leave the ultimate
judgment to the decision maker, an expert system selects the best solution to a
problem or a specific class of problems.
The basic components of an expert system are the knowledge base, an inference
engine connecting the user with the system by processing queries via languages
such as structured query language (SQL), and the user interface. People called
knowledge engineers capture the expertise of experts, build a computer system
that includes this expert knowledge, and then implement it.
22
Group Decision Support Systems and Computer-Supported Collaborative
Work Systems
When executives turn to the computer, they are often looking for ways to help them
make decisions on the strategic level. Executive support systems (ESS) help
executives organize their interactions with the external environment by providing
graphics and communications technologies in accessible places such as boardrooms
or personal corporate offices. Although ESS rely on the information generated by
TPS and MIS, executive support systems help their users address unstructured
decision problems, which are not application specific, by creating an environment
that helps them think about strategic problems in an informed way. ESS extend and
support the capabilities of executives, permitting them to make sense of their
environments.
23