September 3, 2015
Some misconceptions about agile testing
December 31, 2013
What & How to test a Database – The Basics
– When user ‘Save’ any new transaction, ‘Create’ operation is performed.R: Retrieve – When user ‘Search’ or ‘View’ any saved transaction, ‘Retrieve’ operation is performed.
D: Delete – when user ‘Remove’ any record from the system, ‘Delete’ operation is performed.
What we need to test in database testing:
Ensure data mapping
Ensure the ACID Properties of Transactions
‘Consistency’, ‘Isolation’ and
‘Durability’. Proper testing of these four properties must be done during the
DB testing activity. This area demands more rigorous, thorough and keen testing
when the database is distributed. Ensure Data Integrity
Ensure Accuracy of implemented Business Rules:
How to Test Database:
Create own Queries
Observe data table by table
Get query from developer/DB Specialist
December 10, 2012
Penetration Testing: Some basic things that we need to perform
Now a day we are very concern about the security of our systems.
So, we need to perform Penetration Testing for our systems. Penetration testing is also
known as Pen Test. Penetration testing is the process to identify security
vulnerabilities in an application by evaluating the system or network with
various malicious techniques. Purpose of this test is to secure important data
from outsiders like hackers who can have unauthorized access to system. Once
vulnerability is identified it is used to exploit system in order to gain
access to sensitive information.- Check if web application is able to identify spam attacks on contact forms used in the website.
- Proxy server – Check if network traffic is monitored by proxy appliances. Proxy server makes it difficult for hackers to get internal details of the network thus protecting the system from external attacks.
- Spam email filters – Verify if incoming and outgoing email traffic is filtered and unsolicited emails are blocked. Many email clients come with in-build spam filters which needs to be configured as per your needs. These configuration rules can be applied on email headers, subject or body.
- Firewall – Make sure entire network or computers are protected with Firewall. Firewall can be a software or hardware to block unauthorized access to system. Firewall can prevent sending data outside the network without your permission.
- Try to exploit all servers, desktop systems, printers and network devices.
- Verify that all usernames and passwords are encrypted and transferred over secured connection like https.
- Verify information stored in website cookies. It should not be in readable format.
- Verify previously found vulnerabilities to check if the fix is working.
- Verify if there is no open port in network.
- Verify all telephone devices.
- Verify WIFI network security.
- Verify all HTTP methods. PUT and Delete methods should not be enabled on web server.
- Password should be at least 8 characters long containing at least one number and one special character.
- Username should not be like “admin” or “administrator”.
- Application login page should be locked upon few unsuccessful login attempts.
- Error messages should be generic and should not mention specific error details like “Invalid username” or “Invalid password”.
- Verify if special characters, html tags and scripts are handled properly as an input value.
- Internal system details should not be revealed in any of the error or alert messages.
- Custom error messages should be displayed to end user in case of web page crash.
- Verify use of registry entries. Sensitive information should not be kept in registry.
- All files must be scanned before uploading to server.
- Sensitive data should not be passed in urls while communicating with different internal modules of the web application.
- There should not be any hard coded username or password in the system.
- Verify all input fields with long input string with and without spaces.
- Verify if reset password functionality is secure.
- Verify application for SQL Injection.
- Verify application for Cross Site Scripting.
- Important input validations should be done at server side instead of JavaScript checks at client side.
- Critical resources in the system should be available to authorized persons and services only.
- All access logs should be maintained with proper access permissions.
- Verify user session ends upon log off.
- Verify that directory browsing is disabled on server.
- Verify that all applications and database versions are up to date.
- Verify url manipulation to check if web application is not showing any unwanted information.
- Verify memory leak and buffer overflow.
- Verify if incoming network traffic is scanned to find Trojan attacks.
- Verify if system is safe from Brute Force Attacks – a trial and error method to find sensitive information like passwords.
- Verify if system or network is secured from DoS (denial-of-service) attacks. Hacker can target network or single computer with continuous requests due to which resources on target system gets overloaded resulting in denial of service for legit requests.
May 16, 2011
Reporting a bug is nothing but a skill
“Reporting a bug is nothing but a skill” – it is my belief. If your bug report is effective, chances are higher that it will get fixed faster. So fixing a bug depends on how effectively you report it. If test engineer is not reporting bug correctly, programmer will most likely reject this bug stating as irreproducible. This can hurt test engineers moral and sometime ego also. But I suggest, as a Software Test Engineer do not keep any type of ego like “I have reported bug correctly”, “I can reproduce it”, “Why he/she has rejected the bug?”, “It’s not my fault” etc.
What are the qualities of a good software bug report?
Anyone can write a bug report. But not everyone can write an effective bug report. You should be able to distinguish between average bug report and a good bug report. How to distinguish a good or bad bug report? It’s simple; I think you may apply following characteristics and techniques to report a bug.
- Having clearly specified bug number: Always assign a unique number to each bug report. This will help to identify the bug record. If you are using any automated bug-reporting tool then this unique number will be generated automatically each time you report the bug. Note the number and brief description of each bug you reported.
- Steps to Reproduce: If your bug is not reproducible it will never get fixed. You should clearly mention the steps to reproduce the bug. Do not assume or skip any reproducing step. Step by step described bug problem is easy to reproduce and fix.
- Be Specific: Do not write an essay about the problem. Be Specific and to the point. Try to summarize the problem in minimum words yet in effective way. Do not combine multiple problems even they seem to be similar. Write different reports for each problem.
How to Report a Bug?
I like to describe a simple but effective bug report format/template in below. It may vary on the bug report tool you are using. If you are writing bug report manually then some fields need to specifically mention like Bug number which should be assigned manually. Your bug report will contain:
· Reporter Description: Your name and email address.
· Product: In which product you found this bug.
· Version: The product version where you found this bug.
· Component: These are the major sub modules of the product. Sometimes it may be the form name.
· Platform: Mention the hardware platform where you found this bug. The various platforms like ‘PC’, ‘MAC’, ‘iPod’ etc.
· OS & Version: Mention the operating systems and the version where you found the bug. Operating systems like Windows, Linux, UNIX, Sun OS, Mac OS. Mention the different OS versions like Windows NT, Windows 7, Windows XP etc.
· Priority: When bug should be fixed? Priority is generally set from P1 to P5. Or “Low” to “Immediate’.
· Severity: Severity describes the impact of the bug. Types of Severity may:
o Blocker: No further testing work can be done.
o Critical: Application crash, Loss of data.
o Major: Major loss of function.
o Minor: minor loss of function.
o Trivial: Some UI enhancements.
· Status: When you are logging the bug in any bug tracking system then by default the bug status is ‘New’. Later on bug goes through various stages like Assigned, Resolved, Closed etc.
· Assign To: If you know which developer is responsible for that particular module in which bug occurred, then you can specify credential of that developer. Else keep it blank this will assign bug to module owner or manager will assign the bug to developer. Possibly add the manager email address in CC list.
· URL: Mention the page url on which bug occurred.
· Summary: A brief summary of the bug mostly in 60 or below words. Make sure your summary is reflecting what the problem is and where it is.
· Description: A detailed description of bug. Use following fields for description field:
o Reproduce steps: Clearly mention the steps to reproduce the bug.
o Expected result: How application should behave on above mentioned steps.
o Actual result: Write the actual result that will produce on running above steps.
You may also concern about the following to write a good bug report:
1) Report the problem immediately: If you find any bug while testing, do not wait to write detail bug report later. Instead write the bug report immediately. This will ensure a good and reproducible bug report. If you decide to write the bug report later on then chances are high to miss the important steps in your report.
2) Reproduce the bug three times before writing bug report: Your bug should be reproducible. Make sure your steps are robust enough to reproduce the bug without any ambiguity. If your bug is not reproducible every time you can still file a bug mentioning the periodic nature of the bug.
3) Test the same bug occurrence on other similar module: Sometimes developer use same code for different similar modules. So chances are high that bug in one module can occur in other similar modules as well. Even you can try to find more severe version of the bug you found.
4) Write a good bug summary: Bug summary will help developers to quickly analyze the bug nature. Poor quality report will unnecessarily increase the development and testing time. Communicate well through your bug report summary. Keep in mind that bug summary is used as a reference to search the bug in bug inventory.
5) Read bug report before hitting Submit button: Read all sentences, wording, steps used in bug report. See if any sentence is creating ambiguity that can lead to misinterpretation. Misleading words or sentences should be avoided in order to have a clear bug report. You musr check the spell.
6) Do not use Abusive language: It’s nice that you did a good work and found a bug but do not use this credit for criticizing developer or to attack any individual.
No doubt that your bug report should be a high quality document. Focus on writing good bug reports, spend some time on this task because this is main communication point between tester, developer and manager. Mangers should make aware to their team that writing a good bug report is primary responsibility of any tester. Your efforts towards writing good bug report will not only save company resources but also create a good relationship between you and developers.
So, for better productivity write a better bug report.

