Software Testing IntroductionIntroduction to Software TestingSoftware Development ProcessProject vs. ProductError / Fault / FailureWhy Software has defectsCost of fixing defectsMost common defectsVerification vs ValidationObjectives of TestingRole of a Tester
Software Development Life Cycle(SDLC) SDLC Phases SDLC Models Waterfall Model V Model Agile Model
Defect / Bug Life Cycle & Defect ManagementWhat is defect?Defect ClassificationDefect report TemplateTest ClosureCriteria for Test ClosureTest Summary ReportSoftware Configuration Management
Software TestingWhat is Software Testing?Testing is the process in which the defects are identified , separate, subjected for rectification and ensure that the product is defect free in order to produce defect free product. ORSoftware testing is nothing but detecting error in the software.
What do you mean by Product Development? Product development is done assuming a wide range of customers and their needs. This type of development involves customers from all domains and collecting requirements from many different environments. For example 1) Microsoft that develops its products like windows and others. 2) Nokia that develop mobiles and after marketing sells that in the market.
What do You mean by Project Development ? Project Development is done by focusing a particular customers need, gathering data from his environment and bringing out a valid set of information that will help as a pillar to development process.
What do you mean by Service based Companies? 1. A Services based company is the one that provides its services to the client for completing his requirements. 2. If you have an IT software company and you get an order from the client to develop a software according to the client needs and you use your staff service in developing that software so your company is an Service provider, which serves the client. 3. Even the service oriented products can develop their own products and sell in the market.
Difference between error , failure and fault Error means any deviations in the applications from the requirements. Failure is a deviation from expected behavior. Fault: is a condition that causes the software to fail to perform its required function.
Verification and Validation♥ Verification is set of activities to ensure that the function that is developing properly.[ Verification: Are we producing the right product?]♥ Validation is a different set of activities to ensure that the function that has been built is working properly.[Validation: Are we building the right system?]
Analysis Phase Detail Study of Requirement in order to check whether the requirements are possible within the available time, budget and resources. The resources and time will be temporarily planned here in this phase The list of all technologies that are required to accomplish this project successfully and details of the environment which will be suitable for this application will be clearly analyzed here in this phase.
Requirement Selection Phase The list of all the requirements like human resources, software and hardware requirement to accomplish the project successfully will be analyzed here. The proof document of the requirement phase is SRS(System Requirement Specification)
Design Phase The chief architect will divide the whole project into modules by drawing Some diagrams using UML(Unified Modeling Language). The technical Lead will divide the module into sub modules using same UML diagrams. Again by using UML diagram technical lead will design GUI part of the application and also develops pseudo code. Pseudo code is nothing but set of English statements which will help developer while developing actual code.
Implementation/Coding Phase The developer will develop actual source code by using coding standards.
Testing Phase The test engineer will be receiving the requirement document and starts understanding the requirement. While understanding the requirement, if at all they get any doubt then they will list out all the doubts in RCN(Requirement Clarification Note) Once the clarifications are given and after understanding all the requirement clearly tester will start preparing test cases using test case template.
Once the first built is released, testers will execute test cases. If at all any defects are found then they will list of all the defects and send those defects to development team and testers will wait for the next built. Once the next built is ready then testers will re- execute the required test cases. And cycles goes on.
Delivery and Maintenance Phase The development manager will go to the client place and install the application into the customer’s environment and hand over the application to the client One the application is delivered, the customers will use that application and while using that application if they get any problems, them that problem will become a task, again that task will be assigned to particular team, this type of task is called maintenance
Features of a Waterfall Model A waterfall model is easy to follow. It can be implemented for any size project. Every stage has to be done separately at the right time so you cannot jump stages. Documentation is produced at every stage of a waterfall model allowing people to understand what has been done. Testing is done at every stage.
Advantages of a Waterfall Model A waterfall model helps find problems earlier on which can cost a business less than if it was found later on. Requirements will be set and these wouldnt be changed. As everything is documented a new team member can easily understand whats to be done. Implementers have to follow the design accurately
Disadvantages of a Waterfall Model If requirements may change the Waterfall model may not work. Many believe it is impossible to make one stage of the projects life cycle perfect. Difficult to estimate time and cost for each stage of the development process. Constant testing of the design is needed.
The V-Shaped Model• V-Model evolved from waterfall Model.• Each phase must be completed before the next phase begins.• Instead of moving down in a linear way, the process steps are bent upwardsafter the coding phase, to form the typical V shape.• Testing is emphasized in this model more than in the waterfall model.• It is a structured approach to testing.• Brings high quality into the development of our products.
Steps in the V-Shaped ModelQuality is guaranteed at each project stage.
Stage Containment This term is used to identify problems existing in the product being developed before proceeding to the following stage. • More errors than defects. • Cost and effort for fixing problems is minimized. Defect Detailed Design Component Assembly Test Analyze Design Test Prod Test Deploy Origin Defect Detailed Design Component Assembly TestDiscovered Analyze Design Test Prod Test Deploy With Stage Containment
Without Stage Containment • More defects than errors. • Fixes become more expensive and difficult. Defect Detailed Design Component Assembly Test Analyze Design Test Prod Test Deploy Origin Defect Detailed Design Component Assembly TestDiscovered Analyze Design Test Prod Test Deploy
Without Stage Containment Defect Detailed Design Component Assembly Test Analyze Design Test Prod Test Deploy Origin Defect Detailed Design Component Assembly TestDiscovered Analyze Design Test Prod Test Deploy Worst Case!
Entry and Exit CriteriaEntry Criteria • The Term Entry Criteria refers tot the input conditions required from the previous processes to support a specific stage.Exit Criteria • The term Exit Criteria refers to the output conditions required by a specific process to determine its thoroughness and correct completion. • The Exit Criteria for one stage can constitute part of the Entry Criteria for the following stage.
The Five Key Deliverables of Test PlanningDeliverable DescriptionTest Approach Explains the objectives and scope of the test; Documents entry/exit criteria and key datesTest Scenarios Provides high-level descriptions of functionality to be testedTest Conditions and Expected Describes all items and results that must be coveredResults to fulfill each Test ScenariosTest Cycle Control Sheet Groups test scripts into logical categories (or cycles); documents when and by whom each cycle will be executed.Test Scripts Provides step-bystep instructions and detailed results for a test executor to follow during test execution
Unit testing The most ‘micro’ scale of Testing A unit = smallest testable software component Objects and methods Procedures / functions Performed by Programmer A tester can help. Requires detailed knowledge of the internal program design and code. The units are tested in isolation. Ensures the component is working according to the detaileddesign/build specifications of the module. Not to be confused with debugging. Also known as component, module, or program testing.
Integration Testing Testing of more than one (tested) unit together to determineif they function correctly. Focus on interfaces Communication between units It is done using the integration test design prepared duringthe architecture design phase. Helps assembling incrementally a whole system, ensuringthe correct ‘flow’ of data from the first through the finalcomponent. Done by developers/designers and testers in collaboration Also called Interface Testing or Assembly Testing.
System testingTesting the system as a whole - Black-box type testing that is basedon overall requirements specifications; covers all combined parts ofa system. Ensures that system meets all functional and businessrequirements.Focus Verifying that specifications are met Validating that the system can be used for the intended purpose The system test design is derived from the system designdocuments and is used in this phase. It can involve a number of specialized types of tests to checkperformance, stress, documentation etc. Sometimes testing isautomated using testing tools. Done by Independent testing group
Acceptance testing To determine whether a system satisfies its acceptance criteria andbusiness requirements or not. Similar to System testing in that the whole system is checked, but theimportant difference is the change in focus. Done by real business users. It enables the customer to determine whether to accept the system ornot. Also called as Beta Testing, Application Testing or End User Testing. Approach Should be performed in real operating environment . Customer should be able to perform any test based on their business processes. Final Customer sign-off.
Benefits of V-Model• Faults are prevented and it stops fault multiplication.• Avoids the downward flow of defect.• Lower defect Resolution cost due to earlier detection.• Improved quality and reliability.• Reduction in the amount of Re-work.• Improved Risk Management• Validation and Verification at each level of stage containment• Allows testers to be active in the project early in the project’slifecycle. They develop critical knowledge about the system.
What is Agile Scrum Process Model Agile is a very recent software development methodology based on the agile manifesto. This was developed to solve some shortcoming in the traditional V- Model and Waterfall software development methodologies. Agile methods are based on giving high priority to the customer participation early in the development cycle In Agile whole project gets divided into sprints usually 2 to 4 weeks duration each. Sprint have fixed duration to each regular deliveries and helps development teams to focus on shippable product in the end of each sprint
Scrum meetings:-- Daily time boxed meetings where team members answers the following questions: What you did yesterday? What has impeded your work? What you plan to do today?Sprint review meeting:--Provides an inspection of project progress at the end of the every Sprint. The goal is to improve development process by introducing new practices, changing existing practices, etc.