Monday, 24 February 2014

Differences between Static and Dynamic Software Testing

 What are the differences between Static and Dynamic Software Testing

The complex and time-consuming nature of software development has made it essential for organizations to implement a comprehensive software testing strategy.

Some enterprises still use conventional and manual testing methods, whereas others automate software testing to save both time, efforts and cost. However, the software testing plan of each organization must concentrate on a number of additional points to improve both efficiency and productivity. The software application verification activities can be divided into static and dynamic testing.

4. Testing Techniques: The testing techniques used for static and dynamic testing also vary. Static testing normally used certain techniques to prevent defects by verifying the process. So it uses techniques like informal and technical reviews, walkthrough, inspection and static code review. But dynamic testing uses several techniques to identify and fix defects in the application, while doing validation process. Therefore, dynamic testing uses techniques like unit testing, system testing and integration testing.

5. Coverage: Normally, static testing can be carried out before compilation. But dynamic testing can be done only after compilation and linking. Also, each type of testing will cover different aspects of the software. Static testing will provide structural and statement coverage to improve quality through reviews and comments. At the same time, dynamic testing will cover the executable file of the code to identify and fix all types of bugs.

6. ROI: Unlike dynamic testing, static testing is performed in the early stages of development. Therefore, static testing is considered to be more cost-efficient in comparison to dynamic testing. The static testing techniques are further considered to get higher return on investment (ROI) as no test automation tools are required. However, static testing requires more meeting and manual efforts in comparison to dynamic testing.

An effective software application testing strategy must include the static as well as dynamic testing methodologies to improve software quality. The static testing methods can be used to for the purpose of verification, whereas the dynamic testing methods will involve validation.

Author: Ken Miller
Source: Link

Tuesday, 11 February 2014

Automation Testing Pros and Cons

Automation Testing Pros and Cons

GIGO! Everybody look to be tuned in to what it is: "Garbage in, Garbage out." What most of the parents don't notice is that the time and economic impact GIGO has on corporations that concentrate on the bottom line. And in these times of economic uncertainty, isn't that everyone?

The nice news is that software testing automation tools can build a very necessary distinction in time and resource savings, but the execs and cons need to be compelled to be fastidiously thought of. What follows are the foremost necessary execs and cons.

The first major advantage is larger productivity. Automated testing makes the strategy any economical. Practically everything done manually is longer consuming, significantly when place next with the benefits of automated testing. Automated testing software takes less time and permits workers to induce any done. As a result of automated software testing takes less time, productivity is increased, and resource hours are decreased. The latter is incredibly necessary as a result of labour costs do not appear to be low value. The sole results any profit for the company.

The second major advantage is any correct tests. People build mistakes. That's a truth of life, and by using applicable software testing tools the probabilities of manual errors inflicting problems is reduced or eliminated altogether. Though it's true that software is just nearly just about nearly as good as a result of those who wrote the code, at intervals the tip, automating the strategy of software testing creates fewer errors, resulting in higher merchandise.


One of the foremost disadvantages is that automated software testing tools is expensive to deploy. That the value can increase with the complexity of the deployment. As an example, huge organizations sometimes have many enterprise systems and interfaces in place, the overall of which can increase the extent of complexity associated with implementing any new tool. but though they are doing not seem to be low value, at intervals the tip the additional value of testing and fitting the equipment is usually offset by the long-term edges of saved time and labour costs.

Another disadvantage is that there is typically a fairly substantial learning curve. "Plug and play" software testing tools haven't been created but. As a result, automated software testing tools take time to be told the due to use. Therefore, whether or not or not or not or not or not or not it's as a result of current personnel capabilities or varied factors, automated software testing tools might not be applicable for every company.

Another potential disadvantage is that the risks that the automated tool will become obsolete down the road. This will be never known at the time of initial deployment, but whenever an automatic tool becomes outdated and desires to induce replaced, the company is forced to travel through the whole implementation methodology everywhere once more. Thus, any tool that ultimately proves to possess a quick shelf life represents wasted value and energy.

