Quality Assurance in Software Engineering and Testing Best Practices

cse 416 n.w
1 / 19
Embed
Share

Explore the importance of quality assurance in software engineering, best practices for testing, design-to-test approach, and different types of testing methodologies. Learn how to avoid common pitfalls and plan for testing throughout the software development lifecycle.

  • Quality Assurance
  • Software Testing
  • Design-to-Test
  • Test-Driven Development
  • Testing Methodologies

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. CSE 416 Quality Assurance SOFTWARE ENGINEERING

  2. What is design to test? Approach to implementation `design modular classes and methods before coding: determine what needs to be tested design test cases for those important methods test incrementally, as you implement your solution Also called test-driven development

  3. Don't Design to Fail 1 Design to Test = -------------------------- Design to Fail Things to avoid: coding without a design not planning on how a design will be tested creating large amounts of untested code coding very large methods lack of modularity

  4. Planning Documents System Analysis Requirements Analyis (i.e. spec) Software Design Document Build Plans Test Plans

  5. Test Plans Testing should be considered early on part of build plan develop test cases init test data fill database Test must be recreated repeatedly including DB states In the real world, testing must be documented

  6. High Level Design of Tests Rationale of Tests Risk Evaluation and relation of tests to risks Design of Tests model checking analysis used to design specific test black box testing glass box edge cases What's model checking?

  7. Windows Blue Screen of Death

  8. Types of Testing Unit Testing Regression Testing System Testing Black Box Testing Glass Box Testing

  9. What is Black-box testing? Testing code according to its spec What is the code document as supposed to be doing? Method specification describes use, make test cases based on that What are necessary preconditions? What is required input? What is required output? Be sure to remember to test for failure states i.e. were all needed exceptions thrown/error conditions returned?

  10. What is glass-box testing? Testing code and all paths through that code make sure none of the paths produce broken states How many paths are there through this code: if (x === 5) { y = 10; } else if (x === 7) { y = 20; }

  11. Edge Cases Test input values one off from not working properly if (x === 5) { } Try testing x for 4, 5, and 6

  12. Function Input/Output Remember there are many things that can be considered input method arguments instance or global variables current database state files There are many things that can be considered output returned values set instance or global variables changes to database changes to files

  13. Plan for Carrying Out Tests Might involve: Unit testing libraries (like Jest, JUnit) scripting software or drivers test databases or files plan for manual testing

  14. Test Id: CSE308_TEST_NAVBAR_0 Test Objective: Make sure navigation works between various pages Test Context: One of the site pages is currently being viewed, all of which have a common navigation bar. This is to make sure navigation to all other pages works properly. Test Cases: -Home to (Syllabus, Schedule, HWs, Projects) -Syllabus to (Home, Schedule, HWs, Projects) -Schedule to (Home, Syllabus, HWs, Projects) -HWs to (Home, Syllabus, Schedule, Projects) -Projects to (Home, Syllabus, Schedule, HWs) Automated Input: None User-Provided Input: Click Navbar Link for appropriate Test Case Data File/Database: None Expected Output: Browser should navigate to selected page Test Driver/Script: None Test Scenario: For Home, Syllabus, Schedule, HWs, Projects Pages: -load page in browser -click on each navbar link -verify user is taken to proper page Status: Completed Succussfully

  15. Plan for Bug Reporting and Fixing Might involve: Bug database Bugzilla Task colors

  16. Types of Testing Models Waterfall Model V Model Agile Model Spiral Model Rational Modified Model Rapid Application Development Keys: revisit requirements often find problems early

  17. How can we test a MERN-stack application? Front-End Testing Do components exist? Do components have what they should have? Does the store get properly updated? Does the reducer return correct new state? Cypress IO Back-End Testing Do routes do what they are supposed to do? SuperTest with Jest

  18. What is CI/CD? Continuous Integration/Continuous Deployment GitHub Actions Every time you deploy it does testing on your work, including things that were done previously That way you know if things go off track

  19. References 6 Types of Software Testing Models Testbytes What is CI/CD? Infoworld How to write tests in Full-Stack MERN applications.

Related


More Related Content