Tuesday, March 16, 2010

Best practices for managing clustered test environments

Best practices for managing clustered test environments(Enterprise Networking).
http://www.thefreelibrary.com/Best+practices+for+managing+clustered+test+environments.+(Enterprise...-a0105884208

Jim Lee is vice president of product marketing at Princeton Softech (Princeton, NJ)
www.princetonsoftech.com

Today, companies are challenged to satisfy the business needs of demanding customers by providing quality applications and high levels of performance in an increasingly complex hardware and software environment. Pressure from strong competition and flat or shrinking IT budgets are compounding the situation. IT executives are searching for the best methods and tools to help them achieve the right balance between delivering reliability and performance for applications and systems that must be available 24x7.

One common solution for achieving this balance in supporting large scale, high-volume enterprise systems is to implement various clustering configurations that manage applications, hardware and databases effectively. Clustering is simply a way to physically and logically group hardware and software resources to work together as one system, and there are a variety of clustering configurations that allow for load balancing The fine tuning of a computer system, network or disk subsystem in order to more evenly distribute the data and/or processing across available resources. For example, in clustering, load balancing might distribute the incoming transactions evenly to all servers, or it might redirect them among the hardware, software and database resources. Clustering effectively improves processing efficiency and performance, while reducing operating costs operating costs npl → gastos mpl operacionales
..... Click the link for more information., especially for large enterprise scale, mission-critical systems.

In a production environment, database and hardware clustering deliver improved availability, performance and scalability. Application clustering, also called software clustering, adds a third dimension to the configuration possibilities that is inexpensive and relatively easy to reconfigure To change the status of something. . However, how should these clustering techniques be deployed in a testing environment? Can you afford to replicate rep•li•cate
v.
1. To duplicate, copy, reproduce, or repeat.

2. To reproduce or make an exact copy or copies of genetic material, a cell, or an organism.

n.
A repetition of an experiment or a procedure.
..... Click the link for more information. a clustered production environment for development and testing environments?

Clustering in an Application Testing application testing - system testing Environment

Complete and accurate quality assurance testing is critical for meeting today's demands to deliver applications that work, not only in the initial release, but also throughout the life of the application. Finding and resolving application defects early can significantly improve application quality and reduce or eliminate the costs associated with resolving problems after an application is placed in production. Another important goal is to create a repeatable testing process that improves application quality, reduces time to market and minimizes the cost of development and testing.

Companies are striving to speed the deployment of reliable, high quality applications while staying within tight development budgets. Reducing development and testing costs without sacrificing quality requires a best practices strategy with the right tools for application testing. The fact that most applications today rely on relational database relational database

Database in which all data are represented in tabular form. The description of a particular entity is provided by the set of its attribute values, stored as one row or record of the table, called a tuple. technology further complicates the challenge for testing organizations. The application data model may contain dozens, hundreds, or even thousands of tables, and just as many relationships.

Deploying clustering in a testing environment can be beneficial when used appropriately. Managing your database, hardware and application clustering configurations effectively, as well as carefully choosing the right clustering technique for each phase of the testing process, are key to designing efficient, effective testing strategies for relational database applications.

Relational Data Testing Challenges

Designing a comprehensive strategy for clustered testing environments can be as challenging as designing and developing an application. The starting point Noun 1. starting point - earliest limiting point
terminus a quo

commencement, get-go, offset, outset, showtime, starting time, beginning, start, kickoff, first - the time at which something is supposed to begin; "they got an early start"; "she knew from the is the logical and physical clustering environment--including servers, applications and databases needed to support the application you are testing. Although testing tools are not used in the production environment, the optimal clustering configuration will enable you to determine price/performance tradeoffs for your testing strategy.

Typically, several new test databases must be created and/or refreshed re•fresh
v. re•freshed, re•fresh•ing, re•fresh•es

v.tr.
1. To revive with or as if with rest, food, or drink; give new vigor or spirit to.

