Basic Software Testing 101 - · PDF fileTitle: Microsoft Word - Basic Software Testing 101...
Transcript of Basic Software Testing 101 - · PDF fileTitle: Microsoft Word - Basic Software Testing 101...
Copyright © 2010 iyeping.foo 1
Basic Software Testing 101
This section introduces basic concepts of Software Testing.
Content:
1. Software Testing Categories
2. Software Testing Spectrum
3. Software Testing within SDLC
4. Software Testing Process and Activities
5. Software Testing Environment and Data
6. Software Quality Continuous Improvements
7. Software Testing Organization
8. Essential Success factors of a Software Test Organization
1. Software Testing Categories
Software testing can be categorized into the following based on how testing are done:
• Dynamic Testing
Software under test are actually being manipulated in order to verify correctness of functionality
• Static Testing
Software under test is inspected visually in order to verify present of functionality, which may be
inspection of code or documents.
2. Software Testing Spectrum
From the lowest level, testing starts with White Box Testing, progressing to Gray Box Testing and the
highest level will be Black Box Testing. These different types of testing differ in terms of:
• Code visibility
• Complexity
Complexity
White Box
Testing
Gray Box
Testing
Black Box
Testing
Code Visibility
Copyright © 2010 iyeping.foo 2
Definition of each type of testing:
• White Box Testing
Testing which takes into account the internal mechanism of a system/component
• Black Box Testing
Testing which ignore the internal mechanism of a system/component, focuses solely on the
outputs generated in response to selected inputs and execution conditions
• Gray Box Testing
Combinations of white box and black box testing
For each type of testing, it can be further refine to different level of testing:
• White Box Testing
o Code analysis (using tools)
o Test driver
o Code inspections
• Black Box Testing
o Functional Test
o System Test
� Performance Test
� Load/Stress Test
� Usability Test
o Regression Test
o Smoke Test
o User Acceptance Test
3. Software Testing within SDLC
Software Testing is present in every part of the SDLC, regardless if you practice the “traditional”
waterfall model or the “fashionable” agile model, software testing remain the same.
Copyright © 2010 iyeping.foo 3
4. Software Testing Process and Activities
Software testing is a very methodical process; it starts with planning and ends with reporting of test
results. Each phase has further sub-activities & process.
5. Software Testing Environment and Data
Test environment is very delicate, as diagnoses depend on a traceable environment. Hence, test
environment needs to be independent and properly managed and maintain. Test environment should
be properly documented to allow for review and replication.
Most applications are data driven and change according to type of data being manipulated, test data
must be able to:
• Cover the breath and length of testing range
• Be as close to real data as possible (washed real data)
• Updated periodically if it is time sensitive
Successful testing depends on Environment & Data!
•What are to be tested?
Test Planning
•Test Design & Implementations
Test Preparation •Run Test & Collect
Results
•Report Error
Test Execution
•Test Analysis & Summary
•Recommendations
Test Reporting
Copyright © 2010 iyeping.foo 4
6. Software Quality Continuous Improvements
Software Testing is part of a Software Quality program where continuous improvement should be the
main objective. With continuous feedbacks, review and adjustment to strategies and methodologies,
software quality will improve in no time without additional effort.
7. Software Testing Organization
Software Testing Organization must remain an independent group, to:
• Avoid being influence (by developers, product management, project management etc.)
• Able to remain objective
As such Software Testing Organization needs to be empowered to make recommendations and stand by
their recommendations without having to fear consequences.
Software Testing can be organized as a separate team, or as resource pool within a matrix organization
• A separate test team may be due to:
o Large project teams with multi-level project or program management
o The need to remain focus on specific test project, i.e. automation
• As resources pool
o Project-base matrix organization
o Agile environment
Copyright © 2010 iyeping.foo 5
8. Essential Success factors of a Software Test Organization
A successful software test organization should invest in these 5 areas:
• Solid software testing understanding and skills of various type of testing
• Solid product knowledge
• Sensible and adherence to processes
• Proper QA infrastructure
• Test automation
Successful QA Org
QA Infrastructure
SW Testing Skills
Solid Product Knowledge
Processes
Automation