Software QA Fundamentals by Prabhath Darshana

45
SOFTWARE QA FUNDAMENTAL Present By: Prabath Darshana

Transcript of Software QA Fundamentals by Prabhath Darshana

Page 1: Software QA Fundamentals by Prabhath Darshana

SOFTWARE QA FUNDAMENTAL

Present By: Prabath Darshana

Page 2: Software QA Fundamentals by Prabhath Darshana

1.What is software Quality Assurance ? Software QA is a process used to ensured the

correctness , completeness and quality of developed computer software match with the expected results

Page 3: Software QA Fundamentals by Prabhath Darshana

2.Why we are need software QA ?

To ensure the reliability of the software To ensure that users are capable of using the software To ensure that software meets its requirement To ensure software works with other software and

hardware it needs to work with To be ensure that software doesn’t contain any bug

which can vulnerable to the software.

Page 4: Software QA Fundamentals by Prabhath Darshana

3.What are the type of methods ? Black box testing White box testing Grey box testing

Page 5: Software QA Fundamentals by Prabhath Darshana

3.1 What is black box testing ? Black box testing is a method that examine the

functionality of an application without knowing the internal structure of the application.

Page 6: Software QA Fundamentals by Prabhath Darshana

3.2 What is white box testing ? White box testing is a method that testing performed

based on the knowledge of how the system is implemented. that's includes data flow , control flow and coding practices. White box testing requires access to the source code.

Page 7: Software QA Fundamentals by Prabhath Darshana

3.3 What is grey box testing ? Grey box testing is a method that performed combine

with black box testing and white box testing. That mean in grey box testing , the internal structure is partially known.

Page 8: Software QA Fundamentals by Prabhath Darshana

4.Types of testing ?

Manual Testing Automated Testing

Page 9: Software QA Fundamentals by Prabhath Darshana

4.1 What is Manual testing ?

Manual testing is a testing type which is not using any automated tool or script for do the testing process.in this type , the tester will lead as a end user and tester for test the software to identify the any bug or unexpected behaviours.

Page 10: Software QA Fundamentals by Prabhath Darshana

4.2 What is Automated testing ? Automated testing is a testing type perform using

automation testing tools and writing scripts by tester. When to automate ?

Large and critical projectsProjects that require testing the same areas

frequentlyRequirement not changing frequentlyAccessing the application for load and performance

with many users

Page 11: Software QA Fundamentals by Prabhath Darshana

4.3 Manual Testing Vs. Automated TestingManual Testing Time Consuming High investment for human

hours Less reliable Non-programmable Not expensive

Automated Testing Time Saving Less investment for human

hours More reliable Programmable Expensive

Page 12: Software QA Fundamentals by Prabhath Darshana

5. What is testing levels ?

The main levels of software testing are :Functional Testing Non-functional Testing

Page 13: Software QA Fundamentals by Prabhath Darshana

5.1 What is functional testing ?

This is a type of black-box testing that is based on the specification of the software that is to be tested. The application will be tested by providing input and then the results are examined. Functional testing of a software will be conducted on a complete , integrated system to evaluate the system’s compliance with its specified requirements.

Page 14: Software QA Fundamentals by Prabhath Darshana

5.1.1 Five steps , that are testing an application for functionality The determination of the functionality the intended

application is meant to perform The creation of test data based on the specification of

the application The output based on the test data and the specification

of the application The writing of test scenarios and the execution of test

cases The comparison of actual and expected results based

on the executed test cases

Page 15: Software QA Fundamentals by Prabhath Darshana

5.1.2 What is unit testing ?

Unit testing is a level of the software testing process where individual units/components of a system are tested. The purpose is to validate that each unit of the software performs as designed.

This testing is performed by developers before the setup is handed over to the testing team to execute the test cases.

Unit Testing tool: Junit, TestNG ,Nunit ,Aunit

Page 16: Software QA Fundamentals by Prabhath Darshana

5.1.3 What is Integration Testing ?

Integration testing is performed the combine individual tested unit as a one .Integration testing can identifies the problems that occur when the individual units are combined. Integration testing is done after unit testing.

Page 17: Software QA Fundamentals by Prabhath Darshana

5.1.3.1What is integration testing method? Bottom-up approach- in this approach testing is conducted

from sub module to main module. The process is repeated until the module at the top of the hierarchy is tested. Bottom –up approach testing facilitates efficient error detection.

Top-down approach – in this approach testing is conducted from main module to sub module. Sub modules are tested individually .top-down approach facilitates detection of lost module branch link

Big ban approach- involves integrating the modules to build complete software system .In this approach all the modules are integrated simultaneously and everything tested as a whole.

