Subscribe by Email


Tuesday, February 14, 2012

Does Quality Assurance remove the need for quality control?

Quality assurance and quality control are two of the most confused concepts. But let me state here that quality assurance and quality control are two different concepts.

"Software quality assurance is means of ensuring that proper processes and methods are being used in the development of software systems or application to ensure quality." There are many methods that are employed for quality assurance.

Now coming to the concept of quality control, it is a means used by the entities for the process of reviewing the quality of all the aspects of a software system or application under development.

FACTORS ON WHICH QUALITY CONTROL IS FOCUSED
Quality control is basically focused up on the following 3 factors:

1. Management elements like:
(a) record identification
(b) performance
(c) controls
(d) involved processes
(e) job management
(f) criteria for integration

2. Soft elements like:
(a) quality relationships among the team members
(b) confidence of the individual
(c) culture of the organization
(d) team spirit
(e) personnel integrity
(f) motivation

3. Competency elements like:
(a) qualifications of the workers
(b) skills
(c) experience
(d) knowledge

A typical quality control process involves the inspection of the software artifact before it is made available to the public. This process involves search for the bugs and errors as well.

WHAT ASPECTS DOES QUALITY ASSURANCE CHECK?

- System requirements
- Coding
- Code reviews
- Software design
- Source code control
- Process management
- Testing
- Configuration management
- Source code control
- Software release management

So we see that since there is a considerable difference between the two things, it means that quality assurance does not remove the need for quality control.

But, here another question arises :

“if quality assurance covers every aspect of the software development, then why do we need to look up the quality control?

- Quality control is needed even after quality assurance has been performed.
- In quality assurance, all the strategies, checklists, standards that are used in the software development cycle are defined whereas, in quality control all the processes checked by the quality assurance are implemented in order to ensure that the developed software system or application is of high quality.
- Quality control makes sure that the software product meets the expectations of the users.
- Quality control can be defined as a means to measure quality and quality assurance is a means to assure quality.
- The results obtained from quality control assessment can be utilized to make quality assurance processes better.
- Quality assurance and quality control together form a very powerful methodology to ensure that the software product is of very high quality and satisfies all the expectations of the targeted users.
- Quality control is a product oriented process whereas quality assurance is a process oriented process.
- The team of quality assurance ensures that the governing principles for software making are rightly implemented and the team of quality control is involved with the process of determining the efficacy levels of those principles and guidelines.

From the above points we can conclude that the two terms though sound same in meaning are not same in the least bit.

People often confuse between these two are ambiguous terms and have been different meanings. When we use both of these processes, quality is guaranteed. All the technologies and processes must be checked for their quality before starting working on the project by quality assurance and quality control processes.


Monday, February 13, 2012

Why is documentation so important for software testing?

IMPORTANCE OF DOCUMENTATION

- Software documentation like other kinds of documentation is just a piece of plane text.
- Though just being plain text, its importance in the field cannot be neglected.
- You must have observed that whenever you purchase some software or application it comes with a documentation which contains user’s manual also.
- It is obvious that you must be using this user’s manual to understand and use the software better.
- The manual might have always helped you in diagnosis of your system whenever it might have had a break down, crash or hang.
- Documentation is a great help as it helps us in operating the software system or application.
- Documentation helps different people in different ways.
- Documentation has a very important role to play in the field of software engineering.

TYPES OF DOCUMENTATION

1.Requirements Documentation
- This documentation states all the requirements of a software system or application be it functional requirements or non functional requirements.
- Apart from the requirements it also states the features, functionalities, capabilities, attributes and characteristics of a software system or application. - This type of documentation serves as a foundation for the other documentations.

2. Technical Documentation
- This documentation contains the written code of the program and algorithm implemented.
- It also provides knowledge about the user interface of the software system or application.
- It also gives information about the APIs.

3. Marketing Documentation
- This documentation gives tip and information for marketing the software product.

4. Architectural Documentation
- This documentation is all about the internal structure of the software system or application.
- It explains how a particular software system or application is related to the environment and on what principles the construction of the program is based.

5. End user Documentation or User’s Manual
- This document is popularly known as user’s manual.
- It contains all type of knowledge that a user might need to operate the software system or for trouble shooting.

