ST - Unit I
ST - Unit I
ST - Unit I
Introduction
Introduction as an Engineering Activity
• Software Engineering
– Application of systematic disciplined
– Quantifiable approach to develop an effective and efficient
software
• Software Testing
• Internal part of software engineering
• Verification and validation of software
• Execution of software with actual test data
• It focused on quality issues, poor quality software not
acceptable by user.
• Software failure leads to catastrophic losses.
• Software Product
– It is universal requirement
– It is build with in time, budget, quality
– Quality is based on reliability, correctness, usability,
satisfying all user requirements, etc
• Engineering Discipline:
– Engineering are normally educated and trained based on,
• Standards
• Tools measurements
• Best practices
• Engineering process
• Basic scientific principles
• Test Specialist:
A well trained and well educated domain expert is called “test
specialist”
Test specialist concentration is based on,
o Principles,
o Practices
o Processes of software engineering discipline
Test specialist must know,
o Test processes, principles
o Test measurements
o Testing standards
o Test plan
o Testing tools
o Testing methods
o Testing elements
TESTING AS A PROCESS
• Software process : Fundamental activities are,
– Software specification
– Software development
– Software validation
– Software evaluation
• The purpose of testing is to cover the defects in the
system
raw material finished product
Process
Test Input
Executable code
Defect Analysis
Testing objectives:
– To find error before user
– Cover all the defects before launch
– Testing is related to 2 processes, they are
• Verification
• Validation
– Verification and validation processes done after the
implementation processes
– Verification: “whether a system is right or wrong”?
– Validation: “whether a system is right system or
not”?
Testing purpose :
To check the quality attributes of software like,
– Reliability
– Security
– Usability
– Correctness
Debugging:
–Process of finding and correcting the errors
Process:
1. Test case are taken
2. Test cases are executed
3. Find errors
4. Repair the code
5. Retest the code
Testing-Aspects:
1. Economic aspects
• Formatted testing process is completed within time and
budget
2. Technical aspects
• Technical support are necessary to find defects : testing
methods, tools, advanced testing techniques
3. Managerial aspects
• Manage the test process
• Follow organizational policy and standards
• Testing process should be measured and monitored
TESTING AXIOMS
“ An established rule, principle or law”
Its impossible to test a program completely because
• No of possible inputs are large
• No of possible outputs are large
• No of paths through the software is large
Types:
Stakeholder axiom – people who get benefited
Test basis axiom – identify the targets of testing
Scope management axiom –items in & out of managing change
Coverage – measure process towards the goal
Delivery - frequency or format to be provided
Environment – it is used for testing
Event – managing and communicating planned & unplanned events
Prioritization – priority the tests
Design – adopt and agree a model
TESTING AXIOMS
Conclusion of Axioms
scheduling goals
the ability to meet quantifiable testing goals
5 levels
Initial
Phase definition
Integration
Defect Quality
Test planning repository evaluation
Defect Test
prevention measurement
Test Oracle:
A test oracle is a document, or piece of software that allows testers to
determine whether a test has been passed or failed.
Test Bed:
A test bed is an environment that contains all the hardware and software
needed to test a software component or a software system.
Reviews:
It is a well structure and regulated.
Inspection:
It is a formal review type. It is lead by trained moderator.
Software Testing Principles
• Testing principles are used as a guidelines for tester.
• It is defined as general ‘law’, ‘rule’ or ‘code of conduct’ (or) ‘ facts
of nature’
Key Principles:
• Testing shows the presence of defects
• Exhaustive testing is impossible.
• Early testing
• Defect clustering
• Pesticide Parabox
• Testing is context dependent
• Absence of errors fallacy
• Testing as a creative and challenging task
• Testing activities should be integrated into software life cycle
• Testing should be planned
• Tests must be repeatable and reusable
• Testing should be carried out by a group
• Software component is proportional to no of defects
• Test case development on all conditions
• Test case must contain the expected output and result
• Test results should be inspected meticulously
• Test case defects of all the undetected defect
• Testing executes selected set of test case
The Tester‘s Role in a Software Development
Organization
Tester roles:
1. To reveal defects
2. To find weak points
3. To know the inconsistent behavior of system
4. To find the situations at which software does not work
5. To get more programming experience, it helps to,
1. Understanding software/ system
2. How to code is developed
3. Possibilities of errors
4. When occur it may be occurred
• Try to produce high quality software
• Try to satisfy user requirements and needs
• Tester combine and work with requirement engineers
• Tester combine work with test manager and project manager
• Tester performs,
– To provide test plan early
– To do execution parallel
– Recording the test results
– Analyzing the test results
• To minimize the cost for support
• Inform the errors and defects to developers
• Tester needs,
– Communication skills
– Team working skills
– Decision making skills
– Scripting knowledge/ coding skills
– Working experience, etc
DEFECTS,HYPOTHESES AND TESTS
not satisfied, poor quality
software , time and cost constraints
1. Origins of Defects
•The term defect and its relationship to the terms error and failure in
the context of the software development domain.
•Defects have detrimental affects on software users, and software
engineers work very hard to produce high-quality software with a
low number of defects.
•But even under the best of development circumstances errors are
made, resulting in defects being injected in the software during the
phases of the software life cycle.
1. Education:
The software engineer did not have the proper educational
background to prepare the software so it leads to defect
2. Communication:
software engineers must communicate with group members properly.
3. Oversight:
The software engineer omitted to do something.
For example, a software engineer might omit an initialization statement.
4. Transcription:
The software engineer knows what to do, but makes a mistake in doing it. A
simple example is a variable name being misspelled when entering the code.
5. Process:
The process used by the software engineer misdirected her actions. For
example, a development process that did not allow sufficient time for a
detailed specification to be developed and reviewed could lead to
specification defects.
Testers as doctors need to have knowledge possible defects
about
(illnesses) in order to develop defect hypotheses. They use
the hypotheses to:
The beginning of the software life cycle is critical for ensuring high quality in the
software being developed.
Defects injected in early phases can persist and be very difficult to remove in
later phases.
Since many requirements documents are written using a natural language
representation, there are very often occurrences of ambiguous, contradictory,
unclear, redundant, and imprecise requirements.
1. Functional Description Defects
3. Data Defects
Due to poor data structure
Eg:
Incorrect allocation of memory
Incorrect type assignment
Lacking of field in a record
4. Module Interface Description Defects
These are defects derived from,
Incorrect, and/or in- consistent parameter types,
Incorrect number of parameters,
Incorrect ordering of parameters.
To collect defect relevant data, forms and templates are help to collect data. Eg:
Defect fix reports
test reports
Reports are to be recorded each defect and frequently of the occurrence each defect
type after testing.
The defect data is used for test planning. It helps
• Defect prevention:
• It is one of the important activity in any software project.
• It is QA process to identify the root causes of defects, which
helps to improve the process to avoid introducing defects.
Activities performed
Measurement and analysis
Verifying implementation
– DP through Automation of Development Process:
– Tools are eliminated human intensive defects.
– Automation tools are available from requirement phase to testing phase.
– Requirement tools are classifies by,
Requirement management tool
Requirement recorded tool
Requirement verifier tool
– Design tools include:
Data base design tool
Application design tool
Visual modelling tool
– Testing phase includes:
code generation tool
code testing tools
code coverage tools
code analyzer tool
defect tracking tool
•
– Test Maturity Model
Control, logic, and sequencing defects. The defect in this subclass arises from
an incorrect “while” loop condition (should be less than or equal to six)
Algorithmic, and processing defects. These arise from the lack of error
checks for incorrect and/or invalid inputs, lack of a path where users can
correct erroneous inputs, lack of a path for recovery from input errors. The
lack of an error check could also be counted as a functional design defect
since the design does not adequately describe the proper function- ality for the
program.