- Manager
- Test lead
- Test designer
- Tester
- Automation developer
- Test administrator
Value of a Testing Group/Team
- Planning
- Specifications
- Execution and
- Completion
Articles, comments, queries about the processes of Software Product Development, Software Testing Tutorial, Software Processes .
Posted by
Sunflower
at
7/25/2012 03:02:00 PM
0
comments
Labels: Application, Code, Developer, Documentation, Features, Functionality, Interaction, program, Quality, Roles, SDLC, Software System, Software testing, Testers, Testing, Tests, Users, Value
![]() | Subscribe by Email |
|
Posted by
Sunflower
at
6/15/2012 11:42:00 PM
0
comments
Labels: Application, Changes, Characteristics, Code, Criteria, Data, Document Restructuring, Documentation, Identify, Interface, Organization, Process, Re-engineering, Requirements, Software Systems
![]() | Subscribe by Email |
|
Posted by
Sunflower
at
6/15/2012 01:41:00 PM
0
comments
Labels: Application, Changes, Characteristics, Code, Criteria, Data, Documentation, First, Identify, Interface, Inventory Analysis, Organization, Process, Re-engineering, Requirements, Software Systems, Steps, Table
![]() | Subscribe by Email |
|
Posted by
Sunflower
at
5/09/2012 11:53:00 PM
0
comments
Labels: Automated, Code, Design, Development, Development Cycles, Documentation, Function, Guidelines, Importance, Link, Protection, Re-factoring, Repetition, Standards, Support, TDD, Test cases, Test Driven Development, Tests
![]() | Subscribe by Email |
|
One cannot expect the two cycles namely the STLC or software testing life cycle and the SDLC or software development life cycle to succeed without a test plan. Like a lamp is needed to guide one along a dark path, similarly a test plan guides the whole software testing process in to the right direction and keeps the whole development process on track.
Without a test plan you won’t be able to know that whether or not you are building the right software artefact and even if you are building the right one, are you building it in the right way? ; realizing later will prove to be a heavy burden for you and also it will cost you double the initial cost.
Posted by
Sunflower
at
4/13/2012 02:18:00 PM
0
comments
Labels: Application, Aspects, Design, Development, Documentation, Modules, Quality, Regression Testing, Requirements, Software Systems, Software testing, STLC, Strategy, Test Plan, Testers, Tests, Users
![]() | Subscribe by Email |
|
When a development team is working on a project, how do they ensure that the functionality is being coded correctly? Design specification documentation serves this purpose.
Posted by
Sunflower
at
4/11/2012 01:16:00 PM
0
comments
Labels: Application, Approach, Clients, Design specifications, Document, Documentation, Effort, Functional, Functions, Guidelines, Requirements, Software testing, Test Plan, User Interface
![]() | Subscribe by Email |
|
The successful completion of the software testing cycle depends entirely up on the quality of its test plan. Any test plan is composed of certain specifications which are not to be missed if you want your plan to be effective. Specifications are of two types namely:
1. Functional specifications and
2. Design specifications.
Posted by
Sunflower
at
4/10/2012 12:56:00 PM
0
comments
Labels: Application, Document, Documentation, Formal Technical reviews, Functional, Functional specifications, Functionality, Functions, Guidelines, Requirements, Software testing, Test Plan, User Interface
![]() | Subscribe by Email |
|
It is common tendency of us to chalk out a plan before we start doing any task! Why do we make plans? Simply because we don’t want our process or task to go astray. We want to keep a track of the processes and make sure that they are being guided in to the right direction and also most of the errors and faults are avoided.
Same philosophy holds hundred percent true for the software testing life cycle also. It also requires a test plan to prevent itself from going astray and slip out of track! To say it scientifically, we mean that a test plan is required for determining whether the software system or application meets the specifications and requirements listed for it or not?
Posted by
Sunflower
at
3/28/2012 11:21:00 AM
0
comments
Labels: Application, Approach, Defects, Design, Documentation, Errors, IEEE 829, Purpose, Quality, Requirements, Risks, Software Systems, Software testing, STLC, Strategy, Tasks, Test Plan, Tests, Users
![]() | Subscribe by Email |
|
The contributions in the field of electrical and electronics engineering by the IEEE or the institute of electrical and electronics engineers are not hidden from the world. The institute has its official head quarters situated in the city of New York.
It emerged as a non profit organization and since then is comprised of professionals from the fields of electrical and electronics engineering. The main aim of the association has always been to continually make excellent technological advancements in the field of electrical and electronics engineering.
Posted by
Sunflower
at
3/27/2012 08:58:00 PM
0
comments
Labels: Design, Documentation, Electrical, Electronics, IEEE, IEEE 829, Institute of Electrical and Electronics Engineers, Quality, Software testing, Specifications, Stages, Standards, Test Plan, Tests
![]() | Subscribe by Email |
|
Requirements analysis is of many types depending up on which development process or methodology is being followed. This article has been written about a type of requirements analysis known as “evolutionary requirements analysis”. But, before going on to the main discussion we will first brief up ourselves with the concepts of a general requirements analysis.
Posted by
Sunflower
at
3/27/2012 07:00:00 AM
0
comments
Labels: Analysis, Application, Conditions, Documentation, Elicitation, Evolutionary Requirements Analysis, Performance, Reliability, Requirement Analysis, Requirements, Software Systems, Tasks, Users
![]() | Subscribe by Email |
|
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.
Posted by
Sunflower
at
2/13/2012 09:15:00 PM
0
comments
Labels: Application, Architectural, Client, Document, Documentation, Format, Importance, Marketing, Requirements, Software documentation, software engineering, Technical, User, User Manuals
![]() | Subscribe by Email |
|
A programming bug as we all know is common or “one in all” term for a flaw, error or mistake in a software system or program. A bug is known for producing unexpected result always or results in the abnormal behavior of the software system or program.
CAUSES OF BUGS
- Root causes of the bugs are the faults or mistakes introduced in to the program’s source code or design and structure or its implementation.
- A program or a piece of program too much affected with bugs is commonly termed as a “buggy” program or code.
- They can be introduced unknowingly in the software system or program during the coding, specification, data entry, designing and documentation.
- Bugs can also arise due to complex interactions between the components of a complex computer program or system.
- This happens because the software programmers or developers have to combine a great length of code and therefore, they may not be able to track minor bugs.
- The discovered bugs are also documented and such documents or reports are called bug reports or trouble reports.
HOW BUGS INFECT A PROGRAM ACTUALLY?
- A single bug can trigger a number of faults or errors within the program which can affect the program in many ways.
- The degree of affecting depends on the nature of the bug.
- It can either affect the program very badly causing it to rash or hang or it may have only a subtle affect on the system.
- There are some bugs that are not detected in the entire software testing process.
- Some bug may cause a chain effect which can be described as one bug causing an error and that error causing some other errors and so on.
- Some bugs may even shut down the whole software system or application.
- Bugs can have serious impacts.
- Bugs can destroy a whole machine.
- Bugs are after all mistakes of human programmers.
TYPES OF BUGS
Bugs are of many types. There are certain types of common bugs that every programmer should be introduced with.
First we are listing some security vulnerabilities:
- Improper encoding
- SQL injection
- Improper validation
- Race conditions
- Memory leaks
- Cross site scripting
- Errors in transmission of sensitive data
- Information leak
- Controlling of critical data
- Improper authorization
- Security checks on the client side and
- Improper initialization
SOME COMMON BUGS ARE:
1. Memory leaks
- This bug is catastrophic in nature.
- It is most common in languages like C++ and C i.e., the languages which do not have automatic garbage collection feature.
- Here the rate of consumption of memory is higher as compared to rate of de- allocating memory which is zero.
- In such a situation the executing program comes to a halt because there is no availability of free memory.
2. Freeing the resource which has already been freed
- This bug is quite frequent in occurrence.
- Usually it happens that the resources are freed after allocation but here already freed resource is freed which causes an error.
3. De-referencing of NULL operator
- This bug is caused due to an improper or missing initialization.
- It an also be caused due to incorrect use of reference variables.
4. References
- Sometimes unexpected or unclear references are created during the execution which may lead to the problem of de- allocation.
5. Deadlocks
- These bugs though rare are catastrophic and are caused when two or more threads are mutually locked by each other or those threads get entangled.
6. Race conditions
- These are frequent and occur when the same resource or result is being tried to be accessed by two threads.
- The two threads are said to be racing.
Posted by
Sunflower
at
2/07/2012 12:41:00 PM
0
comments
Labels: Abnormal, Bugs, Causes, Code, Conditions, Data, Deadlock, Documentation, Errors, Faults, Flaws, Interaction, Memory, Mistake, program, Resources, Security, Software Systems, Software testing, Threads
![]() | Subscribe by Email |
|
What is the foremost thing that should be taken care of to carry out effective testing? Its test cases of course! Writing test cases without thinking is not going to help because any amount of efforts and time you waste on them, you are not going to get effective results. Writing test cases forms a major component of any software testing methodology.
SOME IMPORTANT FACTS
1. Any change in the requirements tends to affect the concerned test case as well. Since the test cases are based upon the requirements, any change in requirements is reflected in the test cases. If you make any changes to the requirements, make sure you have altered the related test case also accordingly.
2. After you finish writing your test cases, revise them twice so that any error that you didn’t notice can be found out.
3. It rarely happens that all the written test cases are executed. So keep the number of test cases limited i.e., as many as you can execute. If you have less number of test cases, you will be able to focus on them properly.
4. Some test cases demand other test cases as their prerequisites. If that is the case, then you should go through the list of test cases and decide a sequence for executing the test cases.
5. Some test cases are dependent on each other and so it becomes difficult which one to execute first. So try to keep your test cases as much independent as possible.
Now keeping above points in mind, we define some tips for writing effective test cases that if followed will certainly reap you the expected results:
1. Keep your test cases as simple as possible. i.e., keep them to the point and precise. You should be able to integrate your test cases with the test plan.
2. Document your test cases.
3. Review all your test cases at least twice.
4. Include input test data along with the test cases because if the tester is to choose test data by himself/ herself, he/ she may omit the most important test data making the whole testing go in vain.
5. While writing test cases always keep in mind that the end user is the one who will use the AUT.
6. Pay due attention while writing the test cases because this will affect the whole testing process.
7. For every condition or assertion in the program, write a different test case so that you don’t mix up.
8. Make sure that your each test case tests only one aspect of the program. Otherwise you will have problems like over lapping and over complicated tests. If one test case focuses upon one aspect, then the code will get good coverage and tracking any error will be easy.
9. Prepare documentation for every test case. Your documentation should have assertions and description of 4 stages (set up, execution, verification, and output) of the test case.
10. Select a basis on which you want to organize your test cases like functionality or class, so that it becomes easy for you to add new test cases later. The order of your test cases should be consistent.
11. The test cases should be able to execute with a good speed, should be independent as discussed above, should be small and precise so that they can be repeated without much hassle is needed to and should be transparent. By transparency I mean that the test case should clearly state its purpose.
12. Your test cases should be reusable.
Posted by
Sunflower
at
2/05/2012 02:21:00 PM
0
comments
Labels: Code, Defects, Description, Design, Documentation, Effort, End users, Errors, Requirements, Results, Reusable, Reviews, Software testing, Test cases, Test Execution, Test Sequence, Tests, Users
![]() | Subscribe by Email |
|
As we all know that documentation is some written text that comes along with any software system or application. Though being just a plain text its importance cannot be neglected.
Without it, we won’t be able to make the full use of the software system or application. It explains us its features and functionalities and how to use it effectively. Documentation has a very important role to play in the field of software testing:
1. It gives an overview of the design or architecture of the software system or application. It explains how the software is related to the environment and what basic principles have been used in constructing the software system or application.
2. It gives technical knowledge about the concerned software system or application. It provides the documentation of the code and other legal aspects of the software.
3. It contains the algorithm used in the software system and provides explicit knowledge about the user interface of the software system or application.
4. Documentation states the requirements of the software system and functionalities whether it be functional or non functional requirements. Other aspects like capabilities, attributes and characteristics of the software system or application are also mentioned in the documentation.
5. It contains tips on how to market the product.
6. Documentation also contains end users manuals and other supportive manuals meant for support staff and administrators.
For documentation to prove effective has to be written properly in a designed way.
Writing effective documentation is also a recognized skill in the software industry. Here we are going to discuss some tips which if followed can help you improve the quality of your documentation.
1. You should be familiar with all the format types of the documents like PDF or HTML. You should be able to work with all the types. It may happen some times that when you transfer your write up to the documentation software, it may not show up exactly as you desired. So don’t waste your time by unnecessarily formatting your text. Choose your documentation software with great care.
2. Divide your documentation process into following stages:
(a) Information gathering: First gather all the information that you will need to include in your documentation.
(b) Prototyping of the documentation: In this stage you will create a list of just the topics that you have to include in the documentation in the order you desire. Your list may contain samples against each topic for your ease and convenience.
(c) Initial drafting: This stage involves writing up of all the content under the relevant topics that you have already listed. This will take up most of your time. After you are done with the writing, just review it once.
(d) Final drafting: At this stage you have to review your documentation once more so as to check whether any changes are required. The documentation is now ready.
3. It is always observed that the documentation is always processed at the end i.e., when the dead lines are nearing. This should not be done since the documentation does not get much time for effective reviewing and changes. So it becomes important that we consider the documentation from the initial stage of software development.
4. The preparation of the documentation becomes more simple and easy if your organization has an expert documentation writer. But what if you don’t have? A programmer can himself/ herself write the documentation since he/ she knows the program really well. But the documentation won’t be so effective if the programmer has not got good skills in writing.
Whatever the case maybe, always remember that the documentation does affect the user’s opinion about the program. So keep it simple, effective and impressive.
Posted by
Sunflower
at
2/04/2012 02:00:00 PM
0
comments
Labels: Algorithm, Application, Architecture, Design, Documentation, Effective, Features, Functionality, Manuals, Principles, Quality, Requirements, Simple Process, Software testing, User Interface, Users
![]() | Subscribe by Email |
|