2.
..... Click the link for more information. each time a new application is developed or an existing application is modified. Iterative it•er•a•tive
adj.
1. Characterized by or involving repetition, recurrence, reiteration, or repetitiousness.

2. Grammar Frequentative.

Noun 1. testing involves executing the application using the test database and verifying the results to ensure the application is working as designed (jargon) working as designed - (IBM) Conforming to a wrong or inappropriate specification; useful, but misdesigned. Frequently used as a sardonic comment on a program's utility or as a bogus reason for not accepting a criticism or suggestion. . Any problems discovered must be resolved and the test data must be refreshed before testing continues. This process is repeated throughout the various testing phases--unit, functional, integration, system, load and regression--until the application is migrated into production.

Clustering and Cloned Test Databases

Since it is ideal to use "realistic" test data, each test database is usually a clone clone, group of organisms, all of which are descended from a single individual through asexual reproduction, as in a pure cell culture of bacteria. Except for changes in the hereditary material that come about by mutation, all members of a clone are genetically of the production database, and special test cases may be added before testing begins. For example, in a clustered environment, a one-terabyte database might be cloned and deployed on a database cluster running on two servers. Load balancing can be used to enhance performance and maximize processing resources, depending on the number of test environments created.

Although clustered environments can support cloned databases, the cost and capacity issues make it impractical im•prac•ti•cal
adj.
1. Unwise to implement or maintain in practice: Refloating the sunken ship proved impractical because of the great expense.

2.
..... Click the link for more information. to clone an entire production database, unless it is absolutely necessary. Consider a typical example like testing an application with a one-terabyte database running on two servers. The same configuration is needed to support regression testing In software development, testing a program that has been modified in order to ensure that additional bugs have not been introduced. When a program is enhanced, testing is often done only on the new features. , adding two servers. If the QA functional testing (testing) functional testing - (Or "black-box testing", "closed-box testing") The application of test data derived from the specified functional requirements without regard to the final program structure. also needs to clone the database, add two more servers. Now, a total of six servers are required with four dedicated to testing. This configuration does not even include the copies of the production database needed in the development environment.

In addition, deploying cloned databases in a clustered test environment during the functional testing phase can actually increase the time required to perform the necessary testing. How can this be? In a functional testing phase, it is not necessary to use a full set of test data because the goal of that phase is to ensure that application functions work correctly. If a fully cloned one-terabyte database is used for testing instead of a smaller subset, then executing the test cases may take longer because there is a larger volume of data to process. There is also a quality issue because the production data may not contain the particular test cases required for effective functional testing, and developers may find it difficult to track and validate specific test cases.

What is important is to always assess the data requirements for a particular testing phase to determine whether cloning cloning: see clone.
________________________________________


To make a product that functions like another. See clone. See also cloning software. the database in an operational clustered environment is truly needed. If not, the next question to ask is, "How can you create smaller subsets of the database to perform testing efficiently and still have complete confidence that the applications are being tested with the realistic test data?"

Subsetting Relational Databases

Subsetting can be used to create much smaller, yet realistic, test databases. Subsetting tools-- for example, Princeton Softech's Relational Tools-- provide the ability to extract complete subsets of related data and keep that data referentially intact. These tools can navigate all relationships in the data model, whether they are defined in the database or the application. Key features include the capability to extract test data that may reside in multiple relational databases, handling data compatibility and translation issues and providing federated Connected and treated as one. See federated database and federated directories. data access.

Working with predefined realistic subsets of data that can be refreshed easily improves testing and overall application quality. Including the metadata in extract processing ensures that you can recreate test data quickly and accurately. The ability to save and reuse reuse - Using code developed for one application program in another application. Traditionally achieved using program libraries. Object-oriented programming offers reusability of code via its techniques of inheritance and genericity. processing specifications streamlines the testing process and ensures a consistent and manageable test environment.

Subsetting and Test Phases

