software testing

26
Software Testing

Upload: sengu-msc

Post on 14-Apr-2017

239 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Software testing

Software Testing

Page 2: Software testing

What is Testing?

Testing is the process of evaluating a system or its component(s) with the intent to find that whether it satisfies the specified requirements or not. This activity results in the actual, expected and difference between their results. In simple words testing is executing a system in order to identify any gaps, errors or missing requirements in contrary to the actual desire or requirements.

Testing can be defined as “A process of analyzing a software item to detect the differences between existing and required conditions (that is defects/errors/bugs) and to evaluate the features of the software item”.

Page 3: Software testing

Who does Testing?It depends on the process and the associated stakeholders of

the project(s). In the IT industry, large companies have a team with responsibilities to evaluate the developed software in the context of the given requirements. Moreover, developers also conduct testing which is called Unit Testing. In most cases, following professionals are involved in testing of a system within their respective capacities:

Software Tester Software Developer Project Lead/Manager End User

Page 4: Software testing

Diff between V&V Verification Validation Are you building it right? Are you building the right thing? Ensure that the software system meets all the functionality.

Ensure that functionalities meet the intended behavior.

Verification takes place first and includes the checking for documentation, code etc.

Validation occurs after verification and mainly involves the checking of the overall product.

Done by developers. Done by Testers. Have static activities as it includes the reviews, walkthroughs, and inspections to verify that software is correct or not.

Have dynamic activities as it includes executing the software against the requirements.

It is an objective process and no subjective decision should be needed to verify the Software.

It is a subjective process and involves subjective decisions on how well the Software works.

Page 5: Software testing

QA QC TESTINGActivities which ensure the implementation of processes, procedures and standards in context to verification of developed software and intended requirements.

Activities which ensure the verification of developed software with respect to documented (or not in some cases) requirements.

Activities which ensure the identification of bugs/error/defects in the Software.

Focuses on processes and procedures rather then conducting actual testing on the system.

Focuses on actual testing by executing Software with intend to identify bug/defect through implementation of procedures and process.

Focuses on actual testing.

Process oriented activities.

Product oriented activities.

Product oriented activities.

Preventive activities It is a corrective process.

It is a preventive process

It is a subset of Software Test Life Cycle (STLC)

QC can be considered as the subset of Quality Assurance.

Testing is the subset of Quality Control.

Diff between QA,QC & TESTING

Page 6: Software testing

Diff between Testing & Debugging

Testing: It involves the identification of bug/error/defect in the software without correcting it. Normally professionals with a Quality Assurance background are involved in the identification of bugs. Testing is performed in the testing phase.

Debugging: It involves identifying, isolating and fixing the problems/bug. Developers who code the software conduct debugging upon encountering an error in the code. Debugging is the part of White box or Unit Testing. Debugging can be performed in the development phase while conducting Unit Testing or in phases while fixing the reported bugs.

Page 7: Software testing

Testing TypesManual Testing

This type includes the testing of the Software manually i.e. without using any automated tool or any script. In this type the tester takes over the role of an end user and test the Software to identify any un-expected behavior or bug. There are different stages for manual testing like unit testing, Integration testing, System testing and User Acceptance testing.

Testers use test plan, test cases or test scenarios to test the Software to ensure the completeness of testing. Manual testing also includes exploratory testing as testers explore the software to identify errors in it.

Page 8: Software testing

Testing TypesAutomation Testing

Automation testing which is also known as “Test Automation”, is when the tester writes scripts and uses another software to test the software. This process involves automation of a manual process. Automation Testing is used to re-run the test scenarios that were performed manually, quickly and repeatedly.

Tools are, Selenium (Functional, Database, Security, Performance & Web service

Testing)QTP (Functional, Database, Security, Performance & Web service

Testing)Load Runner (Stress & Load Testing)SoapUI (JSON & XML Web Service Testing)

Page 9: Software testing

Testing MethodsS.no Black Box Testing Gray Box Testing White Box Testing

1 The Internal Workings of an application are not required to be known

Somewhat knowledge of the internal workings are known

Tester has full knowledge of the Internal workings of the application

2 Also known as closed box testing, data driven testing and functional testing

Another term for grey box testing is translucent testing as the tester has limited knowledge of the insides of the application

Also known as clear box testing, structural testing or code based testing

3 Performed by end users and also by testers and developers

Performed by end users and also by testers and developers

Normally done by testers and developers

4 Testing is based on external expectations -Internal behavior of the application is unknown

Testing is done on the basis of high level database diagrams and data flow diagrams

Internal workings are fully known and the tester can design test data accordingly

