8. Testing new functionalities. How to test new functionality?

Astea Solutions QA Team Questions

● What is Test Plan? ● What is regression testing? ● What are severity and priority? ● What is Lifecycle? ● What is smoke testing? Why do we need a Test Plan? Why do we need a Test Plan?

● Writing a test plan guides our thinking ● Forces us to confront the challenges that await us ● Focus our thinking on important topics ● Serves as a vehicle for communicating with other members of the team ● Test plan is not required: ○ for simple projects/features ○ If time is insufficient Why do we need a Test plan?(2)

● Repeatability ○ All testers should be able to execute the tests ○ Assures all critical elements are tested correctly ● Controllability ○ Knowledge of test data requirements, expected results, what to run ● Coverage ○ Ensures adequate coverage Elements of a Test plan Elements of a Test plan

● Test Scope ○ Defines what will be tested ● Test Objectives ○ Description of expected (measurable) test result, priority ● Assumptions ○ Include skill level of testers, budget, starting state of application, tools & equipment availability, etc. ● Risk Analysis ○ Things that could impact testing ability Elements of a Test plan(2)

● Test Design ○ Identifies tests to run, stages to test ● Roles & Responsibilities ● Test Schedule & Resources ○ Major test activities, sequence of tests, estimates, dependence on other activities, people, tools ● Test Data Management ○ Methods for preparing test data, backup/rollback procedures Elements of a Test plan(3)

● Test Environment ○ Version Control, hardware and software configurations, defect tracking tool, environment for each kind of testing ● Communication Approach ○ Meetings, processes, contact lists ● Test Tools ○ Automation, performance, etc. Test Prioritization Test prioritization

Criteria for prioritization of test cases may be:

● Usage frequency of a function ● Probability of failure ● Visibility of a failure ● Priority of the requirements ● Customer priorities ● Project risk Entry Criteria Entry Criteria

Test entry criteria define when to start testing ● E.g., at the beginning of a test level or when a set of tests is ready for execution Entry criteria may cover the following: ● Test environment availability and readiness ● Test tool readiness in the test environment ● Testable code availability ● Test data availability Test Estimation Test Estimation Test schedule is dependent on release schedule ● In order to make test schedule we need test estimates Test estimation includes ● Time for writing test cases and preparing test data ● Time for executing test cases ● During creation new un-estimated test conditions may appear ● Test estimations are usually made by senior QAs Estimates techniques ● If tasks are big break them into smaller tasks ● Time for re-testing should be considered Test Execution Test Execution

Test execution consist of: ● Testing new functionalities ● Regression testing Smoke test ● Is done before start test execution ● Is fast test ● Verifies that the system works ● Concentrates on finding blocking issues Testing new functionalities

● New test set is created for testing that feature corresponding to that cycle of that release ● Regression testing is included How to Effectively Test a Functionality? ● Read the requirements or specification corresponding to that feature thoroughly ● Develop the test cases exclusively to test the functionality ● Knowledge of how the functionality has been implemented - this gives clarity on the impacted areas ● Start testing the feature early in the cycle and report the defects and the same process should be repeated throughout the release builds. Regression testing

Regression: ● Happens after system changes ● it can be functional or non-functional

What causes regression? ● Common code changed incorrectly ● Incorrect version control (merging conflicts) ● Incorrect bug fixes Regression testing

When should you do regression testing? ● At all levels - , , , etc. ● At least one complete regression test before system deployment to production

Which test cases do you execute in regression testing? ● Select only test cases that cover the impacted components of the system (if time is short) Regression testing suites

Fixed regression suite - covering all functionalities ● Fixed time to execute ● All functionalities are tested ● Changed functionalities might not be sufficiently tested

Variable suite - covering changed functionalities ● Estimates are needed for every execution ● Can miss bugs in case of incorrect affected functionalities analysis Summary

● What are the elements of a Test plan? ● When do we start testing? ● How to test new functionality? ● Regression testing suites? QUESTIONS