Re-correct the mistakes of QA report for live web system
There are few mistakes that I have done in the QA report which is completed yesterday. Basically those mistakes are very few grammar mistakes in my report. I have to re correct them, because the QA report is created for the purpose of giving to the officers of our company.
Some of failed constraints in the system which are identified yesterday are also re-corrected today by developers of the system, so I have to update my QA report for removing those failed ones to pass.
learn about QA methodologies further
There are many different testing
technologies, some are old, some are new, some are revisiting earlier
methodologies and giving them new names. There are different types of
testing for different stages in development. Some are integral to the
development process, others done throughout the development process are
various stages and some tests after development and beyond. With that
said a few methodologies off the top of my head and paraphrased in my
own interpretations meaning others are free to clarify or correctme if I
am perceived to be in error in any aspect or detail:
- Bench Testing: This is when a developer tests the code on their own machine
- Unit Testing: testing the smallest possible unit
- White box testing: testing code logic
- Black box testing: Replacing the user behind the keyboard with automated testing
- Regression testing:
Testing to make sure new code does not break existing functionality,
often done with automated testing but can be done manually as well.
- Test Driven development (TDD): An
Agile methodology that brings testing in at the very beginning of the
development cycle with a testing harness ensuring the program is tested
often. Issues and dfects should be found early in theory meaning better
results at release.
- Functional testing: As the name implies, does the program do the intended function.
- Boundary testing: Testing
to check boundary conditions such as what happens if I try to put more
characters in a field than the field supports? What happens if i use
special characters in a field that does not support special characters?
etc.
- Smoke test: A
preliminary test usually done by development prior to sending to QA,
similar to bench testing but usually on another machine other than the
developers. This is a good candidate for automation and goes with
regression testing.
- Load testing:
This is to test scalability and is usually done with an automated tool.
Most load testing tools test web only though some also test client
server.
- Alpha Testing:
A common testing phase in software development here the software is
feature complete but not necessarily functionally complete, usually
proceeds Beta testing. Alpha testing is often only an internal testing
by the Development team and QA team.
- Beta Testing:
Late stage prelease testing where software is usually testing by a
wider audience including customers prior to the official release of the
product version. A Golden Master or Release Candidate is often the last
version of the Beta prior to release.
This
is just a small sampling of some common testing methodologies and
terms. There are various institutions, organizations and commercial
companies that purport to have and support their own methods such as
CMMI, Six Sigma, Lean Software Development, Rational Unified Process,
etc. depending on the needs of the company different methods and
methodologies may apply. One thing all methodologies should have when
implemented is the ability to handle change as change is the only thing
you can be certain will happen no matter what you are testing.
Learn about white box testing
White Box Testing is the testing of a software solution's internal
coding and infrastructure.It focuses primarily on strengthening
security, the flow of inputs and outputs through the application, and
improving design and usability.White box testing is also known as
clear, open, structural, and glass box testing.
It is one of two parts of the
"box testing" approach of
software testing. Its counter-part, black box testing, involves testing
from an external or end-user type perspective. On the other hand,
White box testing is based on the inner workings of an application and
revolves around internal testing. The term "white box" was used because
of the see-through box concept. The clear box or white box name
symbolizes the ability to see through the software's outer shell (or
"box") into its inner workings. Likewise, the "black box" in "black box
testing" symbolizes not being able to see the inner workings of the
software so that only the end-user experience can be tested.
White box testing involves the testing of the software code for the following:
- Internal security holes
- Broken or poorly structured paths in the coding processes
- The flow of specific inputs through the code
- Expected output
- The functionality of conditional loops
- Testing of each statement, object and function on an individual basis
The testing can be done at system, integration and unit levels of
software development. One of the basic goals of white box testing is to
verify a working flow for an application. It involves testing a series
of predefined inputs against expected or desired outputs so that when a
specific input does not result in the expected output, you have
encountered a bug.
How do you perform White Box Testing?
To give you a simplified explanation of white box testing, we have divided it into
two basic steps. This is what testers do when testing an application using the white box testing technique:
STEP 1) UNDERSTAND THE SOURCE CODE
The first thing a tester will often do is learn and understand the
source code of the application. Since white box testing involves the
testing of the inner workings of an application, the tester must be very
knowledgeable in the programming languages used in the applications
they are testing. Also, the testing person must be highly aware of
secure coding practices. Security is often one of the primary objectives
of testing software. The tester should be able to find security issues
and prevent attacks from hackers and naive users who might inject
malicious code into the application either knowingly or unknowingly.
Step 2) CREATE TEST CASES AND EXECUTE
The second basic step to white box testing involves testing the
application's source code for proper flow and structure. One way is by
writing more code to test the application's source code. The tester will
develop little tests for each process or series of processes in the
application. This method requires that the tester must have intimate
knowledge of the code and is often done by the developer. Other methods
include manual testing, trial and error testing and the use of testing
tools as we will explain further on in this article.
White Box Testing Techniques
A major White box testing technique is
Code Coverage analysis.
Code Coverage analysis, eliminates gaps in a test case suite.It
identifies areas of a program that are not exercised by a set of test
cases.Once gaps are identified, you create test cases to verify untested
parts of code, thereby increase the quality of the software product
There are automated tools available to perform Code coverage analysis. Below are a few coverage analysis techniques
Statement Coverage This technique requires
every possible statement in the code to be tested at least once during the testing process.
Branch Coverage - This technique
checks every possible path
(if-else and other conditional loops) of a software application. Tools:
An example of a tool that handles branch coverage testing for C, C++
and
Java applications is TCAT-PATH
Apart from above, there are
numerous coverage types such as Condition Coverage, Multiple Condition Coverage, Path Coverage, Function Coverage etc.Each technique has its own merits and attempts to test (cover) all parts of software code.
Using
Statement and Branch coverage you generally attain 80-90% code coverage which is sufficient.
Types of White Box Testing
White box testing encompasses
several testing types used to evaluate the usability of an application,
block of code or specific software package. There are listed below --
Unit Testing : It
is often the first type of testing done on an application. Unit testing
is performed on each unit or block of code as it is developed.
Unit testing is essentially done by the programmer. As a software
developer, you develop a few lines of code, a single function or an
object and test it to make sure it works before continuing
Unit
testing helps identify majority of bugs, early in the software
development life cycle. Bugs identified in this stage are cheaper and
easy to fix.
Testing for Memory Leaks : Memory
leaks are leading causes of slower running applications. A QA
specialist who is experienced at detecting memory leaks is essential in
cases where you have a slow running software application.
There are many tools available to assist developers/testers with memory leak testing , example , Rational Purify
for windows application
Apart from above a few testing types are part of both black box and white box testing. They are listed as below -
White Box Penetration Testing:
In this testing, the tester/developer has full information of the
application's source code, detailed network information, IP addresses
involved and all server information the application runs on. The aim is
to attack the code from several angles to expose security threats
White Box Mutation Testing: Mutation testing is often used to discover the best coding techniques to use for expanding a software solution .