41
Software testing Abhijeet Savkar Software Testing Introduction

Abhijeet Savkar Software Testing

Embed Size (px)

Citation preview

Software testing

Software testingAbhijeet Savkar

Software Testing IntroductionContents:Introduction to software TestingWhen to start and stop Testing.Seven Principles of Testing.Software Development Life Cycle.(Waterfall model, Incremental Model, Prototype Model, Spiral Model,V model, Agile Model.)Software testing Life cycle.Introduction to Software TestingSoftware testing is an activity to check whether the actual result match the expected result and to ensure that software system is defect free.

Testing is process of evaluating a system or its components with intent to find that whether it satisfies requirements or not.

three important factors for software testing

1)Software should test within time period. 2)It should be cost effective. 3)It should be quality product.

When to start and stop testingStart of testing-1)As early as possible.2)At requirement gathering phase3)Depend of software development model.

Stop of testing-1)Completion of test case execution.2)Completion of Functional and code coverage to certain point.3)Testing Deadlines.4)No high priority bugs are identified.5)Management decision.

Seven Principles of testingP1 ->Testing shows Presence of defects.P2->Exhaustive testing is impossible.P3->Early Testing.P4->Defect Clustering.P5->Pesticide Paradox.P6->Testing is Context depending.P7->Absence of errors Fallacy.Software Development Life Cycle

Software Development Model.1)Water Fall Model2)Incremental model3) Prototype Model4)RAD Model5)Spiral Model6)V Model7)Agile Model

Water Fall Model

Advantages of water fall model-Simple and easy understand and use.

Phases are processed and completed one at a time.

Works well for smaller projects where requirements are very well understood.

Disadvantages of water fall model-It is very difficult to go back and change something that was not well thought out in the concept stage.No working software is produced until during the life cycle.High amount of risk and uncertainty.Not a good model for complex and object oriented projects.Poor model for long and ongoing project.Not suitable for the projects where requirements are at a moderate to high risk of changing.

Incremental Model

Advantages Of Incremental Model1)Generates working s/w quickly and early during the software life cycle.2)More flexible less costly to change scope and requirements.3)Easier to test and debug during a smaller iterations.4)Customer can respond to each built.5)easier to manage risk because risky pieces are identified and handled during its iteration.

Disadvantages of Incremental model1)Needs good planning and design.

2)Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.

Prototype Model

Advantages of prototype model

Users are actively involved in the developmentIt provides a better system to users, as users have natural tendency to change their mind in specifying requirements and this method of developing systems supports this user tendency.Errors can be detected much earlier as the system is mode side by side.Quicker user feedback is available leading to better solutions.

Disadvantage of prototype modelLeads to implementing and then repairing way of building systems.

Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans.

RAD Model

Advantages of the RAD Model1)Reduced development time.2)Increase reusability of components.3)Quick initial reviews occur.4)Encourages customer feedback.5)Integration from very beginning solves a lot of integration issues.Disadavantages of RAD modelDepends on strong team and individual performances for identifying business requirements.Only system that can be modularized can be built using RAD.Requires highly skilled developers/designers.High dependency on modeling skills.Inapplicable to cheaper projects as cost of modeling and automated code generation is very high.Spiral Model

Cumulative costEvaluate alternatives,Identify & resolve risksDevelop & verify next-level productPlan next phaseDetermine objectives,alternatives & constraintsReview & commitmentPrototypesP1P2P3Operational PrototypeStartEndRequirements planDevelopment planIntegration & Test planRequirements validationDesign, Validation & VerificationDetailed designCodingUnit & IntegrationTestingAcceptance TestingConcept Of OperationSpiral Model

Advantages of Spiral modelHigh amount of risk analysis hence, avoidance of risk is enhanced.Good for large and mission-critical projects.Strong approval and documentation control.Additional functionality can be added at a later date.Software is produced early in the software life cycle.

Disadvantages of spiral modelCan be costly model to useRisk analysis requires highly specific expertise.Projects success is highly dependent on the risk analysis phase.Does not work well for smaller projects.V Model

Advantages of V modelDevelopment and progress is very organized and systematic Works well for smaller to medium sized projects.Testing starts from beginning so ambiguities are identified from the beginning. Easy to manage as each phase has well defined objectives and goals.

disadvantages of V modelNot suitable for bigger and complex projectsNot suitable if the requirements are not consistent.No working software is produced in the intermediate stage.No provision for doing risk analysis so uncertainty and risks are there.

Agile model

Advantages of Agile ModelCustomer satisfaction by rapid, Continuous delivery of useful s/w.People and interactions are emphasized rather than process and tools, Customers developers and testers constantly interact with each other.Working s/w is delivered frequently(Weeks rather than months).Face to face communication is the best form of communication.Close daily cooperation between business people and developers.

Disadvantages of Agile modelIn case of some s/w deliverables, especially the large ones, it is diffcult to assess the effort required at the beginning of the s/w development life cycle.There is lack of emphasis on necessary designing and documentation.The project can easily get taken off track if the customer representative is not clear what final outcome that they want.Software Testing Life Cycle

SDLC VS STLCRequirement AnalysisRequirement gatheringDesignTest planning ,Test design

TestingCoding or development

Test case writingTestcase developmentDeploymentFinal test executionMaintenanceMaintenanceTestingREFERENCESGoogle.com

Thank you !!!