Unit 3
Unit 3
Agile Testing
Agile Life Cycle
Scrum Impact on Software Testing
• The Scrum methodology can pose a challenge
for software testers who are used to more
traditional waterfall-development processes.
• However, after implementation of Scrum
methodology telecom project, testing team
has found positive advantages that described
below in details:-
A. Early Involvement
• Impact on Testing: -
– Daily software builds used to raise the visibility of
development work and ensure that code modules
integrate.
– Daily build really a great help to testing team to test
build wise requirement and help to prepared testing
documentation at right time.
– Form development prospective it is also help to fix
daily defect found in testing.
D. Iteration Wise Testing
• Impact on Testing: -
– Help to prepare testing strategy well in advance
– Help to manage/assign tester for particular
iteration
– Help to track testing individual performance
– Help to tester to understand functionality,
dependency while writing test cases
– Help to track tester performance/weakness as per
iteration wise
E. Time-boxing Requirements
• Impact on Testing: -
– Help to plan out testing strategy for particular
release with respect to time
– Help tester to complete task within planned
schedule.
– Helps test manager to check tester work
performance.
F.Requirement Management
• It is reasonable to define what you are going to build before you build
it; to identify the requirements for something before you code it.
• What is not reasonable is defining all of the requirements in a
comprehensive document before you begin implementation. Then it is
much better to rank you requirements as per priority and just
categorize them (high, medium, low).
• Also, check whether changing requirement is dependent on any other
requirement; it would help us to estimate development and testing
effort.
• Team distributed across onshore/offshore the same practice will be
through tele-conference and video conference.
• It is especially critical here to manage hand-offs across time zones and
ensure effective communication and management of defects.
F.Requirement Management
• Impact on Testing: -
– While identifying requirement tester should know
about complexity and dependency of that
requirement.
– Easy for tester to cover test case for those
requirement which are mandatory for client
– Help to set bug fix priority as per importance of
requirement considering client impact
– Based on requirement category, Test Lead can
easily estimate testing timeframe.
G.Retrospective Meeting
• Impact on Testing: -
– Help tester to plan for new iteration as per
development feedback and vise versa
– Help for testing planning for next iteration
releases
– Help to improve testing activity as per feedback of
development and CM team
Agile Testing Strategies
• Project initiation
– The whole team
– The independent test team
– Test environment setup
• Development team testing
– Continuous integration
– Test-driven development (TDD)
– Test-immediately after approach
• Parallel independent testing
• Defect management
• End-of-lifecycle testing
• Who is doing this?
• Implications for test practitioners
Agile Testing Strategies
Figure 2
1.Project Initiation
Clean code
More productive
Good design
How does it work?
Have a requirement. Let’s say “create a new random card, as for a
card game”.
Think about what could be a reasonable test to verify compliance
with the requirement.
Write the test before writing the code. Of course, the test will fail,
and that’s ok.
Keep things simple.
Then, write only the minimally necessary code to make the test
pass.
This is a process of discovery; as you identify possible
improvements, refactor your code relentlessly to implement
them.
Build, keep, and frequently run your cumulative collection of
tests.
28
2.2 Test-Driven Development (TDD)
(https://www.guru99.com/exploratorytesting.html
#:~:text=EXPLORATORY%20TESTING%20is%20a%20type,as%20a%20%22think
ing%22%20activity
.)
https://www.guru99.com/risk-based-testing.html
Regression tests
Regression Testing is defined as a type of software testing to confirm that a
recent program or code change has not adversely affected existing features.
Regression Testing is nothing but full or partial selection of already executed
test cases which are re-executed to ensure existing functionalities work fine.
This testing is done to make sure that new code changes should not have
side effects on the existing functionalities. It ensures that old code still works
once the new code changes are done
Need of Regression Testing
Regression Testing is required when there is a
• Change in requirements and code is modified according to the requirement
• New feature is added to the software
• Defect fixing
• Performance issue fix
(https://www.guru99.com/regression-testing.html)
Test automation
• Manual Testing is performed by a human sitting in front of a computer
carefully executing the test steps.
• Automation Testing means using an automation tool to execute your test
case suite.
• The automation software can also enter test data into the System Under
Test, compare expected and actual results and generate detailed test
reports. Test Automation demands considerable investments of money
and resources.
Automated software testing is important due to following reasons:
• Manual Testing of all workflows, all fields, all negative scenarios is time
and money consuming.
• It is difficult to test for multilingual sites manually.
• Automation does not require Human intervention. You can run automated
test unattended (overnight)
• Automation increases the speed of test execution
• Automation helps increase Test Coverage
• Manual Testing can become boring and hence error-prone.
Conti..
The following category of test cases are not suitable for automation:
• Test Cases that are newly designed and not executed manually at least
once
• Test Cases for which the requirements are frequently changing
• Test cases which are executed on an ad-hoc basis.
(https://www.guru99.com/automation-testing.html)
Conti…
Automated Testing Process:
Securing Agile software
Steps to Integrate Security into Agile Software
Development
1. Add security acceptance criteria in user stories.
2. Stakeholders can conduct various security tests during
product review
3. Develop proper code conventions for Open Web
Application Security Project® (OWASP) Proactive Controls
4. Use Agile Retrospectives
5. Integrate Continuous Integration Security Practices in
the SDLC.
6. Build security into your pipeline.
(https://www.bridge-global.com/blog/6-essential-steps-to-integrate-security-in-agile-software-development/)
THANK YOU