
Differentiate quality assurance from quality control and describe how testing verifies the final software against requirements, using the requirements document as the contract in a software quality assurance management process.
Definition of software per IEEE includes computer programs, procedures, documentation, and data. The video explains that programs are the core component, with procedures, documentation, and data supporting use and maintenance.
Differentiate error, fault, and failure in software testing. An error is a programmer's mistake, a fault is a defect, and a failure occurs when the fault activates.
Explore how faulty requirements, communication failures between clients and developers, coding errors, testing shortcomings, and procedure or documentation mistakes lead to software errors, as in the general ledger example.
Leads software quality by enforcing coding and documentation standards for consistency and maintainability. Prioritizes collaboration, code sharing, and team performance to safeguard production software.
Address decisive actions to enforce coding and documentation standards, enforce shared code practices, and fire developers who violate consistency and collaboration guidelines, ensuring maintainability and risk reduction.
Classify software requirements into McCall's three quality factors: operation, revision, and transition, to ensure correctness, reliability, efficiency, usability, maintainability, testability, flexibility, portability, reusability, and interoperability.
Explore the six components of an enterprise software quality assurance system, from the human factor and standards to infrastructure, project life cycle practices, and contract review and quality plan.
Design test cases to verify that features such as login and user authentication perform as intended, documenting them to serve as the interface between tester and software.
Design test case documents using a template with IDs, names, prerequisites, test data, steps, and expected results to validate login with valid and invalid credentials.
Execute the test case TQ 001 to validate login functionality using a valid user id and password, press login, and verify redirection to the dashboard and successful authentication.
Discuss the levels of software testing from unit and integration to system and acceptance testing, including user and operational acceptance tests, and how each validates components against requirements.
Differentiate verification and validation by comparing the development process with the final software; verify the process, then validate the finished product for defects before release.
Explore testing types by nature (black box, white box, gray box) and method (manual, automated) while covering functional and non-functional like unit, integration, regression, alpha and beta testing, and performance.
Explore software process models as frameworks that structure, plan, and control the software development life cycle, compare the waterfall model with iterative models, and emphasize validation, verification, and quality assurance.
Examine the waterfall model, a linear and sequential software process with defined life-cycle stages. Finish each phase before the next and note that testing occurs late.
Explore the prototyping model as an iterative alternative to the waterfall, using quick prototype screens to gather end-user feedback and refine the design before scaling up to coding.
The spiral model blends iterative prototyping with a structured waterfall approach, emphasizing risk analysis and management to guide planning, engineering, and evaluation in large, complex projects.
The iterative development model breaks the project into iterations, each undergoing analysis, design, coding, testing, and deployment to deliver working software early. It highlights flexible change, early delivery of features, and small increments with well-defined backlogs to manage scope.
Compare waterfall, prototyping, spiral, and iterative development models to understand their stages and lifecycle. Note user involvement and risk-driven differences in requirements, design, coding, testing, deployment, and maintenance.
Systematically test the web application’s flight search form, including one way, round trip, and multiple destinations, then design ten test cases to ensure go live defect-free.
Design a basic form submission test for a flight form, validating input data (origin Cairo, destination Luxor, dates, passengers, economy class, direct flights, and date flexibility) and ensuring server-side submission.
Test the one way flight web based search and booking form by entering origin Luxor, destination Paris, departure date, passengers, and class; verify the submit button and report errors.
Test multi-destination booking flow using the multiple booking tab and fill data to validate submission for trips with three destinations and passenger counts two adults, one infant, and one child.
Test round trip flight search by entering Cairo to Kuwait with March 20–25, three adults, two children, premium economy. Verify server-side filtering and a form submitted message with categorized results.
Develop a test case for a missing required field in a web form: ensure an empty destination text box prompts a destination is required message and blocks submission.
Explore how invalid date formats are detected and reported, enforcing database conventions (day month year or month day year), and guiding users to correct input via client-side controls.
Validate the maximum destination exceeds test case in a flight booking web app by ensuring five destinations are not allowed, triggering an error message and defect reporting.
Design a test case to verify that bookings with only children or infants are rejected and require at least one adult; report the defect to fix the validation.
Test the future date flexibility feature in a web flight booking form by validating the date flexibility checkbox and submitting with two adults and no infants to receive flexible dates.
Design and validate advanced search options for a flight booking form, including origin, destination, dates, passengers, and class, submit both basic and advanced forms, and report defects for testers.
Presents the Agile Manifesto and its principles, highlighting customer satisfaction, welcoming changes, short iterations, working software, and self-organizing teams for continuous improvement.
Explore extreme programming's agile framework, from exploration to final release, detailing user stories, iterations, pair programming, test-first development, daily stand-ups, and continuous integration.
Learn how scrum drives agile project management from product vision to product backlog, sprint backlog, and iterative releases, guided by product owner, scrum master, and self-organizing team.
Explore dynamic systems development method, an agile framework for software and beyond. Move through feasibility study, business study, functional prototypes, design-build iterations, and final implementation with user training and review.
Explore feature driven development within project management, from domain understanding and UML diagrams to building a feature list, planning by feature, APIs specification and design specification for implementation and testing.
In today’s fast-paced and ever-evolving software industry, delivering high-quality software is more critical than ever. The Advanced Software Testing and Quality Assurance course provides a comprehensive exploration of the principles, techniques, and tools necessary to ensure software excellence. This course is designed for aspiring software testers, quality assurance professionals, and software developers who are keen to deepen their understanding of software quality practices and enhance their testing skills.
What You Will Learn:
Foundations of Software Quality: Understand the definitions and scope of software, including the distinction between software errors, faults, and failures, and the common causes of software errors.
Quality Assurance Fundamentals: Gain insight into the key concepts of Software Quality Assurance (SQA) and Quality Control, including the importance of systematic actions to meet specified requirements and customer expectations.
Roles in Software Quality: Explore the responsibilities and importance of roles such as the Chief Software Engineer in maintaining coding and documentation standards, and the rationale behind decisive actions to ensure team consistency and collaboration.
Test Case Design and Execution: Learn to create detailed and effective test cases to verify software functionalities and performance, with practical examples to illustrate best practices.
Software Quality Models and Factors: Delve into McCall’s factor model and other quality frameworks, covering critical aspects like reliability, usability, performance efficiency, maintainability, portability, compatibility, and security.
Software Process Models: Examine various software process models, including Waterfall, Prototyping, Spiral, and Iterative Development, understanding their phases, advantages, and disadvantages.
Levels of Testing: Master different levels of testing such as Unit Testing, Integration Testing, System Testing, and Acceptance Testing, and learn how to apply these in real-world scenarios.
Verification and Validation: Differentiate between verification (process-oriented) and validation (product-oriented) to ensure that software not only meets its specifications but also fulfills user requirements.
By the end of this course, students will be equipped with the knowledge and skills to design, implement, and manage effective testing strategies and quality assurance processes. They will be prepared to contribute significantly to the delivery of high-quality software products, ensuring reliability, efficiency, and user satisfaction.
Who Should Enroll:
Aspiring software testers and QA professionals
Software developers looking to enhance their testing skills
Project managers and team leads interested in software quality practices
Anyone seeking to understand the fundamentals and advanced concepts of software testing and quality assurance
Join us in this journey to mastering the art and science of software quality assurance and testing, and become a key player in delivering software excellence.