Wednesday, August 13, 2008

Web Application Testing Tricks


Web application is tested mainly for browser compatibility and operating system compatibility, error handling, static pages, back end load testing, user interface testing, Security testing, browser compatibility testing, and performance testing.
Browser Acceptance Testing:
Object is to make sure, application looks good and works as expected in all browser which is in scope of testing. Cross browser testing is about how your website looks across different browser and versions. How different browser Internet setting options makes difference on page, image and other object to load. Tester has to know about browser related problems, plus - ins, setting, options, video resolution and etc.
There are many tools to test browser compatibility. Such as HTML Validator from w3 school http://validator.w3.org/, form Adobe https://browserlab.adobe.com/index.html#.
Found bugs are all compatibility bug.
Before cross browser testing requirement should be clear about which browsers in scope of testing and which are not.

Security Testing:
It is all about trying to break security walls of web application. Trying to make an unauthorized access to data, application and information.
User id and password cracking - Trying to access user account by cracking log in and password, testing 'forgot your password' and its emails flow, trying to ckrak security answer. Multiple log in by same user from different computer and browser.
Session related : Copy session info id and try from another computer. copy url n paste in another browser, computer. Checking automated session expire is functionaly is there or not. If it is, it is as per configured in server.
Cookie related: Cookie should be deleted after session expired or browser closed. Persistent Cookies expires in configured times. C0rrupting, deleting cookie, and with different browser option.
Back and forward functionality (back button should be disable in may cases especially after some consent like terms and condition or e-sign)
Terms and conditions check
e-sign and validation numbers
Navigation hole do not exists: Such as there is no link to go certain page and edit user input. Users are not able to access sensitive information.
Privacy policy
encripted data passing :
Encryption encodes plain text into non-readable form providing privacy. Checking log files are sensitive data free. Web browsers will encrypt text automatically when connected to a secure server, evidenced by an address beginning with https.
User Authentication : based on user. like active directory.

SCRUM Process and role of a Tester

What is Scrum?
In software development world Scrum is one agile approach featuring an iterative process for managing a software development projects. Scrum is an iterative, team-based process especially suitable process to adopt for a rapidly changing requirement, or not clear requirement.
Agile Scrum has a structured way of development cycle and specific role of team member. A product development time is divided into a cycle called Sprint. A sprint is a period of time usually 2-4 weeks in length.
Daily stand up meeting: It allows team member to request more work, ask for help, and report completion of work. Basically three things are important - what you did yesterday, what you are going to do today and any question, for team. Or saying scrum terminologies, Tasks accomplished yesterday, task for today, and issues, ideas, helps, anything he may need or can offer to team.
What is Product Backlog Item (PBI)?
Product backlog is simply functional or technical requirement of a system or application created by product owner. In scrum process it is a unit of work that can be divided into multiple tasks called Sprint Backlog Item (SBI). Product Backlog Items may or may not contains detail information (usually not). Team member can add more detail in SBI. And product owner can add more detail later on too because PBI is a dynamic entity (usually add detail information for a early estimated effort). Usually, Sprint starts PBI includes very high level and as sprint progress, product owner add detail in existing one and new one targeting for coming sprint.
During Sprint planning, a meeting "Product Backlog Walkthrough" the SME and Product Owner will their vision of the system using the Product Backlog Items. The Product Owner presents the highest priority PBI to team. They collaborate about how much can be turned into an increment of potentially shippable product functionality during the next Sprint.
Sprint Backlog Item (SBI):
SBI simply is a task to be complete in a sprint. SBI is associated to a PBI, and relation is like parent and child. One PBI have one or more SBIs. SBIs remains unchanged during a sprint. So SBI is a tasks having 4-16 hrs (some company says not more than 8 hrs) estimated. Once, task is done its owner put estimated hour o and status to done.
User Stories:
User story is describes high level business flow, functionalities. It is a written description of story
......continue

Tuesday, August 12, 2008

Team Foundation Server - Simple Introduction for a tester

