Header Ads

Software Performance Enhancement Bottom Up Approach


Software Performance Enhancement Bottom Up Approach



What is this life if, full of care,
We have no time to stand and stare.
--poem by Welsh poet W. H. Davies

Performance tests are usually given less priority compared to the functional feature test, usually because of lack of time or stringent project deadline.

SDLC should incorporate performance engineering activities which comprises of testing software for throughputlatency, or memory usage requirements, to enhance the performance of the software from the bottom up approach rather than top down.

Performance engineering has wider scope more focus needs to be given on construction or implementation phase, as there already has been exponential growth in performance improvement of hardware, network infrastructure which is accordance with moore’s law but relatively less growth in performance improvement in software engineering. Nevertheless, by focusing some key areas software performance improvement can be achieved significantly.

Performance Focus Areas:

1. Unit TestingUse unit testing tools, to test the functionality of all public methods or smallest unit of code directly used in production. For example providing inputs as specified in method signature and checking the output with desired output and report any deviation.


- Use of Library Functions or API's as much as possible.
- Use Static Analysis Tools
- Use of Design Patterns for generic problem solving.
3. Profilers – Program analysis tool, to measure space and time complexity and also to measure the method or function execution time. After analyzing the report code optimization can be performed.

3. Automated Performance testing tools - Performance, Load Test, Stress Test is performed.

Load Test To test performance by increasing load gradually until specified by performance requirement or benchmark and check that software performs as intended. This determines scalability factor.

Stress Test To test performed by increasing load gradually until highest point of tolerance is breaked for the software. This determines stability factor.

Performance Test To test performance of individual features or functionality. This determines availability and speed factor.

List of Performance Test Tools:

  • LoadNinja
  • Apache JMeter
  • WebLOAD
  • LoadUI Pro
  • LoadView
  • NeoLoad
  • LoadRunner
  • Silk Performer
List of Database Performance Test Tools – Performance, Load and Stress test on database.
  • dbForge Unit Test For SQL Server
  • Data Factory
  • MockupData
  • DTM Data Generator
  • SQL Server database tools
  • SQL Test
  • tSQLt
  • Oracle SQL Developer
  • NoSQLUnit
  • NoSQLMap
  • SeLite

Conclusion

Performance and Reliability aspects are generally given less priority, however performance affects the reliability of the software which is important from the end user and business point of view. Failure of performance and reliability can be avoided by using proper tools as discussed and aligning SDLC processes with performance activities which can give tangible benefits to success of the project.

6 comments:

  1. I will prefer this blog because it has muchmore informative stuff. This is really good, also visit Automated QA Testing Software for more related information and knowledge.

    ReplyDelete
  2. Thank you again for all the knowledge you distribute,Good post. I was very interested in the article, it's quite inspiring I should admit. I like visiting you site since I always come across interesting articles like this one.Great Job, I greatly appreciate that.Do Keep sharing! Regards, Hot Desking

    ReplyDelete
  3. This post is so helpfull and informative.Keep updating more information...
    Best Spoken English
    Spoken English Class Videos

    ReplyDelete

automationglance.com. Powered by Blogger.