"QA establish and maintain standards for how to best test a software product."

As mentioned in my previous post on Agile Testing, I was looking forward to learning more about QA & Testing, and it was back to searching for courses on LinkedIn Learning. Going through Programming Foundations: Software Testing/QA brought back memories from my tertiary days, and it dawned on me “Hey, I did learnt about QA in the past”.

Here we’ll typically say the knowledge have been returned to our lecturers i.e. the knowledge have been archived. Besides the nice trip down memory lane, I quite enjoy this course and will recommend this to folks looking to refresh their knowledge and/or learn more about software testing & QA.

1. Roles and Responsibilities of QA
     a. Technical Aptitude (Programming & scripting)
     b. Business Knowledge (What product functionalities are important to the business)
     c. DevOps Principles (Configure tools, setup CI & automate tests)
     d. Process and Release expertise (Testing & release best practices)

2. Software Development Lifecycle (SDLC)
     a. Plan: Identify risks & use cases
     b. Define: Develop test strategy per acceptance criteria & scope
     c. Design & Build: Finalize test scenarios
     d. Test: Manual & automation tests
     e. Deploy: Validate release build & production functionality

3. QA Process
     a. Create a Test Strategy document (Set expectations)
     b. Develop a Test Plan (Living document of testing scenarios)
     c. Acceptance Criteria format (Given A, When B, Then C, And D)
     d. Definition of “Done” (Testing is completed with sign-off from product, design & QA) 

4. QA Testing
     a. Box Testing (Black box, Gray box, White box)
     b. Manual Testing (Test plan scenarios: Happy path & Sad path)
     c. UI Automation Testing (Prioritize automation to enable regression testing on multiple platforms & browsers)
     d. Performance Testing
          i. Load Testing (Max operating capacity + bottleneck)
         ii. Endurance/Soak Testing (System problem over time)
         iii. Stress Testing (Breaking point: Data processing under extreme workload)
     e. Integration Testing (Fully automated testing of interaction between browser, server & database)
     f. Security Testing (Flaws or vulnerabilities e.g. SQL Injection, Denial of Service)

5. Bugs
     a. Bugs are inevitable
     b. Bugs are versatile
     c. Mob Testing Sessions (1 hour 1 week before major release)
     d. Bug Bashes (1 week 2 to 4 times a year)

6. Additional Online Resources
     a. https://www.ministryoftesting.com
     b. https://www.softwaretestinghelp.com
     c. https://www.softwaretestpro.com

"By getting involved outside of just the testing phase, the product will have quality built into it at all stages."