SOME FACTS ABOUT DOCUMENTATION
- Documentation introduces the software system or application to the user.
- It contains details about the software.
- Documentation can be thought of as a verified and validated agreement between the product developer and the buyer i.e., client.
- Documentation is modular in nature.
- It serves as road map for the user.
- It is said that if something is not present in the writing, it actually never happened.
- Documentation serves as a proof.
- If you don’t make a write up about the software, the client or the users will think that you are just making up the facts and if the things are there, they might have been done by some body else.
- You need to document every aspect of your software so that if later any dispute arises, none will be able to testify your work and decisions.
- Information contained in the documentation is very crucial and important.
- The software engineering industry is so documentation intensive.

Let us say that you have a program that got some problem like it crashed or hanged and the person in charge of the software is not available. Neither you know the structure and design of the program nor do you have any idea of how to mend the fault in the program. So what you will do in such a case?

Here documentation comes to your rescue.
- You have all the necessary details and tips on how to fix a fault and also the design of the program.
- It is important that the proper documentation is made available to each and every personnel of the software development team.


What is meant by novice testers? How should they perform software testing?

WHO IS A NOVICE TESTER?

- A novice tester as we all know is a tester who is new in the field of software testing.
- He does not have any past experience and they have so many queries about the matters regarding the software testing field.
- They also have many doubts regarding the work that they have to do.
- Though being a novice tester, he/ she must be well versed with the basic principles of the field and disciplines to be followed.

Here I’m going to discuss some ways to help novice testers in improving their software testing skills. Follow the tips being mentioned and get great benefits:

1. HAVE FULL INFORMATION ABOUT THE APPLICATION

- Have full information about the application that you are going to test.
- You should understand what are its requirement functionalities and non requirement functionality.
- Performing software testing without the knowledge of the software program or application will lead you nowhere.
- Lack of understanding will not be able to decide that whether the output that you have obtained is correct or not.
- You will not be able to tell if the functionality under test is working properly or not.
- You will not be able to notice the absence of any functionality.
- Therefore, having a full detail of the software program or application under testing is necessary.

2. KNOWLEDGE ABOUT DOMAIN

- Like about software program or application, you should also have knowledge about your domain.
- Knowing about one’s domain solves many problems.
- Once you know about your domain, you will be able to suggest better solutions for the errors and bugs in the program.
- The more you keep your solutions in the limits of the domain, the more value your suggestions will get.
- Don’t just catch the bug; provide them counter measures also to curb them.
- Another problem that will be solved is of test cases.
- You will have better criteria to design your test cases up on.
- Your test cases will be capable of providing enough coverage to the code.

3. KEEP YOURSELF UP-TO-DATE WITH AVAILABLE TECHNOLOGIES

- Keep learning about the available technologies in the field as well as keep yourself updated with the new upcoming technologies.
- Come out with new practical ways for providing better solutions to the testing problems rather than just relying on the knowledge from the books.
- Learn with experience more than books.
- Design your own working procedures.
- It is not necessary to stick to the old pre designed procedures until and unless you don’t have an option.
- Keep rejuvenating your existing knowledge.

4. AVOID MAKING ASSUMPTIONS

- Don’t make assumptions. Assumptions don’t work for software testing.
- Never assume that the software program or application will be error free.
- This will be a mistake and will lead you to serious consequences.
- It is the duty of tester to look for bugs and errors.
- You cannot make sure that a program or application is error free and there is no need for testing.

5. GIVE YOUR BEST IN DISCOVERING ERRORS

- Testing an application over and over again still won’t make it 100 percent error free.
- Keep on discovering errors and bugs and give your best in correcting them.
- Have a priority list which will guide you about the testing sequence i.e., which functionality is to be tested first and so on.

6. DO NOT LIMIT YOUR THINKING

- Always think that you’re the end user and perform testing.
- Don’t limit your thinking to the designation of a tester but, think like a user also.
- This helps in many ways.
- You will be able to make out that what functionality IS important and need to be introduced in the software program or application that were missing previously.
- Think how this software application will be used by the user and what can be his expectations.
- All this will help you in making your software user friendly.


Sunday, February 12, 2012

What is ISTQB (International software testing qualifications board) certification?

ISTQB is an important certification in the field of software engineering and information technology. ISTQB stands for the International Software Testing Qualifications Board.

