Subscribe by Email


Showing posts with label Operational. Show all posts
Showing posts with label Operational. Show all posts

Tuesday, February 7, 2012

What are different kinds of risks involved in software projects?

When we create a development cycle for a project, we develop everything like test plan, documentation etc but we often forget about the risk assessment involved with the project.

It is necessary to know what all kinds of risks are involved with the project. We all know that testing requires too much of time and is performed in the last stage of the software development cycle. Here the testing should be categorized ion the basis of priorities. And how you decide which aspect requires higher priority? Here comes the role of risk assessment.

Risks are uncertain and undesired activities and can cause a huge loss. First step towards risk assessment is the identification of the risks involved. There can be many kinds of risks involved with the project.

DIFFERENT KINDS OF RISKS INVOLVED

1.Operational Risk
- This is the risk involved with the operation of the software system or application.
- It occurs mainly due to false implementation of the system or application.
- It may also occur because of some undesired external factors or events.
- There are several other causes and main causes are listed below:

(a) Lack of communication among the team members.
(b) Lack of proper training regarding the concerned subject.
(c) Lack of sufficient resources required for the development of the project.
(d) Lack of proper planning for acquiring resources.
(e) Failure of the program developers in addressing the conflicts between the issues having different priorities.
(f) Failure of the team members in dividing responsibilities among themselves.

2. Schedule Risk
- Whenever project schedule falters, schedule risks are introduced in to the software system or application.
- Such kinds of risks may even lead it to a complete failure bringing down the economy of the company.
- A project failure can badly affect the reputation of a company.
- Some causes of schedule risks have been stated below:

(a) Lack of proper tracking of the resources required for the project.
(b) Sometimes the scope of the project may be extended due to certain reasons which might be unexpected. Such unexpected changes can alter the schedule.
(c) The time estimation for each stage of the project development cycle might be wrong.
(d) The program developers may fail to identify the functionalities that are complex in nature and also they may falter in deciding the time period for the development of these functionalities.

3. Technical Risks
- These types of risks affect the features and functionalities of a software system or application which in turn affect the performance of the software system.
- Some likely causes are:

(a) Difficulty in integrating the modules of the software.
(b) No better technology is available then the existing ones and the existing technologies are in their primitive stages.
(c) A continuous change in the requirements of the system can also cause technical risks.
(d) The structure or the design of the software system or application is very complex and therefore is difficult to be implemented.

4. Programmatic Risk
- The risks that fall outside the category of operational risks are termed as programmatic risks.
- These too are uncertain like operational risks and cannot be controlled by the program.
- Few causes are:

(a) The project may run out of the funds.
(b) The programmers or the product owner may decide to change the priority of the product and also the development strategy.
(c) A change in the government rule.
(d) Development of the market.

5. Budget Risk
- These kinds of risks arise due to budget related problems.
- Some causes are:

(a) The budget estimation might be wrong.
(b) The actual project budget might overrun the estimated budget.
(c) Expansion of the scope might also prove to be problem.


Wednesday, January 4, 2012

What are different aspects of stress testing?

Stress testing can be defined as a form of testing that is carried out to determine the stability and the stress handling capacity of a software system or module. Stress testing is all about testing the software system or application beyond the normal operational capacities. It is the testing of software system or application to its breaking or fatal point. This is done in order to observe the results.

Stress testing has a much broader meaning. What is basically understood by a stress test?
- It is referred to a test that mainly focuses upon the availability, error handling and robustness of a software system or application.
- In stress testing the software system or application is subjected heavy loads of tasks.
- It is not about considering the proper behavior under the normal operational conditions or user environment.

Typically the goal of stress testing is to test whether or not the software system or application crashes or fails in the case of catastrophic problems like unavailability of sufficient computing resources. These computational resources may include disk space or memory. It is also done to determine if the system crashes or fails under the situation of denial of service attacks and unusually high concurrency.

Stress testing, load testing, volume testing all seem like much similar kinds of testing.

A look at the following examples of stress testing will clear up the confusions regarding stress testing:


- Stress testing for web server:
A web server can be subjected to stress testing using bots, scripts and several denial of service tools to determine its performance and behavior during the peak data and tasks load.

- Stress testing can be studied in contrast with load testing.
Load testing is basically carried out to examine the entire testing environment and the huge database. It is also carried out to determine the response time of the software system or application whereas the stress testing exclusively focuses upon identifying the transactions and pushing them to a level at which a break occurs in the execution of the transaction software system.

Another point is that during the stress testing if the transactions are duly stressed, then the chance is that the database may not experience a huge data load. However if the transactions are not stressed, the data base may experience a heavy work load.

SOME IMPORTANT POINTS:
- Stress testing is another word for system stress testing.
- It can be defined as the loading of the concurrent users beyond and over the level that can be handled by the system.
- This leads to the breakage of the weakest link in the whole software system or application.
- While carrying out the stress testing the software engineers, developers or testers need to test the whole software system or application under the desired expected stress as well as under the accelerated stress.
- The goal here is to determine the working life of the software system.
- It is also aimed at determining the modes of failure for the software system or application.
- For the hardware counterpart of a complete system, the stress testing can be defined as the subjecting of the concerned hardware to the exaggerated levels of stress.
- This is basically done to determine the stability of the hardware system when used in a normal environment rather than a testing environment.
- Before modifying the CPU parameters during the processes of over clocking, over volting, under volting and under clocking, it is necessary to verify whether or not the new CPU parameters like frequency and core voltage are suitable for taking the heavy CPU loads.
- Stress testing for such parameters is usually carried out by executing a CPU intensive program for a prolonged significant period of time. It is observed if the system crashes or hangs.


