Subscribe by Email


Showing posts with label Failures. Show all posts
Showing posts with label Failures. Show all posts

Thursday, January 19, 2012

What are merits and demerits of sequential test approach?

Each and every development process in this world follows a sequential approach for its development. Similarly software development is carried out with a sequential approach.
A software development plan is called system development methodology or software development methodology.

- It can be defined as a frame work that is used to plan, structure and control the whole process of development of information software or system.

- The sequential approach is followed in every aspect of software engineering whether it be development or testing to keep the development systematic and on track.

Sequential approach to testing has got both merits and demerits.
As sequential approach to testing is followed in which testing is seen as flowing steadily downwards through the phases or levels of different and various kinds of testing like performance testing, unit testing, integration testing, alpha testing, beta testing etc. the sequential approach to testing is based on certain principles which have been stated below:

- Testing plan is divided in to sequential phases. Some splash back and over lapping is accepted between any two phases of testing to a certain extent.

- More emphasis is on testing, deadlines or target dates, time schedules, implementation and budget of an entire software or system at one time.

- A very control is kept over the testing of a software system or application via extensive formal reviews and documentation, approval by the client or the customer and users.

- Control is also maintained over information technology management which is done mostly at the end of most of the phases before the beginning of a phase of testing.

Though, Sequential approach is a traditional approach to development in software engineering, it has been badly blamed for several large scale software projects over time, over budget and some times for failures in timed delivery.

- This basically happens due to big design up front approach.

- At other times this approach has been superseded by more versatile and flexible methodologies developed especially for development of software system or applications.

- This sequential testing approach is frequently used in software processes of software development.

The whole software development progress is seen flowing steadily downwards through the following phases:
- Phase of requirements specifications
- Phase of conception
- Phase of initiation
- Phase of analysis
- Phase of designing
- Phase of construction
- Phase of coding
- Phase of integration
- Phase of testing
- Phase of debugging
- Phase of validation
- Phase of production
- Phase of implementation
- Phase of installation and
- Phase of maintenance

This sequential approach basically originated in construction and manufacturing industries. This hardware oriented model or sequential approach to development was simply adopted for the development of software systems or applications also.

- While following a sequential approach it should be made sure that before moving on to the next phase, the preceding phase is perfectly completed.

- However some cases may include some slight variations.

- It’s been a observed fact that time spent in early phases of the software development process has great benefits.

- A bug or an error found in early levels of testing cost less as compared to those found in later stages of development.

- It also requires less efforts and time to repair or fix.

- If a program design or structure after development turns out to be impossible to implement than it will be a complete waste of efforts and time.

- It is easier to fix the errors and bugs in the early stages than to realize later that all the work done is of no use.

Thus following a sequential approach makes sure each and every step is 100 percent perfect and the testing process can be carried on further.


Wednesday, November 30, 2011

What are different objectives of software testing?

None of the processes in the world are carried out without a purpose. Every kind of software testing has got some objectives. This article discusses such objectives only.
Software testing has got several objectives. Objectives are decided on the basis of the expectations of the software developers.

- Software testing is expected to distinguish between the validations of the software system and defects present in the software system.
- It is necessary to describe the principles on which the software works and processes the data.
- It is also important for us to know the principles of different kinds of testing.
- Before creating the tests cases for testing one should decide for a proper strategy to follow so as to achieve the desired objectives.
- The tester should understand the characteristics and behavior of the tools that are being used for the test automation.
- Before testing any software system, the tester should know the problems that can cause the system to fail. Failures should be known otherwise it will be difficult to prevent the potential harm.
- When the software developer pens down the objectives of the testing, he should keep in mind the requirements of the customers.
- Apart from the requirements it is also necessary to keep knowledge about the non requirements of the users.

Both these requirements and non requirements form a major an important part of the objectives of testing. In fact, we can say that 95 % of the objectives of the testing are based on the requirements and non requirements of the user.

There is one more kind of requirements called the missing requirements.
- Missing requirements are the requirements that are needed but they are absent form both the customer’s requirements list and non requirements list.
- Only the software developer or the tester can figure out the missing requirements.
- These missing requirements also form a small part of the objectives of the testing.
- There are some requirements needed for the software system but they are almost impossible to implement.

Below mentioned are the objectives of software testing clearly and in detail:
- To check whether the system is working as required or not.
- To prove that the software system is free of any errors.
- To certify that the particular software system is correct to the best knowledge of the programmer and the tester.
- To certify that the software can be used without any fear of losing data or damage.

For achieving the objectives, testing can be done in following two ways:

Negative testing
- This testing tests for the abnormal or negative operations in the software system.
- This is carried out by using illegal or invalid data.
- In negative testing, the tester intentionally tries to make the things go wrong and checks what happens then.
- Based on the observation, improvement is made further. It checks if the program crashes or not, if the program does any unexpected thing?, whether the software system successfully achieves the target or not?

Positive testing
- In this kind of testing, the software system is operated normally with correct data input values.
- Proper test cases are used.
- This testing methodology includes testing of system software at the boundaries of the program.
- This is done to determine the correctness of the program. Actual result and the expected result is compared and it is determined whether or not the program is behaving normally?,results coincide with the expected results?, software system is still functioning properly or not?

Not to much surprise, the negative testing has got a positive side. It checks out all the flaws, errors and the discrepancies before they show up in the front of the user. After all, a testing is regarded good only if it fails the software system.


Facebook activity