Introduction To SE BSNL
Introduction To SE BSNL
Introduction To SE BSNL
Software Engineering:
Adaptation
Enhancement
Preventions
Software Development Life Cycle
Process Flow
Process flow — describes how the framework activities, actions and
tasks that occur within each framework activity are organized with
respect to sequence and time
Process Flow
Process Models
A software process model represents the order in which the activities
of software development will be undertaken.
Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
Integration is done as a "big-bang. at the very end, which doesn't allow identifying any
technological or business bottleneck or challenges early.
V Model
V Model
emphasizes the concept of “Verification and Validation”
Advantages
Less bugs: Do testing in every layer
3. A first prototype of the new system is constructed from the preliminary design.
This is usually a scaled-down system, and represents an approximation of the
characteristics of the final product.
Prototyping Model
4. The users thoroughly evaluate the first prototype, noting its strengths and
weaknesses, what needs to be added, and what should to be removed. The
developer collects and analyzes the remarks from the users.
5. The first prototype is modified, based on the comments supplied by the users, and
a second prototype of the new system is constructed.
6. The second prototype is evaluated in the same manner as was the first prototype.
Prototyping Model
7. The preceding steps are iterated as many times as necessary, until the users are
satisfied that the prototype represents the final product desired.
Since, this methodology a working model of the system is provided, the users get
a better understanding of the system being developed.
Typically, online systems, web interfaces have a very high amount of interaction with end
users, are best suited for Prototype model. It might take a while for a system to be built that
allows ease of use and needs minimal training for the end user.
Spiral Model
Spiral Model
When to use Spiral Model?
Disadvantages
The core product is developed first i.e. main functionality is added in the
first increment.
Needs a clear and complete definition of the whole system before it can be
broken down and built incrementally.
It should be used only if the budget allows the use of automatic code generating
tools.
RAD Model
Advantage of RAD Model
This model is flexible for change.
For large, but scalable projects, RAD requires sufficient human resources to create
the right number of RAD teams.
A good test case is one that has a high probability of finding an as-yet
undiscovered error.
Validation refers to a different set of tasks that ensure that the software that has
been built is traceable to customer requirements. Boehm [Boe81] states this
another way:
Verification: "Are we building the product right?"
Options:
System test evaluates both functional behavior and quality requirements such as
reliability, usability, performance and security.
This phase of testing is especially useful for detecting external hardware and
software interface defects.
Example:
causing race conditions
deadlocks
Performance testing
Load testing (increasing workload)
Scalability testing (measured in terms of its ability to scale up or scale down the number of user
requests)
Regression Testing
Regression testing is the re-execution of some subset of tests that have already been
conducted to ensure that changes have not propagated unintended side effects
Whenever software is corrected, some aspect of the software configuration (the program, its
documentation, or the data that support it) is changed.
Regression testing helps to ensure that changes (due to testing or for other reasons) do not
introduce unintended behavior or additional errors.
Regression testing may be conducted manually, by re-executing a subset of all test cases or
using automated capture/playback tools.
User Acceptance Testing
Alpha Testing
Loop testing
Condition testing
Basis Path Testing
Basis path testing is a white-box testing technique first proposed by Tom McCabe.
A simple notation for the representation of control flow is called a flow graph.
Cyclomatic complexity
Cyclomatic complexity is a software metric that provides a quantitative measure
of the logical complexity of a program.
For example, a set of independent paths for the flow graph illustrated in Figure B
is
path 1: 1-11
path 2: 1-2-3-4-5-10-1-11
path 3: 1-2-3-6-8-9-10-1-11
path 4: 1-2-3-6-7-9-10-1-11
Cyclomatic complexity
Complexity is computed in one of three ways:
The number of regions of the flow graph corresponds to the cyclomatic complexity.
Techniques:
Equivalence Class Partitioning
Example: If you are testing for an input box accepting numbers from 1 to 1000
The valid partition: Pick a single value from range 1 to 1000 as a valid test case.
The invalid partition1: Input data class with all values below the lower limit. I.e. any value
below 1, as an invalid input data test case.
The invalid partition2:Input data with any value greater than 1000 to represent the third
invalid input class.
Equivalence class partitioning
Equivalence class partitioning results in a partitioning of the input domain of the software
under-test.
advantages:
It guides a tester in selecting a subset of test inputs with a high probability of detecting a
defect.
It allows a tester to cover a larger domain of inputs/outputs with a smaller subset selected
from an equivalence class.
Boundary Value Analysis
find the errors at boundaries of input domain (tests the behavior of a program at the input
boundaries) rather than finding those errors in the centre of input.
the basic idea in boundary value testing is to select input variable values at their:
minimum, just above the minimum, just below the minimum, a nominal value, just below
the maximum, maximum and just above the maximum.
It is a very effective tool used for both complex software testing and requirements
management.
Decision table helps to check all possible combinations of conditions for testing and testers
can also identify missed conditions easily.
It is also known as Ishikawa diagram as it was invented by Kaoru Ishikawa or fish bone
diagram because of the way it looks.
Cause Effect Graphing / Decision Table Testing