It is a tool from Microsoft for overall project collaboration. It has almost everything for a software development project such as source control, reporting, bug and requirement tracking, and team build.
Before further talking about TFS let spend some time understanding following:
WhAT Is Visual Studio Team System?
VSTS: MS- Visual Studio Team System is a powerful tool that integrates the entire team across the entire life cycle. It has solution to successfully, plan, build, deploy and test a project. According to Microsoft Visual Studio 2005 Team System is a productive, integrated, and extensible suite of life cycle tools that expands the Visual Studio product line to enable greater communication and collaboration among software development teams.
VSTS is divided in Integration, Architecture, Development and Testing according to different team's requirements. In general, It is designed in such a way that all stakeholders can directly communicate with each other, can view each others tasks and updates. So simply saying, it is a tool by Microsoft that provides guidance and communicates which item need to be worked on. And can customize it which ever methodology you follow. VSTS has two software development best practice methodologies.

1.1 One is MS Solution Framework for agile software development, it is recommended and default methodology form team system. It is best for team for more rapid, ready for change environment with communication with customer and project having small team. Agile is targeted to smaller team members on team. Team system is also highly follow the philosophy, model introduced by agile alliance:
-  individual interaction is more important than process and tool. 
-  Customer collaboration is highly fruitful for project than customer contracts.
- Responding to change according to situation makes positive impact on project rather than following plans.
1.2 Another is MSF for CMMI: CMMI is about process improvement which appeals to larger projects, typically project with long- range planning and communication are more important rather than frequent release and feedback form customer. CMMI is a model for continuous process development. It is targeted to reduced SDLC cycle times, improved ability to meet cost and schedule target and improve quality. It is a very formal methodology for SW development and used for environment where team needs close communications and integrated work environment. Project management – create and manage team project Work item tracking: Create and track bug, Tasks, Change management – version control management to project. Build server – build management Continuous Integration Build (CIB) Project site – SharePoint Reporting – different reporting chart can be customized.
From a Tester's point of view, if someone is going to join a team which is using VSTS/TFS, understanding team project's structure will make his job easy.
A team project has 5 main elements. Work Items, Documents, Reports, Team Build, and Source control.


A Work Item is means the work to be completed on the project. It can be a bug, a task for adding new feature, writing a business document etc. And can be created by anybody involved in.
Using document feature, once cad add project related document under document node.
Reports node is for project status tracking, for example a bug report, daily status report.
Team build node contains team builds, one can add new team build. Source Control node , by this one can access source codes.
So, in conclusion TFS glues the whole project team and facilitates to collaborate between the various team members/roles. VSTS Test edition is for testing purpose(automation). But all are integrated in visual studio environment.

Friday, August 8, 2008

Importance of Software Testing Theory

Every organization system operates under certain quality requirement. Software testing in an integral part of quality assurance and a tester can contribute to quality improvement by finding bug. A QA Analyst's responsibility is different then a tester's this role is responsible to create and in force standards and methods to improve overall software development and testing process.
Technical excellence (person who is very good at finding system bugs, good at automation tools, scripting, and debugging) is not enough to be a good software QA tester. Knowledge about qa methodology and process is equally important to use that technical ability. At the requirement gathering and analysis phase some QA persons cannot understand what their role is in this phase of SDLC. Their understanding is that there is nothing to test now because no test cases are ready yet. But, a QA person has a big role to play to check standards of the requirements itself.

What I personally feel is if a QA tester is clear about QA methodology, standards, his thinking is not based only on the documents but he also questions himself what are they going to develop? What is there in documents? What is missing? What is not necessary? This questioning process takes his knowledge to mature level which reflects in his documentation, test case writing, and his overall performance in other phases of STLC.

It is equally important for job search and interview. Question like 'when to start testing' is not that bad for a person who has drilled little bit QA methodologies. But I doubt it would that easy and to-the-point if a person doesn’t have methodological base. Sometime even software terms and terminologies put you in embracing situation during interview and during real work environment. Years back, my TL assigned me to walk new person through about project and testing. I spent significant effort to make him understand bug life cycle. He was actually testing bugs that were assigned to developers and not done. Here my intention is not to criticize him, but trying to tell that a tester person having knowledge of Bug life cycle and status would never touch a bug with 'not done' status and assigned to a developer. For more software testing theory topics go here