SOME FACTS ABOUT ISTQB
1. ISTQB and ISEB are 2 similar organizations.
2. ISTQB is an organization that grants certification for qualification in the field of software testing.
3. ISTQB was formed in the month of November in the year 2002.
4. Though formed in Edinburgh, now its office is headquartered in Belgium.
5. ISTQB certified tester is a program initiated by ISTQB.
6. This qualification scheme is of international scheme.
7. A hierarchy is maintained for the guidelines necessary for qualification examination and accreditation.
8. A certain syllabus is also prescribed for achieving the qualification.
9. ISTQB till now has issued almost over 200, 000 certifications making it the world’s top software testing qualifications issuing organization.
10.There are around 47 members of the ISTQB from over 71 countries.

LEVELS OF ISTQB
Similar to ISEB, ISTQB too offers 3 levels of qualification:

1.1st level: ISTQB foundation level
2. 2nd level: ISTQB advanced level
This further has 3 levels namely test analyst, test manager and technical analyst.
3. 3rd level: ISTQB expert level
This level deals with the continuous improvement of the test processes, automation of test processes, management of test processes and security testing.

COURSE TRAINING
1. The training of the course is followed up by an examination which covers the whole syllabus.
2. On completing the exam successfully the candidate is accredited with a certification of "ISTQB certified tester".
3. It is on the wish of the candidate if he wants to follow the stipulated course for examination or not.
4. It aims at developing a qualification that is accepted world wide.


Saturday, February 11, 2012

What is ISEB (Information systems examinations board) certification?

ISEB is an important certification in the field of software engineering and information technology. ISEB is the abbreviated form for the Information Systems Examinations Board.

SOME FACTS ABOUT ISEB
1. ISEB is a well known part of BCS which is the chartered institute famous for its information technology.
2. ISEB is known for conducting examinations in the concerned fields.
3. It is an examination conducting body in the field of information technology. 4. It was formed as collaboration between 2 organizations namely BCS and NCC. 5
5. There was need for the development of a certificate in systems analysis and design.
6. It was required for the examination board of systems analysis.
7. Therefore, as a result NCC and BCS came together to form a new board for meeting their requirement and it was named as the systems analysis examinations board.
8. The year of 1989 saw the creation of a new qualification for the field of project management.
9. Simultaneously, the process of expansion of the qualifications portfolio began in 1989.
10. Because of this, the system analysis examinations board was renamed to information systems examination board and hence the ISEB was born.

WHAT DOES THE QUALIFICATION FOR ISEB COVER
The qualifications stated for ISEB cover the following subjects from the field of information technology:
1. Software testing
2. Business analysis
3. Information services management
4. ITIL
5. Sustainable information technology
6. Project support
7. Project management
8. Information technology assets
9. Information technology infrastructure
10.Systems development
11.Green information technology
12.Information technology governance
13.Information technology information
14.Information technology security

LEVELS OF ISEB
There are 3 levels at which ISEB qualification is granted and they are:
1. 1st level: ISEB foundation level
This qualification is based on a certain discipline which is introduced at this level.
2. 2nd level: ISEB practitioner level
This qualification involves application of practical methods within a specified discipline only.
3. 3rd level: ISEB higher level
This level covers a specific discipline in great depth and is meant only for managers and specialists.

The ISEB is recognized all over the world in around 50 countries. Some of these countries are South Africa, Brazil, Japan, Australia and United States of America. The ISEB qualification is granted on the basis of the training as well as both computers based and written examinations.


Friday, February 10, 2012

What are installation/ uninstallation testing? What are some tips for installation testing?

Installation testing comes under the category of quality assurance aspects. It is concerned with the procedure that the user has to follow in order to install that software. Installation may be of any type like partial, full or it might be an installation of an upgrade of the software.

SOME IMPORTANT FACTS ABOUT INSTALLATION TESTING
- Installation testing is carried out by the lead tester and configuration manager.
- Before carrying out installation testing, implementation testing is performed outside the testing environment.
- This is done to minimize the corruption of the software code.
- Usually for installing software, its package software or set up is run.
- The set up is actually a multi-configuration program.
- It plays a great role in the installation of software on a computer system.
- Every phase in the installation of software must be tested before it released to the public.
- In rare cases of distributed systems, it is some times required to change the database schemas and installation process of that particular software.
- For such situations a back up deployment plan is also prepared which can be implemented in case the release is unsuccessful.
- The deployment plan should also be tested as if it is a live plan.
- This kind of procedure for installation testing is called a “dry run”.
Installation testing and implementation testing are very closely related and in fact sometimes they are considered to be the same.
- The installation should be done as such that the installed program is able to cooperate with the other programs that are already installed on the computer system.
- If the program is installed successfully, it’s ok.
But, what if it doesn’t?
- It can cause considerable damage to the system.
- The user may need to format the whole system and reinstall everything again.
- The installation process should be tested both manually and automatically with all the possible configurations.
- Installation testing is a very time consuming process.
- Tests cases require much time to execute.

