Test automation and continuous integration using Staf/stax

Source: Internet
Author: User
Tags versions linux

About regression and incremental testing

Regression testing is often used to ensure that software changes do not introduce new problems or failures into the software. Alternatively, you can use it to ensure that you do not reintroduce errors that were previously fixed. If software has many dependencies on Third-party components and libraries, such as XML processing APIs or database extraction APIs such as JPA, the introduction of new problems is very common. In these cases, a small change in the database schema can result in unpredictable application behavior changes. If the software itself is complex, a small change to common code snippets can incur unpredictable side effects.

This increases the probability of introducing problems during maintenance or development when there is a need to provide continuous support for previous versions of a middleware software or for different platforms. A patch or feature that works in a database middleware version can have disastrous consequences in different versions. And when adding functionality, only APIs that are available for newer versions of the middleware may cause damage to clients that use previous versions. When supporting different platforms, perform a full test of the functionality that depends on the command-line interface or script. Otherwise, different behaviors may appear in different operating systems, such as Windows and Linux.

Regression testing is for the overall software and considers the interdependencies of the software with other components or applications. During development, focus on the specific modules or features that you are developing. You can test them incrementally when implementing modules or functionality, and sometimes you need to use stubs to reference other features that have not yet been implemented. If incremental tests are well structured and self-contained enough that you can repeat them in a given environment (such as the necessary middleware software, machines, or configurations), you can reuse them in future regression tests. This structure and its independence reduces rework and improves test quality because each piece of code is reviewed and tested in detail at development time.

When you test development functionality on a set of schemas, operating systems, and middleware versions, you can consider using automated incremental testing. Take an example of a command-line interface that is supported by Linux, AIX, Windows 7, and Windows XP. During development, it may take a lot of resources and time to perform tests on each operating system in these operating systems. In some cases, the time required to test the new feature exceeds the time it takes to develop it. This situation becomes even more cumbersome, given that many features are developed by different developers at the same time in a project. To complicate this pattern, the number of machines used for testing is usually limited, even with virtual machines. Testing typically requires a pre-configured environment, including database servers, application servers, and so on. The more machines dedicated to testing, the more time it takes to update and configure them. Because automated incremental testing is run by a tool in a set of environments or a test bed, you can save more resources by saving the time it takes to run tests manually in each environment.

Automated regression testing can use the same test bed as the incremental test. For example, after you set the regression test to run once a day, you do not need to consume resources that would normally be used for development and incremental testing. You can set up a lengthy regression test to run at a longer interval, such as running on a weekend.

Staf/stax Framework

The Software Test automation framework (STAF) is an open source framework that contains a set of built-in services specifically designed to build automated solutions. These services are reusable components that provide all the functionality in STAF. Each STAF service provides a specific set of features, such as:

Log records

File system operations

Security and process calls

Definition of a set of requests

Other services, such as the e-mail service, the FTP service, and the timer service, are not built in, but can be easily inserted into the framework.

The STAX service is a special service that is implemented in a Java environment or supports an execution engine that invokes other STAF services through XML. It also provides the following support:

Parallel execution

User-defined granularity of execution control

Support for nested test cases

Ability to control the length of execution

Ability to import modules at run time

Support for existing Python and Java modules and packages

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.