Thursday, December 3, 2009

Software Testing - Stress Testing

Sponsored Ad

Stress testing has a different meaning for different industries where it is used. For financial sector and the sector stress testing, a testing process of financial instruments to determine their robustness and accuracy level that can sustain under extreme conditions such as sudden market decline continued or at a certain level, sudden or extreme change on various parameters, for example, interest rates, repurchase agreements and time used in the financial sector, the sudden rise or fall in price of substances that may affect financial forecasts, etc. for manufacturing, testing effort can include different operating parameters and processes for the testing of different systems. For the medical industry, stress testing, a process that can help understand the condition of the patient, etc.

Stress tests in the IT industry

Stress tests in the IT sector (hardware and software sectors) means of testing software / hardware for its effectiveness to provide a consistent and satisfactory performance in extreme environments and stresses such as heavy network traffic, loading procedures, below or above the underlying hardware clock, working on applications for the maximum utilization of the resources of the periphery or in the system, etc.

In other words, stress testing helps find the level of robustness and consistency of performance as satisfactory or even crossed the limits for convention procedure of the system (software / hardware).

The most important use of stress testing is in testing software and hardware that are supposed to work at critical or real situation. As a website is always online and the server hosting the website must be able to handle the traffic in every potential way (even if traffic increases the variety), a mission-critical software or hardware that works on stage in real time, etc stress testing in relation to certain websites or software is considered an effective process to determine the limit, in which the system / / software hardware / website shows strength, is always available to perform its task, effectively manages the load that the normal scenario, and even shows effective error handling in extreme conditions.

Need for exercise testing

Stress testing is considered important for the following reasons:

1. Almost 90% of software / systems are developed with the assumption that they will operate in the normal scenario. And even if one considers that the limit of the normal operating conditions met, not much higher than might actually be.

2. The cost or the effect of a very important (critical) software / system / website failure in extreme conditions in real time can be huge (or can be catastrophic for the organization or entity that owns the software / system).

3. It is always best to be prepared for extreme conditions instead of letting the system / / software crash site, when it crosses the boundary of normal operation.

4. Tests conducted by the system developer / software / website may not be enough to help illuminate the conditions that lead to system crash or software when it is actually presented with the operating environment.

5. It is not always possible to make any problems or errors in a system or software, unless it is subjected to such tests.

To help overcome problems such as denial of service attacks, in the case of Web servers in a Web site, violation of safety due to problems with spam, hackers and viruses, etc., the problems arising from the conditions where / system software or website needs to process applications for resource allocation processes of interest at the time when all the necessary resources are already committed to some other process that needs more resources to complete its work (known as deadlock), memory loss, race condition, etc.

This type of testing is done mainly with the help of stress testing different programs available on the market. These tools are configured to automate a process of increasing tension (ie, the creation and increasing degree of adverse environment) in a system / software / website and capture the values of various parameters that help confirm the robustness, availability and performance of the system / software / web is being tested. Few of the actions involved in the stress test are bombarding a website with a large number of applications, the management of many sources of applications on a computer, making numerous attempts to access ports of a computer to hack it and used for various purposes, such as spam spread of viruses, etc.

Continue reading...

Open Source Software Testing Tools and Scripts

Sponsored Ad

Tester Tools is the largest website of Software Testing Tools with a variety of specific tests of open source software testing tools, ranging from scripts to test software security software systems, test harnesses and cloud computing .

We all live in the era of computers, there are plenty of inventions and changes are happening every day that relates directly to the computer. These updates and assistance to inventions in the heart of computer technology to be stable, but there is a kernel that has the ability to control even the core of the computer.

It's just the software

Acts as an effective interface between humans and computers. Since the first program built in the 1940s to the latest version of Google Earth 5, software diligence is the only industry that became a super star in the night. Now, we have software that rescues people from committing suicide to those used for the Mars mission.

However, all these programs have to undergo rigorous testing before being marketed or used. In principle, this test is performed manually with a software tester trying to do different things with the software, the test of reliability and other Aspects of the software for a specified period of time, check whether the software codes are properly and then loop software is released.

It took a long time for this process of testing to do, so the engineers came up with the idea of software that can try different software. And these programs were then known as generally as software testing tools. There are plenty of websites offering different software testing tools for a software engineer to test your software, but no comprehensive website offering the software testing tools of all kinds, but not anymore!

Besides all these features, the website also allows developers to upload their own software testing tools for the web, all you need is go to the page Send an instrument, then complete some simple details of the tool software testing is presented. The administrator will check the tool and add it to the list of other tools.

With all the great features and flexibility of this software testing center, stands out from the rest of other sites, and will become one stop location for all the testers out there.

Continue reading...