Un-installation testing also follows the same procedure.

TIPS FOR EFFECTIVE INSTALLATION AND UN-INSTALLATION TESTING

1. List all the configurations that you want to test.

2. Format one of the drives on the system and use it as the base for your testing.

3. Every time you have to execute a configuration, you can create a ghost of the basic images that will be required. This will save your time. This is the only automation that can be done in an installation or uninstallation testing.

4. You can attempt to install software on one operating system many times. Every time you uninstall the software, you can prepare the base for installation of the next configuration.

5. Always keep the flow chart of the whole testing process handy with you. With a flow chart you can how much you have progressed in the testing.

6. If previously you have installed the compact version of the software, then for the next test case install the full version.

7. If you are going according to the flow chart for installation process, then follow the same flow chart bottom up for the un-installation testing.

8. You can even use the flow chart to design automated test cases.

9. Check the amount of space that the software requires. Make sure that only that much is utilized and not more than that or less than that.

10. Always carry out installation and un-installation testing in a distributed testing environment. This helps you in managing many test cases simultaneously. You no need to manage different systems.

11. Try crashing the installation and un-installation process in between.


Automated Test Data Generation Using an Iterative Relaxation Method ?

Software development is not complete without software testing. It constitutes an inseparable part of software development process. Almost 50 percent of the total funds for development of a software are spend on software testing and this process consumes most of the time of the whole development process.

AUTOMATED TEST DATA GENERATION
Generation of test data for the given test and according to the testing criteria proves to be quite a difficult problem.
- The automated test data generation can relieve much stress of the software testers.
- Generation of test data that is used to make a program follow a given path is the most prominent and an important problem that arises while carrying out the path oriented testing.
- The obtained input is refined by various iterations and another input is obtained.
- The whole process predicates on this obtained input.
- The statements of the program relevant to the evaluation of each branch are executed in each iteration.
- Up on each iteration, a set of linear constraints is obtained which are then solved to obtain the increment values for the input data.
- The obtained increment values are added to the current input value to obtain the input data that is to be used for the next iteration.

RELAXATION METHODS
- The relaxation method provides knowledge about the amount by which the value of each input variable should be modified for the branches on the path in order to evaluate the desired result.

ITERATIVE RELAXATION METHODS
- These can be defined as techniques for solving system of equations.
- Relaxation methods are also iterative methods defined for numerical problems of mathematics.
- They are extensively used for solving system of equations which include the following types:
(A) Linear equations
Relaxation methods are used for solving the linear equations. Problems like that of linear least squares are usually addressed under this category.

(B) System of linear inequalities
Iterative or relaxation methods prove very effective in solving the system of linear inequalities which represent the problems similar to those that arise during linear programming.

(C) Non linear system of equations
These days, iterative methods or relaxation methods have been developed and prove a great help in solving system of equations which are non linear.

- Iterative relaxation methods have proven to be very effective and important methodology in providing solutions for linear system of equations.

- They prove to be effective system of equations that are used to solve partial differential equations based on the model of ellipse.

- These systems of equations are basically used to describe problems related to boundary conditions and values in which the value of the function in the solution is indicated or specified on the boundary of a specified domain.

- If the branch conditions on a path are linear in nature, the iterative relaxation technique either obtains a solution for such a path in just one iteration or it declares that the path is in-feasible.

- We can say that the existing approaches require an unacceptably large number of iterations for longer paths since they use only one branch predicate as well as input variable at a time.

- These methods also use back tracking.

- If the branch conditions on a path are non linear in nature, then it takes more than one iteration to get the desired input data.

- But, the set of constraints that has to be solved is linear in nature and can be solved using the method of gauss elimination.

These advantages make the technique of automated test data generation practical as well as suitable for automated testing.


Facebook activity