segunda-feira, 15 de setembro de 2008

Types of Software Testing

Software testing can be seen as a mean of ensuring software quality. There are many ways to test a system. There are low-level and high-level tests, which we can classify in white-box testing and black-box testing, respectively.

White-box testing is executed directly on the code and they are often meant for the system programmer, a example of this type of test is the unit tests. However, black-box testing is executed considering a functional manner, where the tester doesn't have direct contact with the system code. The system, in this case, is considered a input-output box. Often, this kind of tests is performed for a specific testing team: they use the specification to make the test case guide.

The more common kind of Black-box tests are functional and acceptance tests, which is similar to functional testing, but defined by the client. There's also gray-box tests, it’s like white-box and black-box at the same time. As examples of gray-box tests, we have regression and integration tests.

References:

WILLIAMS, M., SUCCI, G. e MARCHESI, L. Traditional and Agile Software Engineering. Ch 8 - Black Box Testing. Ed. Addison-Wesley, 2003

sexta-feira, 12 de setembro de 2008

Introduction: Software Testing

There’s a great interest for Software Testing, because error correction and software maintenance contributes to the greater part of the software development. Thus, the demand for software quality has motivated the improvement of techniques for software development, making the software reach the adequate quality patterns. Many researchers have inspected for different testing criteria, searching for a testing strategy with low cost of application, but, at the same time, with high capability to discover defects.

Tests can be automated or manual, moreover they can be grouped in many types: black-box tests, white-box tests, unit tests, acceptance tests, integrity tests, functional tests, inteface tests e structural tests.

For manual tests, there are many techniques and patterns that must be considered to guarantee quality in tests. For automated tests, there are many tools that support them at the software testing automation.