5 This is the least time consuming and exhaustive

Partly time consuming and exhaustive

The most exhaustive and time consuming type of testing

6 Not suited to algorithm testing

Not suited to algorithm testing

Suited for algorithm testing

7 This can only be done by trial and error method

Data domains and Internal boundaries can be tested, if known

Data domains and Internal boundaries can be better tested

Page 10: Software testing

Introduction to SDLC

What is SDLC?

The software development life cycle (SDLC) is the entire process of formal, logical steps taken to develop a software product.

Levels of SDLC

Requirements GatheringSystems DesignCode GenerationTestingMaintenance/Evolution

Page 11: Software testing
Page 12: Software testing

Waterfall ModelWaterfall ModelThe waterfall model derives its name due to the cascading

effect from one phase to the other as is illustrated in Figure. In this model each phase well defined starting and ending point, with identifiable deliveries to the next phase.

Page 13: Software testing

Prototyping Model

Prototyping Model The Prototyping Model is a systems development method

(SDM) in which a prototype (an early approximation of a final system or product) is built, tested, and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed.

Page 14: Software testing

Incremental Model

This model combines the elements of the waterfall model with the iterative philosophy of prototyping. However, unlike prototyping the IM focuses on the delivery of an operational product at the end of each increment.

Page 15: Software testing

Spiral Model

The spiral model is a software development model combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts.

Page 16: Software testing

Agile ModelAgile software development is a group of 

software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.

Page 17: Software testing

Levels of Testing

Functional Testing. Non- functional Testing.

Page 18: Software testing

Functional Testing This is a type of black box testing that is based on the

specifications of the software that is to be tested. The application is tested by providing input and then the results are examined that need to conform to the functionality it was intended for. Functional Testing of the software is conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. There are five steps that are involved when testing an application for functionality.

Step I - The determination of the functionality that the intended application is meant to perform.

Step II - The creation of test data based on the specifications of the application.

Step III - The output based on the test data and the specifications of the application.

Step IV - The writing of Test Scenarios and the execution of test cases.

Steps V - The comparison of actual and expected results based on the executed test cases.

Page 19: Software testing

Functional Testing Types

Unit TestingIn Unit testing user is supposed to check each and every micro

function.All field level validations are expected to test at the stage of

testing.In most of the cases Developer will do this.Integration TestingThe primary objective of integration testing is to discover errors in

the interfaces between Modules/Sub-Systems (Host & Client Interfaces).

Minimizing the errors which include internal and external Interface errors

Types of Integration TestingTop-Down ApproachBottom-Up Approach

Page 20: Software testing

Functional Testing TypesSystem TestingThe primary objective of system testing is to discover errors when

the system is tested as a hole.System testing is also called as End-End Testing.User is expected to test from Login-To-Logout by covering various

business functionalities.Acceptance TestingThe primary objective of acceptance testing is to get the

acceptance from the client.Testing the system behavior against customer’s requirements Customers undertake typical tasks to check their requirements Done at the customer’s premises on the user environment

Types of Acceptance Testing:Alpha TestingBeta Testing

Page 21: Software testing

Non-Functional Testing TypesPerformance TestingPrimary objective of the performance testing is “to demonstrate the

system works functionally as per specifications with in given response time on a production sized database.

Types of Performance Testing:Load TestingStress TestingLoad TestingEstimating the design capacity of the system within the resources

limitApproach is Load ProfileStress TestingEstimating the breakdown point of the system beyond the resources

limit.Repeatedly working on the same functionality

Page 22: Software testing

Non-Functional Testing TypesUsability TestingTo test the Easiness and User-friendliness of the system.Reliability TestingReliability is considered as the probability of failure-free operation

for a specified time in a specified environment for a given purpose To find Mean Time between failure/time available under specific load

pattern. Mean time for recovery.Regression Testing• Objective is to check the new functionalities has incorporated

correctly with out failing the existing functionalities.• RAD – In case of Rapid Application development Regression Test plays

a vital role as the total development happens in bits and pieces.• Testing the code problems have been fixed correctly or not.

Page 23: Software testing

Non-Functional Testing Types

Security TestingTesting how well the system protects against unauthorized internal

or external access.Verify how easily a system is subject to security violations under

different conditions and environmentsDuring Security testing, password cracking, unauthorized entry into

the software, network security are all taken into consideration.

Page 24: Software testing

STLC- Software Testing Life Cycle

Page 25: Software testing

Practical:

WebsiteWeb ApplicationMobile Application

Ex Web Application: Facebook (login, Dashboard, Messages, Profile, Settings functionalities)

Sample Websites

Page 26: Software testing