Software Testing & Quality Assurance Slides - Week 1
Date Published: 03/22/2018
These are first week slides of Software Testing and Quality assurance course. The course is specifically designed for beginners with no or minimal IT knowledge. In the first week, we will learn basic of Software Testing, why we need it, what is the software development life cycle and where testing comes into a picture.

Course Pre-requisites
  • Basic computer skills including web browsing and email
  • Should be able to download, install and uninstall software
  • Basic Microsoft Office skills (Word, Excel)
  • An extra, special class to learn pre-requisites

    Properties of a Good Software Tester

    Properties of a Good Software Tester

    Analytical Skills

    • Good in understanding and analyzing problems
    • Break down a complex problem into smaller units
    • Achieve results through practice and focus

    Technical Skills

    • Software Quality Assurance Concepts, 
    • Test case development and execution
    • Automated testing tools
    • Database skills

    Properties of a Good Software Tester

    Communication Skills

    • Good verbal and written skills
    • In Daily office work, need to write a lot of documents, test cases, test plan and defects reports (we will study these documents in detail)
    • Need to communicate with team members, managers and especially developers

    Time Management Skills

    • Need to write documents, attend meetings, perform testing, meet critical deadlines
    • An important factor in the software industry

    Technical Skills Required
    • Understanding of Software Development Life Cycle [SDLC]
    • Understandings of SDLC artifacts (Business Requirements Document, Design Document, Test Plan, etc)
    • Knowledge of quality analysis methodologies (Testing Types)
    • Test Case preparation and execution skills
    • Knowledge and experience of working with software testing tools
    • Basic scripting skills
    • Knowledge and experience of the database (e.g. SQL/Oracle).
    • Strong communication and writing skills

      Responsibilities of Software QA Analyst
      • Test software to ensure they work according to the requirements.
      • Use automated testing tools to test applications. 
      • Generate artifacts/documents to report to higher management (Managers).

        Software Testing/QA

        What is Software Testing?

        • Software testing is a process used to identify the correctness, completeness, and quality of developed computer software.

        Why are software tested?

        • To identify defects or bugs in software and fix them.
        • Improper testing may cause project failure, financial or sometimes human loss e.g. plane crashes due to a software malfunction.

        Do I need to learn to programme to do software testing?

        • You should know some scripting but you don’t need to learn software development to do testing.

        What do we need to test?
        • We need to test Software.
        • It is important to understand general software types being developed in IT Market before jumping into QA and testing.
        • Next slides, we will learn what are common types of software, how they are developed, what are a programming language and famous programming languages used in small to large scale companies.

            Software Types
            • Word, Excel, PowerPoint, etc. are common software usually called Desktop or Windows Application.
            • Email providers e.g. Yahoo, Gmail, Hotmail, online shopping such as eBay and Amazon are common web software usually called Websites or Web Application.
            • Generally, there would be these two types of applications to test.

              Software Types
              • Windows/Desktop Application VS Web Application/Website
              • Windows/Desktop Application
              • Installed in your computer or laptop. E.g. Microsoft office (Word, Excel, PowerPoint)
              • Process: you buy a CD or download from the internet, double click on it and setup “get started”.
              • Usually, don’t need an internet connection to run windows/desktop application.
              • Similarly, many companies develop their desktop system to perform some operations like Payroll, Point of Sale, etc.
              • Web Application/Website
              • Deployed in server and can be accessed through any Brower (Internet Explorer, Firefox, Chrome or Safari) through the Internet.
              • Must need an internet connection to run.
              • Each Web Application/Website has a unique address on the Internet called URL e.g. https://www.google.comhttps://fullstackhub.io

                Software Types
                • Which one is better (Desktop or Web Application)
                • Depends on requirements. (Single user vs multi-users, environment, scenario)
                • Many companies are converting old Desktop applications to Web Applications.
                • Benefits
                  • Do not need to install on all machines.
                  • Central management as a web application is deployed in one machine (Server).
                  • Global access across the world.
                  • Fewer recourses are required, less costly. 
                • We will mostly focus on Web Application testing.

                  Computer Languages
                  • Computer language is used to give instructions to the computer to do some work for us.
                    • Print text, apply color, font size
                    • Create a button
                    • Apply formula when a button is clicked
                  • Software is developed using computer languages.
                  • Without a computer language, the computer is dull and a useless machine. 
                  • Famous programming languages used to develop Windows/Desktop are C++, C#, Java, PHP, Python, HTML, etc.
                  • As a tester, you do not need to learn programming languages but should know they exist.

                    Software Development Team 
                    Software Development Team members and their roles and responsibilities.
                    • Product Owner or Client: Wants software according to his/her requirements.
                    • Business or System Analyst: Gathers requirements from the client create requirements documents.
                    • Project Manager: Understands the requirements gathered by BA (Business Analyst) and converts them into technical requirements to develop software.
                    • Developer: Develops software according to technical requirements.
                    • Testers/QA Analyst: Tests software to find any defects in it. Compares developed software functionality with client’s requirements. 

                      Software Development Life Cycle (SDLC)
                      • The complete process of software development starting from project idea to project delivery
                      • Software development is like any other product development or manufacturing and contains almost the same steps e.g. manufacturing car or building house. 

                        Software Development Life Cycle (SDLC)

                        Software Development Life Cycle (SDLC)
                        Requirements
                        • Requirements from the client are gathered in this phase. 
                        • For example, you are an artist or photographer and need a software company to make a website for you that has:
                          • Information about your business
                          • Your picture gallery categorized by location and genre 
                          • Price and information of each picture you are selling
                        • Business or System Analyst will collect all requirements.

                          Software Development Life Cycle (SDLC)
                          • Design
                            • Design User Interface
                            • Design Database 
                            • Create design documents.
                            • Decide the best technology to develop this application
                            • Design dummy application (Proof of Concept) to show the client. 
                            • For example, In client photography application:
                              • Decide how many pages e.g. About Us, Gallery, Contact Us, etc.
                              • What should be the payment method, PayPal, Credit Card, etc?
                              • Design backend database to store information e.g. Photos, Photos information, Price, etc.
                              • Develop this website in ASP.NET or PHP.

                            Software Development Life Cycle (SDLC)
                            • Implementation
                              • Once the application is designed, technology to develop an application is decided and backend database is ready then it’s time to do actual development.
                              • Design documents are handed over to developers for implementation.
                              • Developers develop application and database and hand over to QA team for testing.

                              Software Development Life Cycle (SDLC)
                              Verification (QA Testing)
                              • In this phase, QA Tester tests to find any defects in it. 
                              • Verifies application functionality against client requirements.
                              • Creates bugs reports and sends to QA Manager and developers.
                              • Defects and fixing cycles continue until the application is bug-free and ready to hand over to the client.

                                Software Development Life Cycle (SDLC)
                                • Deployment
                                  • Once the application is bug-free, it is deployed on a production server or handed over to the client.
                                • Maintenance
                                  • Support the application after going live.
                                  • After deployment, if the client changes requirements or identifies any defect. Project manager analyzes the requirements/defects and hands over to developers to develop it. This is called application maintenance. 

                                  Software Development Life Cycle (SDLC)
                                  • Server: A computer on which application is installed
                                  • Dev server: During development, developer deploys their application in dev server to unit test them.
                                  • QA Server: Application is deployed to QA server for QA Team to perform testing.
                                  • UAT Server: (User Acceptance Testing) after QA perform testing, it is deployed to UAT server where actual business users or client will test application for verification.
                                  • Production Server: After the client is OK with application in the UAT phase, it is deployed in production server. 

                                    Summary
                                    • Qualities of a good QA Tester
                                    • Technical skills required to become a QA tester
                                    • Responsibilities of a QA Tester
                                    • Software Types
                                    • Computer Languages
                                    • Software Development Team
                                    • Software Development Life Cycle [SDLC]

                                      Question?


                                      Keywords: manual testing tutorial, manual testing slides, software testing tutorial, qa tutorial, software testing and quality assurance tutorial