Subsetting is appropriate for various phases of the application development life cycle and especially when there is no requirement to test with the entire application database. The level of subsetting should be commensurate com•men•su•rate
adj.
1. Of the same size, extent, or duration as another.

2. Corresponding in size or degree; proportionate: a salary commensurate with my performance.

3. with the amount of data needed for the specific testing phase. For example, during unit testing (testing) unit testing - The type of testing where a developer (usually the one who wrote the code) proves that a code module (the "unit") meets its requirements. , when developers verify the functionality of new features or application units, such as specific modules or subsystems, a very small subset of data is appropriate and actually expedites the testing process and reduces costs.

During functional testing, quality assurance teams verify the operation of the application functions, which requires more data than the initial unit testing phase. The subsetting facilities must be "tweaked See tweak. " to extract more data. During integration testing (testing) integration testing - A type of testing in which software and/or hardware components are combined and tested to confirm that they interact according to their requirements. Integration testing can continue progressively until the entire system has been integrated. , teams verify the integration points between units or functions to identify unexpected updates and anomalies and ensure that various functions now work together. Again, this phase often involves larger volumes of data than the previous phases, and the subsetting process once again can be applied with the objective of extracting a broader set of data.

System testing (testing) system testing - (Or "application testing") A type of testing to confirm that all code modules work as specified, and that the system as a whole performs adequately on the platform on which it will be deployed. , sometimes called end-to-end testing, is designed to verify new functionality at a higher level. Quality assurance teams run an application through its paces to make sure that every feature and all functionality performs without errors. Subsetting can also be used during this phase to create yet larger, realistic subsets for test databases, thereby reducing costs and saving time. Finally, load testing Load testing is the process of creating demand on a system or device and measuring its response.

In mechanical systems it refers to the testing of a system to certify it under the appropriate regulations (LOLER in the UK - Lifting Operations and Lifting Equipment benchmarks performance, response time and throughput functionality, while regression testing ensures that application problems are not introduced with newer versions of your application. Because these two final phases test the entire application, a fully cloned database is required in some cases to ensure a representation of the final operating environment In computing, an operating environment is the environment in which users run programs, whether in a command line interface, such as in MS-DOS or the Unix shell, or in a graphical user interface, such as in the Macintosh operating system. , especially for load testing.

Clustering and Subsetting Reduces Costs

Where appropriate, it is much faster and more cost-effective to test with subsets of related data that accurately reflect the production database, without adding overhead to the testing process. Let us revisit re•vis•it
tr.v. re•vis•it•ed, re•vis•it•ing, re•vis•its
To visit again.

n.
A second or repeated visit.
________________________________________

re our previous example of a one-terabyte database running on two servers to see how subsetting might be applied.

Load testing would require a clone, while regression testing would require 50 percent of the production database, so the requirement would be three servers; two for the clustered load testing environment and one for the regression environment. To support functional testing, the quality assurance team could use a subsetting tool to create a realistic subset of the production database that is only 100GB. This smaller data requirement eliminates the need for at least one server to support quality assurance testing. By using subsetting effectively, four servers are needed instead of six. What's more, quality assurance testing will run faster because the test database is only 100GB instead of one terabyte One trillion bytes. Also TB, Tbyte and T-byte. See tera and space/time.
________________________________________

(unit) terabyte - 2^40 = 1,099,511,627,776 bytes = 1024 gigabytes or roughly 10^12 bytes.

(Note the spelling - one 'r'). See prefix. . That is a net savings of two servers and reduced testing time.

Careful analysis of the testing requirements will help you deploy the right mix of test databases and subsetting in clustered and unclustered testing environments. You will effectively reduce the testing time and resources required, while delivering applications on time with high quality.

Testing applications in clustered environments can quickly multiply capacity requirements and delay development schedules. It is important to develop a best practices approach for each phase of the application testing process based on your company's needs.

Incorporating subsetting tools into your testing strategy delivers dramatic results including improved reliability, faster time-to-market, lower development costs and higher quality. In short, this best practices strategy helps you do more with less.

No comments: