SLM - Unit 11
SLM - Unit 11
SLM - Unit 11
11.1 Introduction
In the previous unit we have seen various computer software, system
software, application software, proprietary software and open source
software. In this unit, we will study the requirement analysis, design
process, system development of various models like waterfall, agile, spiral
and V-model. We will also study the software testing life cycle, various types
of software testing, software paradigms, programming methods and
software applications. The software life cycle is a view of activities that
occur during the process of software development. For example, if you
consider human life cycle (infant, child, adult and senior citizen); it helps to
understand the basic activities and characteristics of humans as they
progress.
Objectives:
explain analysis and design of software
explain various models for system development
describe various steps involved in software testing life cycle
Sikkim Manipal University B2071 Page No.: 213
Fundamentals of Information Technology Unit 11
Self-Assessment Questions
4. In ____________ phase, customer requirements are transformed into
a system design.
5. In design phase, identifying the programming language, database and
hardware decisions are taken. (True/False)
has four phases. They are – planning, risk analysis, development and
evaluation. Software projects repeatedly pass through all these phases in
iterations. The project life cycle moves in a spiral in spiral model. The
baseline spiral starts in the planning phase and ends at the evaluation
phase.
In spiral model, the software project passes through all the phases in the life
cycle. Each phase has some specific activity to perform. The requirements
for the project are gathered in the planning phase. The risks and alternative
solutions are identified in the risk analysis phase. At the end of the risk
analysis phase, a prototype is produced. In the development phase, the
software is developed and the testing is done at the end of this phase. In the
evaluation phase the customer evaluates the project before it continues to
the next spiral. Figure 11.4 shows a spiral model.
Disadvantages
This model is costly to use and implement.
Success of the project depends on the risk analysis phase.
Not suitable for small projects.
11.4.4 V-Model
The extension of Waterfall model is the V-Model. V-Model is also called as
verification and validation model. In V-Shape life cycle model, the execution
happens in a sequential manner. In this model, the testing phase is planned
in parallel with all the phases (requirement analysis, high level design, low
level design and coding or implementation.). V-model joins coding phase on
both the sides, one side is verification phase and other side is validation
phase.
Under V-Model, the corresponding testing phase of the development phase
is planned in parallel. So there are Verification phases on one side of the
V. and Validation phases on the other side. Coding phase joins the two
sides of the V-Model.
During implementation or coding phase, at the bottom of the V model coding
is performed. Once coding is complete, development progresses up the
right side of the V model, moving through the test plans developed during
the earlier phases. If a problem arises during a testing phase, the life-cycle
reverts back to its corresponding development phase. Figure 11.5 shows a
V-Model of SDLC.
Requirement Analysis
Requirement Analysis is the very first step in the Software Testing Life
Cycle (STLC). In this step the Quality Assurance (QA) team understands
the requirement in terms of what will be tested and figures out the testable
requirements. Quality Assurance means preventing failures or errors in the
product. If any requirement is missing or not understood, then quality
assurance team follows up with the different stakeholders like Business
Analyst, System designer, Client, Technical Manager or Technical Lead and
others to better understand the detail knowledge of requirement.
Test Planning
Test planning is the most important phase of the software testing life cycle
where all testing strategy is defined. Test strategy is one which describes
the testing approach. This phase is also called as test strategy phase. In
this phase, based on company policy, the test manager or test lead is
involved to determine the effort and estimate the cost for the entire project.
Then the team starts preparing the test plan based on the requirement
analysis. The result of test planning phase is presented in the tested plan or
test strategy and testing effort estimation documents. Quality assurance
teams can start with test case development activity, once test planning
phase is completed.
Test Case Development
A test case is a set of conditions under which a tester will determine
whether one of its component feature is working. Once the test plan is
completed, the test case development is started. This is the phase of STLC
where the testing team writes down the detailed test cases and the team
prepares the test data. Once the test cases are ready, these test cases are
reviewed by the quality assurance team and also the Requirement
Traceability Matrix (RTM) is prepared. The Requirement Traceability Matrix
is a format for tracking requirements where each test case is mapped with
the requirements.
Test Environment Setup
An important part of the software testing life cycle is setting up the test
environment. Test environment setup means arrangement of software,
hardware and the associated environment settings required to run the test
cases. This is independent activity and can be started parallel with test case
development. Depending on company policy, the test designer creates the
testing environment. Meanwhile testing team prepares the test cases to
check the readiness of the test environment setup.
Test Execution
Once the preparation of test case development and test environment setup
is completed then test execution phase can be started. In this phase, the
testing team starts executing test cases based on prepared test planning
and prepared test cases in the prior step.
Once the test case is passed then same can be marked as Passed. If any
test case is failed then corresponding bug can be reported to developer
team through bug tracking system and bug can be linked to the
corresponding test case for further analysis. A bug is an error or failure or
fault. Ideally every failed test case should be associated with at least a
single bug or error. Using this linking we can get the failed test case with
bug associated with it. Once the bug is fixed by development team, the
same test case can be executed based on your test planning.
Due to any bug, if any of the test cases are blocked then such test cases
can be marked as blocked. A bug report can be prepared based on how
many test cases passed, not run, blocked and failed. Once the errors are
fixed, some failed, not run or blocked test cases can be executed again to
retest the functionality.
Test Cycle Closure
In test cycle closure, based on company policy, the manager or senior
manager conducts the meeting to check what all went well, which area
needs to be improved and taking the lessons from current STLC as input to
upcoming test cycles, which will help to improve STLC process.
Self-Assessment Questions
12. STLC stands for ______________.
13. ___________ is a step-by-step process used for testing any software.
14. A ___________ is a set of conditions under which a tester will
determine whether one of its features is working.
15. The ________________ is a format for tracking requirements where
each test case is mapped with the requirement.
System Testing
Performance Testing
Acceptance Testing
Regression Testing
Black Box Testing
Black Box Testing is also called as functional testing. In this testing, the
tester just focuses on inputs and outputs of the software system without
having any internal knowledge of the program. Black box testing is often
used for validation.
White Box Testing
White box testing is a testing technique that takes internal logic and
structure of the code into account. White box testing is also called as
structural testing or glass box testing or open box testing or unit testing. In
order to perform white box testing on an application, the tester needs to
possess knowledge of the internal working of the code. The tester needs to
have a look inside the source code and find out which part of the code is
behaving inappropriately. White box testing is often used for verification.
Integration Testing
Integration testing is testing in which individual software modules are
combined and tested as a group to produce output.
System Testing – System testing is the testing to make sure that by
keeping the software in different environments (for example, Operating
Systems) it still works. System testing is done with full system
implementation and environment.
Performance Testing – Term often used interchangeably with ‘stress’ and
‘load’ testing. It is done to check whether system meets performance
requirements. Different performance and load tools are used to do this.
Acceptance Testing – Acceptance testing is basically done by the user to
make sure that the delivered product meets the user requirements and
works as per the user’s expectations.
Regression Testing – Regression testing is the testing carried out to
ensure that modifications made to fix the errors are not impacting on the
previously working functionality.
Self-Assessment Questions
16. ___________ is the process of executing a program with the intent of
finding errors or failures or faults.
17. ___________ is the process to make sure that the product satisfies the
specified requirements at the end of the development phase.
18. Mention any two types of testing
19. In __________ testing, tester does not require internal knowledge of
the program, just focuses on inputs and outputs.
20. In __________ testing, tester requires internal knowledge of the
program.
21. In _____________ testing, modifications made to the program to fix the
errors are not impacting on the previously working functionality.
Many paradigms are used in programming. These are the three classic
programming paradigms:
1. Imperative Paradigms
2. Functional Paradigms
3. Logic Paradigms
1. Imperative Paradigms – The imperative paradigm is also called as an
algorithmic paradigm. In the algorithmic paradigm a program consists of
data and an algorithm that is a sequence of commands that manipulate
Sikkim Manipal University B2071 Page No.: 228
Fundamentals of Information Technology Unit 11
the data. The data at a particular point of time defines the state of the
program. The state of the program changes as the commands are
executed in sequence. In the memory the data is stored. Imperative
programming languages provide variables to refer to the memory
locations. In this language you need to specify the steps to solve a
problem (for example addition of two numbers).
2. Functional Paradigms – The functional paradigm is based on
mathematical functions. Functional programming paradigms treat values
as single entities. Unlike variables, values are never modified. Instead,
values are transformed into new values. Computations of functional
languages are performed largely by applying functions.
3. Logic Paradigms – In this paradigm we express computation
exclusively in terms of mathematical logic. While the functional paradigm
emphasizes the idea of a mathematical function, the logic paradigm
focuses on predicate logic, in which the basic term is a relation. Logic
languages are useful for expressing problems where it is not clear what
the functions should be. For example consider the ‘uncle relationship’: a
given person can have many uncles, and another person can be uncle
to many nieces and nephews.
Self-Assessment Questions
22. _________ shares common characteristics of an entity.
23. __________ was one of the foremost user of the word (paradigm), who
composed the book “the structure of Scientific Revolution’’.
24. Mention any two programming paradigms
25. The imperative paradigm is also called as ____________.
Self-Assessment Questions
26. ____________ is the only stage where a programmer can read and
modify a computer program.
27. Mention any two programming methods.
28. Mention any two software applications.
11.10 Summary
Let us recapitulate the important points covered in the unit:
The first stage of software development process is requirement analysis.
In design phase, the customer requirements are transformed into a
detailed system design.
Each process model follows a series of steps unique to its type, in order
to ensure success in process of software development.
Various Software Development Life Cycle models: Waterfall Model,
Agile Methodology, Spiral and V – Model
The different stages of software testing life cycle are: Requirement
Analysis, Test Planning, Test Case Development, Test environment
setup, Test Execution and Test Cycle Closure
Software testing is the process of executing a program with the intent of
finding errors or failures or faults.
Types of software testings are: Black Box Testing, White Box Testing,
Integration Testing, System Testing, Stress Testing, Performance
Testing, Acceptance Testing and Regression Testing.
Paradigm means that share a common characteristics of an entity.
Thomas Kuhn was one of the foremost users of the word (paradigm),
who composed the book “the structure of Scientific Revolution’’.
Commonly used programming paradigms are: Imperative Paradigms,
Functional Paradigms and Logic Paradigms.
Computer programming is a sequence of instructions written by using a
Computer Programming Language to perform a specific task by the
computer.
Common methods used in programming are: Structured programming
and Object-Oriented Programming (OOP).
11.12 Answers
Self-Assessment Questions
1. Requirement Analysis
2. True
3. Iterative
4. Design
5. True
6. Software Development Life Cycle
7. Waterfall Model and Agile Methodology
8. Waterfall Model
9. Iterative and Incremental.
10. Risk Analysis
11. V-Model
12. Software Testing Life Cycle
13. STLC
14. Test case
15. Requirement Traceability Matrix
16. Software testing
17. Validation
18. Black box testing and white box testing
19. Black box testing
20. White box testing
21. Regression
22. Paradigm
23. Thomas kuhn
24. Imperative paradigms and functional paradigms