Welcome To The World Of Software Testing
The idea for designing this site on Software Testing and Software Quality Assurance,is for all those interested in the field of software testing.
During my career in software testing I have found many people wish to learn Software Testing but was not properly guided. I wanted the software testing training to be given in a very simple and innovative way .So from then I was in search of some good documents on Software Testing.
Hence I thought of preparing this site on Software Testing and the idea evolved and with the support of many software testing and software quality experts in the world it turned into a new software testing site.
Using the Basic terms of Software Testing , I wanted to create a site that provides a comprehensive overview of the Software Testing profession and in addition addresses a number of new Software Testing topics.
To me this was probably the most interesting part of the editing and writing on Software Testing. "The E Testing Hub on Software Testing for a tester and basics of Quality Assurance on Software Testing."
I hope that many test professionals will be able to use the site as a basis from which to improve their Software Testing skills by themselves. Others may need expert advice and assistance as well.
The topics in this Software Testing site contains software testing principles, software testing process,software testing management, Software Testing risk management, Software Testing inspections and Software Testing reviews, software testing techniques (both functional and non-functional),software testing requirements,software testing models,software testing types,software testing methods,Software Testing-Online Manual Testing Tutorial,Software Testing-Automated Testing, Software Requirements Specification of Software Testing,Requirements Traceability Matrix(RTM) of Software Testing,Levels of Software Testing,Quality Assurance,Software Automation Tools,CMM Levels,Retesting and Regression Software Testing, Software Testing-test process improvement, and most importantly Software Testing Resumes
Software Development Life Cycle:-
A software development process, also known as a software development life cycle (SDLC), is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle. There are several models for such processes, each describing approaches to a variety of tasks or activities
that take place during the process. Some people consider a life cycle
model a more general term and a software development process a more
specific term. For example, there are many specific software development
processes that 'fit' the spiral life cycle model. ISO/IEC 12207
is an international standard for software life cycle processes. It aims
to be the standard that defines all the tasks required for developing
and maintaining software.
TWELVE TYPES OF QA TESTING
1. Unit testing (conducted by Development)
Unit test case design begins after a technical review approves the high level design. The unit test cases shall be designed to test the validity of the program's correctness. White box testing is used to test the modules and procedures that support the modules. The white box testing technique ignores the function of the program under test and focuses only on its code and the structure of that code. To accomplish this, a statement and condition technique shall be used. Test case designers shall generate cases that not only cause each condition to take on all possible values at least once, but that cause each such condition to be executed at least once. In other words:
1. Unit testing (conducted by Development)
Unit test case design begins after a technical review approves the high level design. The unit test cases shall be designed to test the validity of the program's correctness. White box testing is used to test the modules and procedures that support the modules. The white box testing technique ignores the function of the program under test and focuses only on its code and the structure of that code. To accomplish this, a statement and condition technique shall be used. Test case designers shall generate cases that not only cause each condition to take on all possible values at least once, but that cause each such condition to be executed at least once. In other words:
- Each decision statement in the program shall take on a true value and a false value at least once during testing.
- Each condition shall take on each possible outcome at least once during testing.
2. Configuration Management
- The configuration management team prepares the testing environment
3. Build Verification
When a build has met completion criteria and is ready to be tested, the QA team runs an initial battery of basic tests to verify the build.
When a build has met completion criteria and is ready to be tested, the QA team runs an initial battery of basic tests to verify the build.
- If the build is not testable at all, then the QA team will reject the build
- If portions of the website are testable and some portions are not yet available, the project manager, technical lead and QA team will reassign the build schedule and deliverable dates.
- If all portions of the build pass for testing, the QA team will proceed with testing.
4. Integration Testing
Integration testing proves that all areas of the system interface with each other correctly and that there are no gaps in the data flow. The final integration test proves that the system works as an integrated unit when all the fixes are complete.
5. Functional Testing
Functional testing assures that each element of the application meets the functional requirements of the business as outlined in the requirements document/functional brief, system design specification, and other functional documents produced during the course of the project (such as records of change requests, feedback, and resolution of issues).
6. Non-functional Testing (Performance Testing)
Non-functional testing proves that the documented performance standards or requirements are met. Examples of testable standards include response time and compatibility with specified browsers and operating systems.
If the system hardware specifications state that the system can handle a specific amount of traffic or data volume, then the system will be tested for those levels as well.
7. Defect Fix Validation
If any known defects or issues existed during development, QA tests specifically in those areas to validate the fixes.
8. Ad Hoc Testing
This type of testing is conducted to simulate actual user scenarios. QA engineers simulate a user conducting a set of intended actions and behaving as a user would in case of slow response, such as clicking ahead before the page is done loading, etc.
9. Regression Testing
Regression testing is performed after the release of each phase to ensure that there is no impact on previously released software. Regression testing cannot be conducted on the initial build because the test cases are taken from defects found in previous builds.
Regression testing ensures that there is an continual increase in the functionality and stability of the software.
10. Error Management
During the QA testing workflow, all defects will be reported using the error management workflow.
Regular meetings will take place between QA, system development, interface development and project management to discuss defects, priority of defects, and fixes.
11. QA Reporting
QA states the results of testing, reports outstanding defects/known issues, and makes a recommendation for release into production.
12. Release into production
If the project team decides that the build is acceptable for production, the configuration management team will migrate the build into production.