Quality Assurance & Testing
A Software Quality Analyst is responsible for applying the principles and practices of software quality assurance throughout the software development life cycle. The role of a software quality analyst is often confused with the software testing role. Most software companies designate software testing as software quality assurance, whereas these roles are different. Software Testing is product oriented, Software Quality Assurance is process oriented. SQA encompasses the entire software development process, which includes processes such as requirements definition, software design, coding, source code control, code reviews, change management, configuration management, testing, release management, and product integration. SQA is organized into goals, commitments, abilities, activities, measurements, and verifications. Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs. Software testing, when done correctly, can increase overall software quality of conformance by testing that the product conforms to its requirements. Testing includes, but is not limited to: 1. Unit Testing 2. Functional Testing 3. Regression Testing 4. Performance Testing 5. Failover Testing 6. Usability Testing A number of agile methodologies use testing early in the development cycle to ensure quality in their products. For example, the test-driven development practice, where tests are written before the code they will test, is used in Extreme Programming to ensure quality.