Just as is that the case with many tools which will be used to figure a corporation any efficiently, there are pluses and minuses involved in implementing a replacement software automation testing tool. Therefore, before any such tool is implemented to be used, every the execs that the cons need to be compelled to be totally investigated. The selection to deploy a tool should be compelled to solely be approved once exhaustive analysis of all sides of the equation.

Author: Clara James
Source: Link

Top 20 Software Testing Practical Tips for ISTQB Certification Foundation Level

Top 20 Software Testing Practical Tips for ISTQB Certification Foundation Level

I hope all testers can browse these software testing smart practices. Browse all points rigorously and check out to implement them in your day-to-day QA activities. This is often what I expect from this article; if you do not perceive any QA apply, rise for a lot of clarification in comments below. After all, you'll learn of these testing practices by expertise. However then why not try and learn of these things before creating any mistake?
Here are a number of the most effective testing practices I learned from experience:

1) Learn to research your results totally. Don't ignore the result. The ultimate take a look at result could also be 'pass' or 'fail' however troubleshooting the foundation reason behind 'fail' can lead you to the answer of the matter. Testers are revered if they not solely log the bugs however conjointly offer solutions.

2) Learn to maximise the QA coverage when you take a look at any application. Though one hundred pc take a look at coverage won't be attainable still you'll invariably try and reach close to it.

3) To make sure most coverage breaks your application beneath take a look at (AUT) into smaller useful modules. Write take a look at cases on such individual unit modules. Conjointly if attainable break these modules into smaller elements.

E.g.: Let's assume you've got divided your web site application in modules and 'accepting user information' is one among the modules. You'll break this 'User information' screen into smaller elements for writing take a look at cases: elements like UI testing, security testing, useful testing of the 'User information' kind etc. Apply all kind field kind and size tests, negative and validation take look arts on input fields and write all such test cases for optimum coverage.

4) Whereas writing take a look at cases, write take a look at cases for supposed functionality 1st i.e. for valid conditions in step with needs. Then write some for invalid conditions. This may cowl expected additionally surprising behaviour of application beneath scrutiny.

5) assume positive. Begin testing the applying by intend of finding bugs/errors. Do not assume beforehand that there'll not be any bugs within the application. If you take a look at the applying by intention of finding bugs you'll undoubtedly succeed to search out those delicate bugs conjointly.

6) Write your take a look at cases in demand analysis and style section itself. This manner you'll guarantee all the wants are testable.

7) Create your take a look at cases out there to developers before coding. Do not keep your take a look at cases with you waiting to induce final application unleash for testing, thinking that you just will log a lot of bugs. Let developers analyse your take a look at cases totally to develop quality application. This may conjointly save the re-work time.

8) If attainable establish and cluster your take a look at cases for regression testing. This may guarantee fast and effective manual regression testing.

9) Applications requiring important response time ought to be totally tested for performance. Performance testing is that the important a part of several applications. In manual testing this is often principally ignored half by testers attributable to lack of needed performance testing massive information volume. Ascertain ways in which to envision your application for performance. If unimaginable to form take a look at information manually then write some basic scripts to form take a look at information for performance take a look at or raise developers to jot down one for you.

10) Programmers mustn't take a look at their own code. As mentioned in our previous post, basic unit testing of developed application ought to be enough for developers to unleash the applying for testers. However you ought to not force developers to unleash the merchandise for testing. Allow them to take their own time. Everybody from cause manger grasp when the module/update is released for testing and that they will estimate the testing time accordingly. This is often a typical scenario in agile project surroundings.

11) Transcend demand testing. Take a look at application for what it's not speculated to do.

12) Whereas doing regression testing use previous bug graph (Bug graph - variety of bugs found against time for various modules). This module-wise bug graph may be helpful to predict the foremost probable bug a part of the applying.

