software testing and agility

20
SOFTWARE TESTING AND AGILITY ZAID SHABBIR

Upload: zaid-shabbir

Post on 16-Apr-2017

54 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Software Testing and Agility

SOFTWARE TESTING AND AGILITY

ZAID SHABBIR

Page 2: Software Testing and Agility

ZAID SHABBIR

TRADITIONAL VS AGILE SDLC

Requirement

Analysis & Design

Coding

Testing

Release

Traditional Water Fall

Agile - SCRUM

Page 3: Software Testing and Agility

ZAID SHABBIR

TRADITIONAL SDLC - TESTING AS A PHASE

▸ First code then test

▸ Separate coding and testing teams

▸ Heavyweight process

▸ Automation after coding

Page 4: Software Testing and Agility

ZAID SHABBIR

TESTING IN AGILE ENVIRONMENT

▸ Whole team approach

▸ The team commitment to quality

▸ Team responsible for testing

▸ Testers get support and training

▸ Developers do testing activities

▸ Coding and testing treat as single process

▸ Feedback and collaboration is key

▸ Test driven development

▸ Exploratory testing

Page 5: Software Testing and Agility

ZAID SHABBIR

TEAM ORGANIZATION

Page 6: Software Testing and Agility

ZAID SHABBIR

ROLE OF TESTER IN AGILE

▸ Project Initiation: get understanding of a project

▸ Release planning: participate in estimating stories and create test plan

▸ Iterations (1 … n ):

▸ Write and execute test cases

▸ Pair test with other testers and developers

▸ Automate new functional test cases

▸ Run automated regression test cases

Page 7: Software Testing and Agility

ZAID SHABBIR

ROLE OF TESTER IN AGILE …

▸ System Test:

▸ Perform load, performance and stress test

▸ Complete regression test

▸ User acceptance testing (UAT)

▸ Participate in release readiness

▸ Release product and support:

▸ Participate in release product

▸ Participate in postmortem

Page 8: Software Testing and Agility

ZAID SHABBIR

ROLE OF TESTER IN AGILE …

▸ Development = Testing + Coding

▸ Write test, Write code, test

▸ Automate maximum test as possible so that spare time for exploration

▸ Team plan testing activities (All four quadrants)

Page 9: Software Testing and Agility

ZAID SHABBIR

TESTING QUADRANTS

Page 10: Software Testing and Agility

ZAID SHABBIR

TEST AUTOMATION PYRAMID

Page 11: Software Testing and Agility

ZAID SHABBIR

TESTING LEVELS

▸ Unit Testing / Component Testing

▸ Integration Testing

▸ System Testing

▸ Acceptance Testing

▸ User acceptance testing

▸ Operational testing

▸ Contract and regulations acceptance verification

▸ Alpha / Beta Testing

Page 12: Software Testing and Agility

ZAID SHABBIR

TESTING LEVELS - UNIT/COMPONENT TESTING

▸ It covers functional or non-functional verification of software module, sub programs, objects, classes etc.

▸ Unit testing covers

▸ Functional verification of unit or modules

▸ Memory leaks

▸ Robust ness test

▸ Security verification

▸ Unit testing occurs with access to the code and with support of development environment (Unit test framework or debugging tools)

▸ In Agile TDD use for unit/component verification, In this approach automated test cases written before the actual code

Page 13: Software Testing and Agility

ZAID SHABBIR

TESTING LEVELS - INTEGRATION TESTING

▸ Component integration testing tests the interactions between software components

▸ System integration testing tests the interactions between different systems or between hardware and software and may be done after system testing

▸ Greater the integration scope defects troubleshooting is more difficult

▸ Integration testing covers inter module/system communication and its impact

▸ Components/System architect and its integration plan provide the lines of integration verification

Page 14: Software Testing and Agility

ZAID SHABBIR

TESTING LEVELS - SYSTEM TESTING

▸ System testing concerned with the whole behavior of system or product

▸ System testing should cover functional and non-functional requirements

▸ Tester should cover documented and undocumented requirements

▸ Both White box and Black testing can be use in system testing

Page 15: Software Testing and Agility

ZAID SHABBIR

TESTING LEVELS - ACCEPTANCE TESTING

▸ Acceptance testing is the responsibility of customer, users of the system, product management or other stakeholders

▸ The main goal is to establish the confidence of end users w.r.t to functional and some how non-functional aspects

▸ Acceptance testing may occur at various time like

▸ Acceptance testing of the usability of a component may be done during component testing

▸ Acceptance testing of a new functional enhancement may come before system testing

▸ A large-scale system integration test may come after the acceptance test for a system

Page 16: Software Testing and Agility

ZAID SHABBIR

TESTING LEVELS - ACCEPTANCE TESTING - USER ACCEPTANCE

▸ User acceptance testing covers either the business needs cover or not in the development feature, component or system.

Page 17: Software Testing and Agility

ZAID SHABBIR

TESTING LEVELS - ACCEPTANCE TESTING - OPERATIONAL ACCEPTANCE

▸ Operational acceptance testing covers the the acceptance of the system by the system administrator with different perspective

▸ Testing of backup/restore

▸ Disaster recovery

▸ User management

▸ Maintenance tasks

▸ Data load and migration tasks

▸ Periodic checks of security vulnerabilities

Page 18: Software Testing and Agility

ZAID SHABBIR

TESTING LEVELS - ACCEPTANCE TESTING - CONTRACT AND REGULATION ACCEPTANCE

▸ Contract acceptance testing is performed against a contract’s acceptance criteria for producing custom-developed software. Acceptance criteria should be defined when the parties agree to the contract

▸ Regulation acceptance testing is performed against any regulations that must be adhered to, such as government, legal or safety regulations

Page 19: Software Testing and Agility

ZAID SHABBIR

TESTING LEVELS - ACCEPTANCE TESTING - ALPHA & BETA

▸ Alpha testing perform within the development organization but not in the development team

▸ Beta testing or field testing performed by targeted customer on their own environment

Page 20: Software Testing and Agility

ZAID SHABBIR

ISO 9126 SOFTWARE QUALITY CHARACTERISTICS

ISO 9126

FUNCTIONALITY

SUITABILITY ACCURACY INTERPRETABILITY COMPLIANCE SECURITY

RELIABILITYFAULT TOLERANCE

RECOVERABILITY

USABILITY

UNDERSTANDABILITY

LEARNABILITY

EFFICIENCY

TIME BEHAVIOR

RESOURCE BEHAVIOR

MAINTAINABILITY

ANALYZABILITY CHANGEABILITY STABILITY TESTABILITY

PORTABILITY

ADAPTABILITY INSTALL-ABILITY CONFORMANCE REPLACEABILITY