Software Test Automation

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

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

Benefits of Test Automation

  • 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

Popular Automation Tools

  • 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
  • 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
    • Identify
      • TA tools/Framework architecture
    • Type of Project
      • Back-end/Front-end/Both
    • Dev work
      • Framework architecture
        • data-driven/keyword-driven/hybrid
    • Create Scripts
      • smoke tests
        • execute/validate/report
      • core function modules
        • execute/validate/report
      • map all script traceability to requirements
  • Project Complete
  • Client Acceptance
  • Deliverables
    • Documentation
      • Software under test (SUT) coverage
      • Administration
      • User’s Guide
    • Training

Next Steps

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.

Share