Software Testing - A Cautionary Tale

Sponsored Ad

There are some basic rules of them, who will serve you well in testing any application that deals with lists of data (and applications that do not?).

1.1, few, many "

2. "They make no hypothesis"

3. "Remember to mix a little"

This case study covers a very interesting example of where following the rules of thumbs * exactly * dividends.

The problem of

There was no interactive reporting solution that was having performance issues: in essence, there was some pathological performance degradation in some circumstances.

It contributes the lion's share of wasted time was in a 3rd party component that really could not be

There were several passes on the problem and things always did:

  • Direct: get the draft issue and simply pause the debugger at the point of obvious pain
  • Scrub indirect: the code in search of opportunities
  • (Time) through validation tests: write an automated script to perform the information component through a series of configurable settings

These scrubs palpable difference in each iteration: for reasons related to the limitations of the component of the 3rd party application and framework which was held on traceability was not large in the code and found to be difficult to get the right job the first time.

There were significant improvements made however: minutes became seconds in some cases, giving an indication of the potential seriousness of the issue of interactive applications.

However, it is that even if the encoding was achieved "first law" was not a hidden track that would have caused a return to the bench due to a serious performance problem.

The pump

In this case, it pays to enter a small detail:

Developers and testers have a certain level of awareness of the importance and complexity of a given process run time: in essence, tend to have an expectation that (approximately) the runtime is going as O (n) and many other applications is a strong pressure of nitrogen to a small number, otherwise the user experience can be very disappointing. Many defects arise around the issue that n is not really a small number. In this case, no figure appeared to be an acceptable if not excellent.

Developers and testers got a big surprise when at the last minute of the product release cycle of a project that was presented wholly challenged the performance as seen by developers and quality control. It took years to carry out what is immediately in much larger chunks of data.

What was happening?

The developer to debug the application: the calling sequence like any other data, only taken a very different time.

What is different in the project?

Well, one of the arrested were limits to open from the default of several hundred to several thousand people - that there was never any evidence of this number of elements in these lists but still a thousand years is a small number of modern machines with the functions that have an acceptable order of n.

Therefore, expectations are challenged: What was happening?

The automated test was repeated with the limits set to the default-busting - the quality was still acceptable and much better than the proposed problem.

It has reduced the data in the project. The automated test data that was created in a controlled manner and could not help.

Back to the developer.

They work hard for the last days of term development of the answer suddenly became clear in the purification and compare the behavior of large projects "good" and "bad" major projects.

The behavior of a key role to participate in the interactive exercise component was not simply characterized as O (n). A better indication would be O (n) + O (x) where x and y are the counts of items in the lists used by the component.

Where X and Y, below the default implementation of the second term was never observed by the behavior and the 3rd party component source was never discussed at the level where the fault could be found. When the defaults of the application exceeds this mass O (x) had the opportunity to be - "very important".

Why not capture the automated tests that when the larger sizes, were established in new settings?

Because the tests made a reasonable assumption - that n matter and therefore was not observed by the evaluator and advocate that the size of the list were all the same – x y is always zero

The proposed issue has real data with lists of great and different - all he did was a list that several articles of 1000 long and the other to be small for the performance problem besetting be exposed.

The moral of the story

One could argue the original bug report contained the core of the solution, providing an example of a rule of thumb # 3.

Golden Rule # 1 was initially intended to be covered adequately, but fatally compromised by the pathological behavior of the application. The application appears to be the game of assessors and internal model of development of certain very specific conditions; they were sadly realistic that a key feature.

Continue reading...

Custom software development

Sponsored Ad

During the development of complex projects you are faced with the choice between centralized management and decentralized projects. Centralized management means that the application of all phases of the project (from the simplest to the most difficult) is under control. At that time, there is a "Think Tank", keeping track of everything happening in the project. Decentralized management does not mean total rejection of project manager, who makes major decisions. This type of management implies that the control phase of the projects lies primarily with mini centers to report to the head of the general course of some phase of implementation, without elaborating.

Both approaches are in use, but its effectiveness depends on the structure of the company and developing the project. The centralized approach provides an advantage of full control over the process, and provides an opportunity to react in time if some phase of the project fails. Higher project risks to the terms or expected issue is reduced to the minimum in this case. But it is the reverse: the Think Tank is overloaded with information flow if the project has many steps and is divided into several subtasks. That has to process a large number of reports and consequently, the risks of failure of its primary mission: total control. The overworked heart can focus on the quality of various stages of project implementation, but may lose the main idea of the project in that. It is particularly relevant in the case of projects of large scale, complex developments, where project participants are in different time zones. Mini-sites can be created on the basis of pieces of projects, divided according to their subjects, or participants, close to each other in their geographical location. The central office does not know exactly what is happening in that or another area, but still free to support the main idea of the project and control over the major stages of project implementation. Using the decentralized approach risks doubt the main campus to inquire about the failure of sometime in the last minute.

