View
56
Download
0
Category
Preview:
Citation preview
SOFTWARE TESTING AND AGILITY
ZAID SHABBIR
ZAID SHABBIR
TRADITIONAL VS AGILE SDLC
Requirement
Analysis & Design
Coding
Testing
Release
Traditional Water Fall
Agile - SCRUM
ZAID SHABBIR
TRADITIONAL SDLC - TESTING AS A PHASE
▸ First code then test
▸ Separate coding and testing teams
▸ Heavyweight process
▸ Automation after coding
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
ZAID SHABBIR
TEAM ORGANIZATION
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
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
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)
ZAID SHABBIR
TESTING QUADRANTS
ZAID SHABBIR
TEST AUTOMATION PYRAMID
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
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
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
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
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
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.
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
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
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
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
Recommended