Page 18: Software QA Fundamentals by Prabhath Darshana

5.1.4 What is System testing ?

This testing is performed after integration testing .using system testing we can verify the functionality of the whole application. Also by performing system testing as whole we confirm the system or software meets the functional and technical specifications.

Page 19: Software QA Fundamentals by Prabhath Darshana

5.1.5 What is Regression Testing ? If some changes or bug fixed happened in software

application it might be affected to other functions so using that testing we can verify that changes or bug fixed hasn’t affected in another functionality or business rule violation.

Sanity testing :After competition of regression test sanity test is started to check the bug fixed and changes done in the software application is not breaking the core functionality of the software application. So this is a subset of regression testing but some time this perform as subset of acceptance test because some time sanity testing execute while releasing the software.

Page 20: Software QA Fundamentals by Prabhath Darshana

5.1.6 What is Acceptance Testing ?

Acceptance testing is most popular “ Black box “ testing method. This is conducted by the QA team assure whether application meets or not the deliverables according to the BRS( business requirement specifications ) and client’s requirement for application will perform in production .

UAT(User Acceptance Test) also same like this but UAT is performed by client or person who are handle the live system once it delivered.

Page 21: Software QA Fundamentals by Prabhath Darshana

5.1.7 What is alpha testing ? Alpha testing is combination of unit testing , integration

testing and system testing and it would be executed before deploy the software. This typically performed by internal employees and done in a lab environment so that user actions can measures and analysed following aspects:

Spelling mistakesBroken linksAny other bugs

Page 22: Software QA Fundamentals by Prabhath Darshana

5.1.8 What is a smoke testing ?

Smoke testing is typically executed by testers after every build is received for checking the build is in testable condition. Its verify the main functionality but not in deep. This type of testing is applicable in the integration testing , system testing and acceptance testing.

Page 23: Software QA Fundamentals by Prabhath Darshana

5.1.9 What is beta testing ?

This testing is comes after the alpha testing .Actually this test is calling as a pre-release testing .sometime beta version of application will be release to the general public during this phase. This process helps identify defects that were missed during the formal test plan, and helps configure the customer support resources and processes that will be needed post-launch.

Page 24: Software QA Fundamentals by Prabhath Darshana

5.2 What is non-functional testing ?

Non-functional testing involves testing a software from the requirements which are performance, Load, GUI , Security, etc.

Page 25: Software QA Fundamentals by Prabhath Darshana

5.2.1 What is performance testing ? Using performance testing we check the following

aspects:SpeedCapacityStabilityScalabilityPerformance testing can be divided into different sub types such as

Load testingStress testing

Page 26: Software QA Fundamentals by Prabhath Darshana

5.2.1.1 What is load testing ? Load testing is monitoring the behaviour of the application by

increasing or decreasing the load on the application that mean number of user .so this can identify maximum capacity of the software and its behaviour on a peak time. Generally load testing is performed by using automation tools such as :

Apache JmeterLoad RunnerSilk performer etc.

Page 27: Software QA Fundamentals by Prabhath Darshana

5.2.1.2 What is stress testing ? Stress testing is a form of software testing that

determines the stability of a system and an applications robustness, availability and reliability under abnormal operational capacity. Examples: vulnerable virus attack , try to hack the system , unexpected sequencing , disk drive failure and large number of users accessing the same time or large number of data input in a same time.

The idea is to stress testing to the breaking point in order to find bugs that will make that break potentially harmful.

Page 28: Software QA Fundamentals by Prabhath Darshana

5.2.2 What is usability testing ?

Usability testing is a black box testing which is used to identify any errors and improvements in the software by observing the through their usage and operations.

Usability testing is the quality requirement that can be measured as the outcome of interactions with a computer system. This requirement can be fulfilled and end user will be satisfied if the executed goals are achieved effectively with the use of proper resources.

Page 29: Software QA Fundamentals by Prabhath Darshana

5.2.3 What is security testing ?

Security testing is the testing the application for unauthorized access.

The following are main aspects that security testing should ensure:

Confidentially , authorization , authentication ,integrity ,availability ,SQL insertion attacks ,software data is secure , input checking and validation ,etc.

Page 30: Software QA Fundamentals by Prabhath Darshana

5.2.4 What is portability testing ?

Portability testing includes testing a software with the aim to ensure its reusability and that it can be moved from another software so portability testing we can considered as a one of the sub part of the system testing. Following are the strategies that can be used for portability testing :Transferring an installed software from one computer to

anotherBuilding executable (.exe) to run the software on

different platforms

Page 31: Software QA Fundamentals by Prabhath Darshana

6. What is Ad-hoc testing ?