The world has been experiencing a wide application of the recently decentralized system. It has a direct relationship to globalization and expansion projects. Many companies have employees working in offices located in different countries, or even at home. But one should not completely abandon the centralized approach - that is able to ensure the correct application of small tasks and projects that bring real benefit and ensure the development of your business.

Continue reading...

Software testing: Static

Sponsored Ad

A static test is necessary for detection of defects in the design phase and verify precisely the tasks for development of program modules and test plan. Thus, immediate performers of software modules will have a minimal sufficient package, but at the same time documents allowing them to begin working with waste minimal time in the study documents and comprehension tasks. Testers, in turn will have a comprehensive test plan, allowing them to verify the operation of the program product according to a criterion of "how it should work", not "how it was to work", as often happens.

The economic benefits are obvious static tests. Most of the large errors in the products of the program are derived from incomplete lists of demands of the tasks or incorrect. A developer often receive inadequate or excessive package of documents. These difficulties will be solved, using the static test. This means that the possibility of serious errors is dropping in the development phase. According to estimates, the costs of correcting errors in the static testing phase is 5 times less than in dynamic testing phase and 20 times less than in the operation stage of the product program. Our team will offer a series of operations necessary for the static test, ensuring high quality project documents and minimize the possibility of critical errors in the software already done.

The static testing involves contacts with the client or the contractor for the project, i.e. a person, able to express explicitly and the task of correcting the claims, if necessary.

The next job of the requirements for the software product: the client or his representative, the representative of the developer’s team representative team of assessors. At this stage the team of testers to control, to the list of requirements is complete and consistent. In the development stage of the testers of the composition of tasks, together with a leading developer of check, if tasks are full and not excessive.

A test plan for dynamic testing is formed during the static test. In it, including control of all the requirements for software products, and control of checkpoints, defined together with developers, as the choice of endpoints of the test depends on the programming tools significantly.

Continue reading...

Conventional software testing in a Scrum team

Sponsored Ad

If you are a professional application tester, or work in quality assurance, I consider you to be
(like me) a "conventional application tester." Increasingly, conventional application testers are finding themselves on teams using the Scrum development method. For testers unfamiliar with iterative lifecycles, this can be a real challenge. Having been on a variety of projects using Scrum as a conventional application tester, I'll share four stories that describe different approaches for testers.

The Scrum methodology can pose a challenge for application testers who are used to more traditional waterfall-inspired development processes. Jonathan Kohl relates his experiences working on Scrum teams who found some clear advantages in changing their methods.

What is Scrum?

According to the website of Scrum, Scrum is an agile process, light that can be used to manage and control software and product development using iterative, incremental practices. "The best place to start learning about Scrum is the page About the Scrum website. It's a good idea to learn as much as possible about Scrum as a tester, in particular the principles and theory behind it. To understand the terminology of this article, I will summarize some aspects of Scrum.

Scrum is a software management process that uses an iterative lifecycle and focuses on communication, including feedback loops. Each iteration, called Sprint, takes about four weeks. A Sprint is a block of time in completing the software development. Ideally, a complete vertical section of the application is submitted at the end of each Sprint. When each "slice" board, you have the full product. A Sprint is a longer cycle of votes in which the software developed in the last iteration is demonstrated to project sponsors and end users.

Short resubmit loops are also produced every day. These everyday Scrum meetings last fifteen minutes, during which team members describe what we are working and raise issues they might find. The Scrum Master (the person who manages the project management) will Scrum meetings.

Work to be undertaken during the life of a project (a project contains several Sprints) is summarized in an accumulation of products. The Product Backlog contains a list of characteristics needed for the project; this is the scenario for the project. Each also has a Sprint backlog tasks to meet a number of features in the Product Backlog. This describes the work of a special sprint. These documents are often written in a high level. The details can be filled in according to the practices of the team. How to perform tasks to achieve the objectives of the project left the team in Scrum, so it's common to see Scrum teams using Extreme Programming or other within Scrum.

For the evaluator, the most important things to note about Scrum are its iterative lifecycle and frequent communication. Both may require some adjustments by the examiner, who can be relied on to do the following:

  • Proof of within each iteration, rather than the end of a development cycle
  • Decide what to test when a product is still unfinished
  • Collaborate with team members rather than working in isolation
  • Participate in daily status meetings are a maximum of 15 minutes duration

Request Information on individual chemical through tests, and work with other team members to determine what to test, rather than testing requirements documents.

Continue reading...

Website Updates