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 throughput, latency, 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 Testing – Use
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 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
- 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.
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.
ReplyDeleteThank you
DeleteThank 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
ReplyDeleteThank you !!
DeleteThis post is so helpfull and informative.Keep updating more information...
ReplyDeleteBest Spoken English
Spoken English Class Videos
Thanks for sharing this most useful blog with us...
ReplyDeleteWhat is Tableau used for
What is Tableau