8. Testing New Functionalities. Regression Testing How to Test New Functionality?
Total Page:16
File Type:pdf, Size:1020Kb
8. Testing new functionalities. Regression testing 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 Software Testing 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 test case 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 - unit testing, integration testing, system testing, 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.