Saturday, December 3, 2011

What are different characteristics of alpha testing?

For alpha testing, it won’t be wrong if we say that it is another name for acceptance testing. Alpha testing is very much similar to the acceptance testing. Alpha testing is performed in the front of the customer or the client for their satisfaction and acceptance.

The client or the customer needs to verify or check whether the software artifact has been developed according to their:
- Service level agreement or SLA as it is abbreviated.
- Requirements
- Specifications
- Defect rate efficiency or DRE as it is known in short form.

If during the alpha testing the client or the manufacturer missed something, and discovers it later, then the software system has to again undergo a second alpha testing before giving the software product another green signal. But, client or customer revision is required mostly in beta testing.

Alpha testing can be formally defined as an actual operation or simulation testing before the launch of the software system and it does not involves software developers.

It is the testing of software on the site of the software developer by the customer or the client after the completion and finishing of the software system or the application.

- Alpha testing can also be called a kind of user acceptance testing or UAT a sit is known in short form.
- Alpha testing is carried out at the site of the software development. It is done by the clients or the customers. When the project is the development phase, it is said to be under alpha testing.
- Alpha testing allows the software tester to make some minor changes or modifications during the testing or at the end of it.
- It is carried out in the front of the developers, so that they can now what is the error or the bug and what it is and how it can be fixed efficiently.

- Alpha testing can be thought of as a stage of software prototype at which it may be discovered that the software system does not have all the required functionalities and specifications. But, one thing is definitely sure that the software system will have all the core functionalities and operational abilities and it will efficiently accept the input data values and generate the proper output as expected.
- Alpha testing is carried out on any system other than the system on which the software system was developed in the office of the developer.
- Client or the customer carries out the alpha testing under the leadership of the software developer.
- These days the alpha testing is being done by both the end users and the software developers.
- Alpha testing is the complete testing as it contains most of the functionality and specifications.
- Sometimes a group of clients or users are selected to perform alpha testing for the software system.
- Mostly the alpha testing is performed in-house or sometimes is performed by an external testing firm which in close terms or cooperation with the concerned software development corporation or the company.
- Sometimes it may also happen that the software developers may test the software system in front of the end users present within the development environment.
- This kind of testing is popularly known as off site testing. The end user side or the testing side is also called the development end.

In alpha testing it is necessary to determine whether the the software system is delivering the service as it was expected by the client or the customer. The environment in which the alpha testing is performed is called the client environment.


Thursday, March 31, 2011

What kind of people are involved in development process?

People play an important role in the development process. One should understand the people involved in the software development process, particularly, their interest regarding the system and the software that needs to be developed.

End-users are the people who will be using the end-product. Some end users are directly involved and some are indirectly involved. Those who are directly involved are:

- Operational Job: They perform the operational functions of the system. They are concerned with the human interface component of the system like what keyboard, display screen you are using? They have the local view of the system. They tend to think of the system in physical terms.

- Supervisor Job: They perform supervisory actions on daily operations of the system. They are most likely to be concerned with the operational efficiency of the functions that needs to be performed such as more output in less time. They also tend to have same local and physical view of the system similar with the operational users. they are the users who have more contact with the software engineers.

- Executive Job: They generally provide the initiative and serve as the funding authority of the system development project. They are less likely to be concerned with the day to day activities. They are more concerned with strategic issues and long term profit and loss. They are more interested in global view of the system. They are generally able to work with abstract models of the system rather than the physical terms.


Tuesday, March 8, 2011

Software Architecture Design - why is it important?

The architecture is not the operational software, rather it is a representation that enables a software engineer to analyze the effectiveness of the design in meeting its stated requirements, consider architectural alternatives at a stage when making design changes is still relatively easy and reduce the risk associated with the construction of the software.

- Software architecture enables and shows communication between all parties interested in the development of a computer based system.
- Early design decisions that has a profound impact on software engineering work is highlighted through architecture.
- Architecture constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together.

The architectural design model and the architectural patterns contained within it are transferable. Architectural styles and patterns can be applied to the design of other systems and represent a set of abstractions that enable software engineers to describe architecture in predictable ways.

Software architecture considers two levels of design pyramid - data design and architectural design. The software architecture of a program or computing system is the structure or structures of the system, which compose software components, the externally visible properties of those components and the relationships among them.


Tuesday, August 31, 2010

Features of Software Reliability Testing and what are reliability techniques.

Computer systems are an important part of our society. Reliability refers to the consistency of a measure. A test is considered reliable if we get the same result repeatedly. Software Reliability is the probability of failure-free software operation for a specified period of time in a specified environment. Software Reliability is also an important factor affecting system reliability.
A completely different approach is “reliability testing”, where the software is subjected to the same statistical distribution of inputs that is expected in operation.
Reliability testing will tend to uncover earlier those failures that are most likely in actual operation, thus directing efforts at fixing the most important faults.
The fault-finding effectiveness of reliability testing to deliver on its promise of better use of resources, it is necessary for the testing profile to be truly representative of operational use.
Reliability testing is attractive because it offers a basis for reliability assessment.
Reliability testing may be performed at several levels. Complex systems may be tested at component, circuit board, unit, assembly, subsystem and system levels.
A key aspect of reliability testing is to define "failure".

Software Reliability Techniques
- Trending reliability tracks the failure data produced by the software system to develop a reliability operational profile of the system over a specified time.
- Predictive reliability assigns probabilities to the operational profile of a software system.


Facebook activity