13) Publish the new terms, ideas you learn whereas testing. Keep a text file open whereas testing an application. Publish the testing progress, observations in it. Uses these notepad observations whereas getting ready final take a look at unleash report. This smart habit can assist you to supply the entire unambiguous take a look at report and unleash details.

14) Over and over take a look tester or developers create changes in code base for application beneath test. This is often needed step in development or testing surroundings to avoid execution of live transaction processing like in banking comes. Publish all such code changes in hot water testing purpose and at the time of ultimate unleash make certain you've got removed of these changes from final consumer facet deployment file resources.

15) Keep developers aloof from take a look at surroundings. This is often needed step to detect any configuration changes missing in unleash or deployment document. Sometimes developers do some system or application configuration changes however forget to say those in deployment steps. If developers haven't got access to take look surroundings they'll not do any such changes accidentally on test surroundings and these missing things may be captured at the correct place.

16) It is a smart apply to involve testers right from software demand and style section. These methods will get data of application dependability leading to detailed test coverage. If you're not being asked to be a part of this development cycle then create request to your lead or manager to involve you're testing team in all call creating processes or conferences.

17) Testing groups ought to share best testing practices, expertise with different groups in their organization.

18) Increase your conversation with developers to grasp a lot of regarding the merchandise. Whenever attainable create face-to-face communication for resolving disputes quickly and to avoid any misunderstandings. However conjointly once you perceive the necessity or resolve any dispute - make certain to speak a similar over written communication ways in which like emails. Don't keep any issue verbal.

19) Do not run out of your time to try and do high priority testing tasks. Prioritize your testing work from high to low priority and arrange your work accordingly analyse all associated risks to prioritize your work.

20) Write clear, descriptive, unambiguous bug report. Don't solely offer the bug symptoms however conjointly offer the impact of the bug and every one attainable solution.
Don't forget testing may be an artistic and difficult task. Finally it depends on your ability and knowledge, how you handle this challenge.

Author: Clara James
Source: Link

Measuring Performance Testing Effectiveness

Measuring Performance Testing Effectiveness.

Performance Testing measures the effectiveness of the computer, network or any software application. Quantitatively the application is tested for the response time upon certain input and qualitatively it's checked for reliability, scalability and interoperability.

Performance Testing is conducted by using various tools like J Meter, Load Runner, Astra Load and WAPT. Performance parameters are defined for the application and results are analyzed on the basis of these parameters like "Response Time", "Throughput", "Transfer Rate" to name a few. A complete performance analysis report is compiled highlighting the performance issues and recommendations as per the analysis. Various types of testing parameters are used to determine the performance of an application.

Stress Testing - (also called Load Testing) is performed to identify the stability of an application under certain level of load. During this test we attempt to stress the application to the point of failure. This reveals all the weak points in the application.

Recoverability Testing - checks if the application is self recoverable or not if treated beyond its threshold. The behavior of application is checked beyond its point of failure and then traversing back. This gives a clear aspect if the application is self recoverable and has been catered for any contingency plans.

Endurance Testing - (also called Longevity Testing) monitors the application behavior on a constant moderate workload for a long period of time. This helps pinpoint bottlenecks and component limitations. Spike Testing - Spike Test use real-world scenarios but under extremely fast ramp up and ramp down times with peaks upto 100% - 150% in a matter of minutes rather than gradual increase.

Performance Tuning - System's ability to adapt to higher load is called scalability. In performance tuning, modifications are made to the system to make it ready for managing higher load. We follow the measure-evaluate-improve-learn cycle for performance tuning which include the following steps :
  • Assess the problem and establish numeric values that categorize acceptable behavior
  • Measure the performance of the system before modification
  • Identify the part of the system that is critical for improving the performance
  • Modify that part of the system to remove the bottleneck
  • Measure the performance of the system after modification
Author: Clara James
Source: Link