Software Testing Social Network

Free Software Testing Tutorial and Quality Assurance Portal

Home Featured Articles Software Testing Introduction Software Testing for Dummies

Software Testing for Dummies

This article gives you an introduction to software testing. Start here if you are new in this field.

What is Software Testing?

In simple English, Software Testing is the process of executing a program or system with the intent of finding errors. Although crucial to software quality and widely deployed by programmers and testers, software testing still remains an art, due to limited understanding of the principles of software.

Some Popular definition of Software Testing:

“Testing is the process of establishing confidence that a program or system does what it is supposed to.” by Hetzel 1973

“Testing is the process of executing a program or system with the intent of finding errors.” by Myers 1979

“Testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results.” by Hetzel 1983

Software Testing Myths:

We can test a program completely. In other words, we test a program exhaustively.

- We can find all program errors as long as test engineers do a good job.

- We can test a program by trying all possible inputs and states of a program.

- A good test suite must include a great number of test cases.

- Good test cases always are complicated ones.

- Software test automation can replace test engineers to perform good software testing.

- Software testing is simple and easy. Anyone can do it. No training is needed.

The objective of Software Testing is to verify that it satisfies its requirements and detect errors. Quality is not an absolute; it is value to some person. With that in mind, testing can never completely establish the correctness of arbitrary computer software; The scope of software testing often includes examination of code as well as execution of that code in various environments and conditions as well as examining the quality aspects of code: does it do what it is supposed to do and do what it needs to do.
Roles in Software Testing:

In the current culture of software development, a testing organization may be separate from the development team. There are various roles for testing team members. Information derived from software testing may be used to correct the process by which software is developed.

Software testing can be done by software testers. Until the 1950s the term "software tester" was used generally, but later it was also seen as a separate profession. Regarding the periods and the different goals in software testing[7] there have been established different roles: test lead/manager, test designer, tester, test automater/automation developer, and test administrator.

Test manager
- Manage and control a software test project

- Supervise test engineers

- Define and specify a test plan

Software Test Engineers and Testers
- Define test cases, write test specifications, run tests

- Independent Test Group

Development Engineers
- Only perform unit tests and integration tests

Quality Assurance Group and Engineers
- Perform system testing

- Define software testing standards and quality control process


Software Testing Life Cycle

- Test Planning
Define a software test plan by specifying:
- a test schedule for a test process and its activities, as well as assignments
- test requirements and items
- test strategy and supporting tools

- Test Design and Specification
- Conduct software design based well-defined test generation methods.
- Specify test cases to achieve a targeted test coverage.

- Test Set up:
- Testing Tools and Environment Set-up
- Test Suite Set-up

- Test Operation and Execution
- Run test cases manually or automatically

- Test Result Analysis and Reporting
Report software testing results and conduct test result analysis

- Problem Reporting
Report program errors using a systematic solution.

- Test Management and Measurement
Manage software testing activities, control testing schedule, measure testing complexity and cost

- Test Automation
- Define and develop software test tools
- Adopt and use software test tools
- Write software test scripts and facility

- Test Configuration Management
- Manage and maintain different versions of software test suites, test      environment and tools, and documents for various product versions.

Software Testing Limitations:

- Due to the testing time limit, it is impossible to achieve total confidence.

- We can never be sure the specifications are 100% correct.

- We can never be certain that a testing system (or tool) is correct.

- No testing tools can copy with every software program.

- Tester engineers never be sure that they completely understand a software product.

- We never have enough resources to perform software testing.

- We can never be certain that we achieve 100% adequate software testing.


Comments (0)Add Comment

Write comment
You must be logged in to post a comment. Please register if you do not have an account yet.

busy
  Attention! For US visitors deep discounted electronics products available! CLICK HERE to check it out.