Ad-hoc testing is the process of testing in which testing is performed without any plan or test cases.in this testing process we don’t follow any rules.so this testing is generally followed by the tester who has good knowledge about the product which tester is going to test.

Page 32: Software QA Fundamentals by Prabhath Darshana

7. Software Testing on SDLC(Software Development life Cycle There are few SDLC but following mentioned models

are mostly use in the testing Agile methodologyWaterfall modelV-model

Page 33: Software QA Fundamentals by Prabhath Darshana

7.1 What is Agile Methodology? Agile is speed up your testing and development activity.

Agile methodology should be performed from the starting of the project and should carry out till the project go live .the most important parts in agile are scrum meeting and sprint planning.

Page 34: Software QA Fundamentals by Prabhath Darshana

7.1.1 What is Scrum meeting ? Scrum is a kind of short time meeting done every day

and we discuss about every day work. Following aspects we are planning

Total time duration: we are discussing total time duration for each sprint to test and development. On daily basis we track the press of each task assigned.

Identifying the risk: we are discussing risk analysis during the each sprint .

Cost: we are discussing cost analysis because if testing time or development time will exceed will it effect to the allocated cost or not.

Resources: how many resources required to do testing for each sprint

Page 35: Software QA Fundamentals by Prabhath Darshana

7.1.2.What is sprint planning ?

Sprint is a part of a scrum meeting .each task we are called sprint.in scrum meeting we set our sprint planning. Once sprint planning is done we discuss on daily basis about the progress of particular sprint and sprint backlog in sprint meeting. Back log is a list of task list to be completed and assigned to the individuals.

Page 36: Software QA Fundamentals by Prabhath Darshana

7.2 What is water fall model? Waterfall model followed in the sequential order and so

we move to next step of testing if the previous step completed in successfully.in here we cant revert back to previous stem. This good for the small projects.

Page 37: Software QA Fundamentals by Prabhath Darshana

7.3 What is V-model? V-model(verification and validation) testing should

follow some sequence. This should be followed during performing test approach. Test execution sequence are followed in v shape. This testing starts on beginning of the project and continue parallel with the development.

Steps in v-modelUnit testingIntegration testingSystem testingAcceptance testing

Page 38: Software QA Fundamentals by Prabhath Darshana

7.3.1 V-model architecture

Page 39: Software QA Fundamentals by Prabhath Darshana

8. What is a bug ? Bug is an issue in the program that prevents it from operating properly.

Bug is getting a problem at the time of unit testing. Bug tracking tools: JIRA ,Bugzilla and mantis

What is the different between bug ,defect and error?A bug is getting a problem at the unexpected time of unit testing done

by the developer or module testing by the tester . Defect is a problem that got a customer in production time .as well as that can be found when the client or user is testing and its different with the client requirement specifications. Error is happen when the application runs without any issues under normal circumstances but its misbehave after few months or after performed lot of transaction , then we call the error.

Page 40: Software QA Fundamentals by Prabhath Darshana

9. What is a Test plan ? Test plan is a document which described the scope ,

approach ,resources and scheduled of intended test activities. Following are includes in test plan

introduction to the Test Plan document Assumptions while testing the application List of test cases included in testing the application List of features to be tested What sort of approach to use while testing the software List of deliverables that need to be tested The resources allocated for testing the application Any risks involved during the testing process A schedule of tasks and milestones to be achieved

Page 41: Software QA Fundamentals by Prabhath Darshana

10. What is a test cases ?

Test case is the detail of a project or module or functionality of a project which contains each step that you follow to execute the project.it contains positive scenarios only so that any one can follow each step written in test case and understand the project or module of the project.

Page 42: Software QA Fundamentals by Prabhath Darshana

11. What is a difference between test cases and test check list? Test Cases The test cases contains

only the positive scenarios

Better for the large projects

Test Check list The test check list

contains both possible negative and positive scenarios.

Better for the small projects

Page 43: Software QA Fundamentals by Prabhath Darshana

12.What is test metrics ? The objective of test metrics is to capture the planned

and actual quantities the effort , time , resources required to complete all the phases of testing of the software project. There are two types of test metrics such as :

Process metrics:measuring the characteristics of method ,tools and techniques employed in developing ,implementing and maintaining the software system.

Product metrics:measure the characteristics of the documentation

and code

Page 44: Software QA Fundamentals by Prabhath Darshana

13.Testing tools

Performance Testing Tools Jmeter HP Load Runner

Functional Testing Tools Selenium SoapUi Badboy Watir

Page 45: Software QA Fundamentals by Prabhath Darshana

Thank you!!!!!!!!!!!!!!!!!!