Software Test Automation
Program Implementation and Ongoing Support
Automated Software Testing isn’t a silver bullet or a magical solution – it’s a key component of a well-defined software testing program, and it can deliver generous benefits when implemented properly.
Additionally, it can be the backbone of your DevOps and Software Development Lifecycle (SDLC) in order to eliminate costly rework and accelerate throughput via automated processes.
Whether you have a burgeoning test automation (TA) program running full tilt (and you require additional experienced engineers) or you’re considering TA for the first time – you’ve come to the right place.
Feel free to select the aspect of Test Automation that you wish to learn about first!
- Key aspects of Test Automation
- Known hurdles with Test Automation
- Benefits of Test Automation
- Recommended Uses for Test Automation
- Advantu’s Team provides the Following:
- Popular Automation Tools
- What a Test Automation Engagement Looks Like
- Next Steps
Key aspects of Test Automation
DevOps
- Continuous integration supported by continuous testing
- Execution of automated tests throughout the delivery pipeline
SLDC
- Run risk-based automated regression tests prior to each deployment within the pipeline
- Execution of post-production health checks to ensure traceability for ‘best practice’ product quality
Known hurdles with Test Automation
- Higher than expected upfront costs
- Very high failure rate for improperly implemented test automation projects (> 60%)
- Ongoing effort required to maintain the program
- Not having an organized software testing program – which includes test automation
- The desired benefits of test automation weren’t reviewed and agreed to
- Correct candidates (target tests/test cases) weren’t properly identified upfront
- Qualified test automation engineers weren’t part of the planning process – prior to execution
- The automation tools and/or frameworks weren’t properly identified, verified before implementation
- Regression test scripts haven’t evolved with changes to product features
- All viable areas of the product, application or system may not have been mapped out – so you’re not experiencing maximum benefits
- Certain features/functionality (which should never be automated) were included, which dramatically increased your workload and defeat the purpose of a TA program
- Effective Agile and DevOps testing (benefits directly from automation)
- Automating the unit test & API layers
- Increases velocity because less testing is needed at the UI level
- Rapid release of efficient, effective and reliable software
- Extremely accurate & predictable test phase (level of effort) estimates
- Scalability to future product requirements
- Expansive test result reporting across your active projects
- Increase speed, efficiency, and quality while reducing testing costs
- Execute more tests in less time
- Maximize resources by testing in parallel on multiple servers, during off-peak hours
- Trigger smoke and sanity tests from your CI server; execute full or partial regression suites
- Efficiently test happy path scenarios, boundaries and edge cases
- Ensure that your application performs consistently on every platform
- Expand your testing capacity, get faster feedback, and improve product quality
Recommended Uses for Test Automation
- Unit testing
- Functional requirement testing
- Performance testing
- GUI testing
- Regression testing
- Integration testing
- System load testing
- Security testing
Advantu’s Team provides the Following
- Test Automation Planning (guidance & support)
- Tool Assessment & Recommendation
- Framework Development
- Determine Test Candidates
- Script Design and Execution
- Test Result Reporting
- Traceability to Requirements
- Verify coverage & completeness
- Confirm risk reduction
- Happy Clients!
- Successfully achieve their TA Goals
- Appium: mobile testing (Android/iOS)
- Selenium: browser testing (IE, Chrome, Firefox, Safari)
- VisualUIAVerify: windows gui driver for UIA test library
- Canopy: write automated tests for web applications
- Jasmine: enables behavior-driven development (bdd) at the unit level
- Unit.net: unit testing framework
- FluentAutomation: automate any web application
- NUnit: write and run a wide variety of unit tests
- White CodePlex: used for UI automation of Windows applications
- Cucumber: create acceptance tests for web applications in easily readable & understandable formats (like English) for Business Analysts, Developers, etc.
- RestAssured: REST API testing
- Jenkins: continuous integration (build and test)
- Git: version control
- AngularJS: structural framework for dynamic web apps
- Framework Elements
- FitNesse (functional testing framework to organize tests in suites and easily run them and view results)
- Log4J (java based logging utility to manage log msgs and its granularity)
What a Test Automation Engagement Looks Like
Standard Test Automation Project
- Test Automation Plan
- High level scope
- Risk assessment/Coverage/Estimated level of effort
- Timeline/Milestones/Progress Reports
- High level scope
- Client Approval
- Project Start
- Identify TA candidates
- Prioritize (can’t automate everything)
- Most essential to the business (biggest bang for the buck)
- i.e., smoke test, installation, core functionality/features
- Most essential to the business (biggest bang for the buck)
- Identify
- TA tools/Framework architecture
- Type of Project
- Back-end/Front-end/Both
- Dev work
- Framework architecture
- data-driven/keyword-driven/hybrid
- Framework architecture
- Create Scripts
- smoke tests
- execute/validate/report
- core function modules
- execute/validate/report
- map all script traceability to requirements
- smoke tests
- Project Complete
- Client Acceptance
- Deliverables
- Documentation
- Software under test (SUT) coverage
- Administration
- User’s Guide
- Training
- Documentation
Needs assessment – let’s discuss your project needs & see if test automation is a good fit for you. Not everything should be automated.
If test automation is the recommended solution, we can collaborate to determine the best ‘next steps’ for you.