A Component is a tested,
special purpose software unit which is reusable, adaptable, portable and
interoperable. In software terms, components are also called componentware
(CM).
Framework is the
combination of components that can be plugged into an application.
A Software interface is
the program that makes it possible for components to interact and interoperate
with each other. Eg. JAVA BEANS
( DCOM is abbreviated as
Distributed Component Object Model. )
Software Entities are the
processes, requirements, products and resources of a software engineering
landscape.
An Engineering approach to
software engineering is to produce system on time and within budget.
Software Development problems
are :
1)
Conceptual problem.
2)
Representation problem.
Vanilla Framework helps to
bridge gap between a high level solution, to a problem and its implementation
in software.
Software Requirement
Specification (SRS) : This is a blueprint for the complete design of a
software product.
Quality Factors : correctness,
reliability, maintainability, testability, efficiency, integrity, usability,
portability, interoperability, reusability.
Reusability Criterion :
Self Descriptive : this is
with natural language.
Modularity : means change
in one component has minimal impact on other.
Portability : means
transfer of software from one system to other.
Platform Independence
means it can execute on any type of platform.
Incremental Approach to
software development has been formulated by watts Humphrey.
Clean Room Engineering is
used to control the quality of incrementally developed software product and to
certify the fitness of software products for usage at time of delivery.
CAPABILITY MATURITY MODEL
(CMM) :
CMM describes software process
management maturity relative to five levels
ie., Initial, Repeatable,
Defined, Managed, Optimizing
In the Initial
level there is a lack of planning and the development of a clear-cut guide
that software development teams can follow. Few details of a software process
have been defined at this level. Good results are considered miraculous.
KPA ---- Key Process Areas
In the Second
level ie., the CMM Repeatable Process is characterized by a commitment to
discipline in carrying out a software development project. And is achieved
by : Requirements management, software project planning, software project
tracking and oversight, software subcontract management, software quality
assurance, software configuration management.
In the Third
level ie., the CMM Defined Process is to guide the structuring and
evaluation of a software project. And is achieved by : Organisational
process focus and definition, training program, software product engineering,
intergroup coordination, peer reviews.
In the Fourth
level ie., the CMM Managed Process is for data gathering and analysis and
managing software quality. And is achieved by : Quantitative process
management, Software quality management.
In the Fifth
level ie., the CMM Optimizing Process is associated with defect prevention,
automation of the software process wherever possible, and methods for improving
software quality and team productivity and shortening development time.
Validation occurs whenever
a system component is evaluated to ensure that it satisfies system
requirements.
Verification consists in
checking whether the product of a particular phase satisfies the conditions
imposed at that phase.
Software Evolution : This
is characterized by genotypes and phenotypes.
A genotype
provides information about a member of a population.
A phenotype
characterizes the behavior of a population member.
Evolution
pattern = where || why || what || when || how || by-whom.
Software Life-Cycle : This
is the period of time beginning with a concept for a software product and
ending whenever the software is no longer available for use.
The
Software life-cycle typically includes the following: Requirements, Analysis,
Design, construction, testing (Validation), installation, operation,
maintenance, and retirement.
Several models
(spiral, waterfall etc.) have been proposed to describe this process.
Software Life-Cycle Model
represents the activities, their inputs and outputs and their interactions
during the life-cycle.
Software Life-Cycle Models :
What is Software Engineering ?
The
application of a systematic, disciplined, quantifiable approach to development,
operation, and maintenance of software; that is, the application of engineering
to software.
The
specification, development, management, and evolution of software systems.
A discipline
whose aim is the production of quality software, delivered on time, within
budget, and satisfying users' needs.
Designing and
developing high-quality software. Application of computer science techniques to
a variety of problems.
What is a CASE tool ?
CASE stands for
Computer Aided Software Engineering; it can be used to mean any computer-based
tool for software planning, development, and evolution.
What is a Function Point ?
Function points
and feature points are methods of estimating the "amount of
functionality" required for a program, and are thus used to estimate
project completion time. The basic idea involves counting inputs, outputs, and
other features of a description of functionality.
What is a Spiral Model ?
Basically, the
idea is evolutionary development, using the waterfall model for each step; it's
intended to help manage risks. Don't define in detail the entire system at
first.
The developers
should only define the highest priority features. Define and implement those,
then get feedback from users/customers (such feedback distinguishes
"evolutionary" from "incremental" development).
With this
knowledge, they should then go back to define and implement more features in
smaller chunks.
What is a Spec Mark?
SPEC mark
refers to the results of the first suite
What is Hungarian Notation?
A naming
convention for C code.
What is SEI Maturity Model?
First
step in improving the existing situation is to get management buy-in and
management action to clean up the software management processes.
Second step
(Integration) is to get everyone working together as a team.
Third step
(Measurements) is to establish objective ways of understanding status and
predict where things are going in your process.
Continuous
improvement: Understand that this is building a foundation for continually
getting better.
What is a BUG?
A
Fault, Failure, Mistake.
What is a Clean Room?
'Cleanroom'
is a software process based on mathematical verification of components and
statistical system-level testing.
What is Personal Software Process?
A
discipline for monitoring, testing, and improving your own Software Engineering
works.
What are the two major types of testing?
The following
are the two major groups of testing
i)
Black Box testing ii) Glass
box testing.
Black Box testing:
Functional or black box testing is an approach to testing where the tests are
dirived from the program or component specification.The system is a black box
whose behavior can only be determined by studying its inputs and the related
outputs.another name for this is the functional testing because the tester is
only concentrated with the functionality and not the implementation of the
software.
Black Box
testing focusses on the functional
requirements of the software i.e, Black Box testing enables the software
engineer to derive sets of input conditions that will fully exercise all
functiol requirements for a program.
The
challenge in the black box testing is to cause failures in the module by
designing test causes that,with an appropriate input and controlled externally conditions,can produce an output that will
clearly indicate a module failure
Which Test Cases to Automate?
Tests that need to be run for every
build of the application.
Tests that use multiple data values
for the same actions (data driven tests).
Tests that require detailed
information from application internals.
If Performed Manual Testing:
Time
Consuming, Low Reliability, Human Resources, Inconsistent.
If Performed Automated
Testing:
Speed,
Repeatability, Reusability, Reliability, Programming Capabilities.
What are CheckPoints ?
- Checkpoints enable you to compare the current behavior of your application to its expected behavior.
- GUI checkpoints check information about GUI objects. For example, you can check that a button is enabled or see which item is selected in a list.
- Database checkpoints check the data content in a database.
- Text checkpoints read text in GUI objects and in bitmaps, and enable you to check their contents.
- Bitmap checkpoints compare a "snapshot" of a window or an area in your application to an image captured in an earlier version.
Software Production Process
:-
The process of building ,delivering and evolving the software system from the inception of an idea all the way to
the delivery and final retirement of the system is called a software production
process.
The software production process may
follow different methods of software development .
- Water Fall Model
- Prototyping Process
- Rad Model
- Incremental Model
- Spiral Model
Conception:-
SDLC starts with the conception
phase.This phase is triggered by a competitor ,a problem or an opportunity
The problem perceived
The goal to be achieved
The benefits from the solution
The scope of the project
Initiation:-
The Software engineers work with
users to carry out a macro level study of the users requirements.The software
engineers define the various alternatives possible and the cost-benefit
justification of these alternatives.
Analysis :-
The software Engineers carry our a
detailed study of the users requirement .They then arrive at the proposed
system to be built .The model of this system is to be used to freeze all
requirements before the next phase begins.
Design :-
In this phase the functional
specifications are used for translating the model into a design of the desired
system like data flow diagrams
,decisions tables,databases etc.
Construction:-
This phases produces the actual
code that will be delivered to the customer as the running system .Individual
modules developed in this phase are
tested before being delivered to the next phase
Testing :-
All the modules that have been
developed before are integrated or put together in this phase, and tested as a
complete system. A system is tested for online response ,volume of
transactions, stress, recovery from failure, and usability.
Implementation:-
Implementation means converting a
new system design into operation .This involves creating computer compatible
files, training the operating staff, installing hardware and any other
requirements.
Prototyping Process :-
The basic idea of prototyping model
is instead of fixing requirements before design and coding can begin ,a
prototype is built to understand the
requirements .the prototype is built with the know requirements by this the user can be know how the system
works
Rad Model :-
Rapid Application development is
high speed adaption of the linear sequential model in which rapid development
is achieved by using component based construction ,business model and data
modeling etc.
Incremental Model : -
Incremental model delivers software in small but usable pieces
called increments .In general each increment builds on those that have already
been delivered. In this analysis, design, coding and testing are done for every
model.
How
can u measure the quality of your project
Some
sdlc models
Explain
Waterfall model and say what is the output in each phase?
Types
of testing
Levels of testing
Unit testing :-
Generally the code which is
generated are compiled. The unit test is
white box oriented and the steps can be conducted in parallel for multiple
components.
1.The module Interface
is tested to ensure that information properly flows into and out of the
program unit under test.
2.The local data structure is examined to ensure that data
stored temporarily maintains its intergrity during all steps in an algorithm’s
execution.
3.Boundary conditions are tested to ensure that the module
operates properly at boundaries established to limit and restrict processing
4.All the statements are executed at least once and error handling paths are tested
Integration testing:-
Integration testing is a systematic
technique for constructing the program structure .In integration test you have
like
Top down :-
Top down integration testing with
the main routine and one or two immediate subordinate routines in the system
structure it is good to have modules are integrated as they are developed, top
level interfaces are tested first
Bottom up :-
Bottom up integration testing is the traditional
strategy used to integrate the components of a software system into a
functioning whole
Regressive testing :-
Retesting the already test modules
and adding new modules .Regressive testing is an important strategy for
reducing side effects.
System Level Testing
Performance testing:- Performance testing is
designed to test the run time
performance of software or hardware
Recovery testing :- is a system test forces the
software to fail in a variety of ways and verifies that recovery is properly
performed .if recovery is automatic, re initialization , check pointing ,data
recovery and restart are evaluated for correctness.
Security Testing :- Security testing attempts to
verify that protection mechanisms built into a system will in fact ,protect it
from improper penetration.
Acceptance testing:-
when customer software is built for
one customer ,a series of acceptance tests are conducted to enable the customer
to validate all requirements.conducted by the end user rather than software
engineers, an acceptance test can range from an informal test drive to a
planned and systematically executed series of tests.
if software is developed as a
product to be used by many customers ,it is impractical to perform acceptance
tests with each one.Most software product builders use a process called alpha and
beta testing to uncover errors that only the end user seems able to find
Test Case Design
A product can be tested in one of
two ways
Knowing the specified function that
a product has been designed to perform, tests can be conducted that demonstrate
each function is fully operational. This is know as black box testing.
Knowing the internal workings of a
product , tests can be conducted to ensure that the internal operation of the
product performs according to specification and all internal components have
been exercised. This is know as white box testing
White box testing:-
Using white box
testing methods,the software engineer can derive test cases that do the
following:-
Guarantee that all independent
paths with in a module have been executive once at least.
Exercise all logical decisions on
their true and false sides
Exercise all loops ,data
flow,conditional testing are working
Black box testing:-
Black box testing methods focus on the functional
requirements of the software. It enables the software engineer to derive sets
of input conditions that will fully exercise all functional requirements for a
program .Black box testing is not an alternative to white box testing
techniques .Rather it is a complementary approach that is likely to uncover a
different class of errors than white box methods.
Really nice topics you had discussed above. I am much impressed. Thank you for providing this nice information here.
ReplyDeleteSoftware Testing Company
QA Services
Game Testing Services
Video Game Testing Companies
Really nice topics
ReplyDeleteSoftware Testing Training in Chennai | Certification | Online Courses
Software Testing Training in Chennai | Certification | Online Training Course | Software Testing Training in Bangalore | Certification | Online Training Course | Software Testing Training in Hyderabad | Certification | Online Training Course | Software Testing Training in Coimbatore | Certification | Online Training Course | Software Testing Training in Online | Certification | Online Training Course
I like your post there is a lot of information about software testing companies,which i would like to learn, thank you for the great guide.
ReplyDelete