Two of the common approaches to create test automation are Record/ Run and Scripting. But, each of these approaches has associated problems. What is a better approach to build test automation? View my video, How to create test automation fast or read on.
Tuesday, December 30, 2014
Sunday, December 28, 2014
Software Testing
Software testing is an analysis that gives us data to estimate the quality of a system. Testing a system lets us know if the system meets each of its
specified requirements or not. It gives us data about the working
features of the system. It also provides data about the other relevant
system properties like performance, security and usability. Testing
provides this data when the system is actually used, not just viewed. This why testing is
so important. Especially software testing to estimate software quality.
In order to learn more about quality, read my article, What is quality. View my video, Software Testing Introduction - What is it? Why test? to understand what is testing and why is testing needed. Or read on.
Saturday, December 27, 2014
Selenium WebDriver Quiz Part 4
Selenium is a popular open source test automation tool for web applications that is used for functional and cross-browser compatibility testing. You can learn from my video, Selenium WebDriver tutorial.
You may have already attempted the Selenium Quiz Parts 1, 2 and 3. If not, try those first. Now, attempt this short part 4 of this quiz to check your familiarity with Selenium WebDriver (also known as Selenium 2) basics. Selenium-WebDriver is the new Selenium tool that has a simpler and more powerful API than Selenium 1. Additionally, it addresses the limitations of Selenium RC. Each question in this quiz has four options with one best answer. The score is updated at the bottom left as you answer each question.
You may have already attempted the Selenium Quiz Parts 1, 2 and 3. If not, try those first. Now, attempt this short part 4 of this quiz to check your familiarity with Selenium WebDriver (also known as Selenium 2) basics. Selenium-WebDriver is the new Selenium tool that has a simpler and more powerful API than Selenium 1. Additionally, it addresses the limitations of Selenium RC. Each question in this quiz has four options with one best answer. The score is updated at the bottom left as you answer each question.
Sunday, December 7, 2014
How to find out more software testing jobs positions?
View my video, Top tips to get software testing jobs or read on.
The common ways to locate the available software testing job positions or projects are job websites, organizations' web sites, social media, campus assistance, freelance websites and crowd-sourced testing web sites. However, these are not the only means of finding the available jobs.
The common ways to locate the available software testing job positions or projects are job websites, organizations' web sites, social media, campus assistance, freelance websites and crowd-sourced testing web sites. However, these are not the only means of finding the available jobs.
Thursday, September 4, 2014
VBScript Tutorial - Free
Learn VBScript quickly by using these video tutorials. VBScript is a powerful scripting language developed by Microsoft. Click on the links below to start learning.
VBScript Sub and Function Procedures - tutorial 2: This video explains VBScript procedures, their advantages (save scripting time and testing time) and how to write them. It describes both sub procedures and function procedures.
VBScript If Then statement - tutorial 3: This video explains VBScript conditional statements. Conditional statements control the flow in the script. They contain a condition that can be true or false. If the condition is true, one set of statements is run. If the condition is false, another set of statements is executed.
VBScript Select Case Statement, string functions - tutorial 4: This video explains VBScript conditional statement called the Select Case statement. This Select Case statement finds out the value of an expression at the start of the statement. Different VBScripts statements are run depending on the value of this expression. This is implemented in Case statements within the Select Case statement. If the expression value is not given in any Case statement, the Case Else block is executed. It also explains the many useful functions in VBScript that we can use to manipulate strings.
VBScript For Next statements - tutorial 5: This video explains VBScript looping statements, For Next statement and For Each Next statement. The For Next statement runs a block of code repeatedly depending on the initial and final value of a variable and the step. The For Each Next statement runs a block of code once for each item in a collection or an array.
VBScript Do Loop and While Wend statements. Working with HTML, Excel file - tutorial 6: This video explains VBScript looping statements, While Wend statement and Do Loop statement. These statements are useful when we do not know the number of times a block of code is to be executed. They execute the block of code while the given condition is true. This video also explains how to create HTML (hypertext markup language) file or a web page and Excel file using VBScript.
VBScript Arrays - tutorial 7: This video explains the array variable. An array can be used to store multiple data values. An array can have a fixed size or be dynamic. It is possible to go through each element of the array in order of their index. It is possible to sort an array in a logical order.
VBScript Working with Databases and SQL - tutorial 8: This video explains how to work with databases using VBScript. ADO (ActiveX Data Objects) are COM objects available in VBScript. We can work with the connection and recordset ADO objects. The recordset object is useful when the VBScript needs a copy of the data result set from the database. It is also possible to execute commands directly on the connection object. This video demonstrates VBScript that connects to a Microsoft SQL Server Express dummy database. This script fetches data from the database table, adds a new record, updates an existing record and deletes the added dummy record.
Saturday, August 23, 2014
Tuesday, April 1, 2014
Free Software Testing Tutorials
Several people who are starting out in software testing have inquired about software testing tutorials. Here is the complete list of free software testing tutorials that you can use to train yourself in the concepts of software testing. The link is:
You should view these software testing training videos in the following order:
- What is software testing? Why test software?
- Waterfall SDLC and V Model in testing
- Requirements analysis
- Software test strategy
- Agile test strategy and Agile test plan
- Test cases
- Writing test cases effectively
- Test data
- System testing
- Regression testing
- Requirements Traceability Matrix
- Testing reports
- Bug reporting
- Test status report
- Software tester roles and responsibilities
- Equivalence Partitioning and Boundary Value Analysis
- Decision Table Testing
- Use Case Testing
- State Transition Testing
- How to design Test Ideas quickly
- How to get Domain Knowledge
- How to Test Software without Requirements
- Top tips to get software testing jobs
- Building software testing skills
- How to become Software Testing Expert
- Test Estimation with formula example and Questions and Answers
- Test Lead Interview Questions And Answers
- How to Identify Risks?
- Risk Management in Software Projects
- Severity and Priority in Software Testing
- Defect Density
- Cause and Effect Analysis
- Cyber Security Basic Terms and Concepts
- Introduction to Software Architecture
- Memory Leak explained
- Race Condition in Software
- Off-by-one Errors
Next, learn from the free Test Automation Tutorials.
Monday, March 31, 2014
What is Traceability Matrix?
In software testing, an important document is called Traceability Matrix (TM) or Requirements Traceability Matrix (RTM). This is the document that connects the requirements to the test cases. The connection or mapping of the requirements to test cases is many-many. This means that one requirement is tested by one or more test cases. Conversely, it is possible to have one test case addressing one or more requirements.
If you don't understand the RTM, view the video, Requirements Traceability Matrix that explains the RTM with an example.
Next, let us see some useful points about the Requirement Traceability Matrix.
If you don't understand the RTM, view the video, Requirements Traceability Matrix that explains the RTM with an example.
Next, let us see some useful points about the Requirement Traceability Matrix.
Wednesday, March 19, 2014
Example Test Strategy | Test Plan
Test strategy is the plan (that may exist at any level like project, program, department or organization level) that describes how the test objectives would be met effectively with the help of the available resources. If you have a test strategy, it is easier to focus effort on the most important test activities at the time. Moreover, a test strategy provides clarity on the test approach to the project stakeholders. First, view my Test Strategy video. Then read on.
Many readers have asked me for example software testing strategy document. I requested Varsha, who is a senior member of the Software Testing Space community, to create an example test strategy for a hypothetical agile project. First, view the video, Example Agile Test Strategy, Agile Test Plan. Then read on.
Below is the resulting sample test strategy document. The sections contain much information. Additional guidelines are given in italics. I hope that this sample test strategy document helps you create a really effective test strategy for your own project. - Inder P Singh
Example Test Strategy
Introduction to Agile
Agile is an iterative and incremental (evolutionary) approach to software development that is performed in a highly collaborative manner by self-organizing teams within a control framework. High quality and adaptive software is developed by small teams using the principles of continuous design improvement and testing based on rapid feedback and change. Agile is people-centric, development and testing is performed in an integrated way, self-organizing teams encourage role interchangeability, customer plays a critical role and Project Life-cycle is guided by product features.
How Agile is different from Waterfall model
1. Greater collaboration
2. Shorter work cycle and constant feedback
3. Need to embrace change
4. Greater flexibility
5. Greater discipline
6. The goal should be quality and not just speed
7. Greater stakeholder accountability
8. Greater range of skills
9. Go faster and do more
10. Courage
11. Confidence in design
Purpose of this document
The purpose of this Test Strategy is to create a shared understanding of the overall targets, approach, tools and timing of test activities. Our objective is to achieve higher quality and shorter lead times with minimum overhead, frequent deliveries, close teamwork with team and the customer, continuous integration, short feedback loops and frequent changes of the design. Test strategy guides us through the common obstacles with a clear view of how to evaluate the system. Testing starts with the exploration of the requirements and what the customer really wants by elaborating on the User stories from different perspectives. Testing becomes a continuous and integrated process where all parties in the project are involved.
Introduction to Agile
Agile is an iterative and incremental (evolutionary) approach to software development that is performed in a highly collaborative manner by self-organizing teams within a control framework. High quality and adaptive software is developed by small teams using the principles of continuous design improvement and testing based on rapid feedback and change. Agile is people-centric, development and testing is performed in an integrated way, self-organizing teams encourage role interchangeability, customer plays a critical role and Project Life-cycle is guided by product features.
How Agile is different from Waterfall model
1. Greater collaboration
2. Shorter work cycle and constant feedback
3. Need to embrace change
4. Greater flexibility
5. Greater discipline
6. The goal should be quality and not just speed
7. Greater stakeholder accountability
8. Greater range of skills
9. Go faster and do more
10. Courage
11. Confidence in design
Purpose of this document
The purpose of this Test Strategy is to create a shared understanding of the overall targets, approach, tools and timing of test activities. Our objective is to achieve higher quality and shorter lead times with minimum overhead, frequent deliveries, close teamwork with team and the customer, continuous integration, short feedback loops and frequent changes of the design. Test strategy guides us through the common obstacles with a clear view of how to evaluate the system. Testing starts with the exploration of the requirements and what the customer really wants by elaborating on the User stories from different perspectives. Testing becomes a continuous and integrated process where all parties in the project are involved.
Copyright © Software Testing Space
Guiding standards
Standard | Description |
Shared Responsibility | Everyone in the team is responsible for quality. |
Data Management | Production data must be analyzed before being used for testing. |
Test Management | Test cases, code, documents and data must be treated with the same importance as the production system. |
Test Automation | Attempt to automate all types of testing (Unit, Functional, Regression, Performance, Security) as far as feasible. |
Requirements strategy
1. Always implement highest priority work items first (Each new work item is prioritized by Product Owner and added to the stack).
2. Work items may be reprioritized at any time or work items may be removed at any time.
3. A module in greater detail should have higher priority than a module in lesser detail.
Quality and Test Objectives
Feature | Description | Measure and Target | Priority |
Accuracy | Features and functions work as proposed (i.e. as per requirements) | 100% completion of agreed features with open
|
Must Have |
Integrity | Ability to prevent unauthorized access, prevent information loss, protect from viruses infection, protect privacy of data entered |
|
Must Have |
Maintainability | Ease to add features, correct defects or release changes to the system |
|
Must Have |
Availability | Percentage of planned up-time that the system is required to operate | System is available for 99.99% for the time measured through system logs. | Should Have |
Interoperability | Ease with which the system can exchange information with other systems User interface renders and functions properly on the following (and later) browsers versions:
|
Must Have | |
Performance | Responsiveness of the system under a given load and the ability to scale to meet growing demand. |
|
Should Have |
Test Scope (both business processes and the technical solution)
In Scope
Identify what is included in testing for this particular project. Consider what is new and what has been changed or corrected for this product release.
- Automated) Unit testing
- Code analysis (static and dynamic)
- Integration testing
- (Automated) Feature and functional testing
- Data conversion testing
- System testing
- (Automated) Security testing
- Environment testing
- (Automated) Performance and Availability testing
- (Automated) Regression testing
- Acceptance testing
Out of Scope
Identify what is excluded in testing for this particular project.
Testing Types
Testing type | Definition | Test tool examples Remove tools that will not be used. |
Unit testing | Testing that verifies the implementation of software elements in isolation | Xunit test tools (Nunit, Junit), Mocking tools |
Code analysis (static and dynamic) | Walkthrough and code analysis | 1. Static code tool ->
Java – Checkstyle, Findbugs, Jtest, AgileJ Structure views
.Net – FxCop, stypeCop, CodeRush 2. Dynamic code tool ->Avalanche, DynInst, BoundsChecker. |
Integration testing | Testing in which software elements, hardware elements, or both are combined and tested until the entire system has been integrated | Vector Cast C/C++ |
Functional and Feature testing | Testing an integrated hardware and software system to verify that the system meets required functionality:
| UFT, Selenium WebDriver, Watir, Canoo webtest , SoapUI Pro |
System testing | Testing the whole system with end to end flow | Selenium, QTP, TestComplete |
Security testing | Verify secure access, transmission and password/ session security | BFB Tester, CROSS, Flowfinder, Wireshark, WebScarab, Wapiti, X5s, Exploit Me, WebSecurify, N-Stalker |
Environment testing | Testing on each supported platform/ browser | GASP, QEMU, KVM,Xen, PS tools |
Performance and Availability testing | Load, scalability and endurance tests | LoadRunner, JMeter, AgileLoad test, WAPT, LoadUI |
Data conversion testing | Performed to verify the correctness of automated or manual conversions and/or loads of data in preparation for implementing the new system | DTM, QuerySurge, PICT, Slacker |
Regression testing | Testing all the prior features and re-testing previously closed bugs | QTP, Selenium WebDriver |
Acceptance testing | Testing based on acceptance criteria to enable the customer to determine whether or not to accept the system | Selenium , Watir, iMacros, Agile Acceptance Test Tool |
Test Design strategy
1. Specification based / Black box techniques (Equivalence classes, Boundary value analysis, Decision tables, State Transitions and Use case testing)
2. Structure based / white box techniques (Statement coverage, Decision coverage, Condition coverage and Multi condition coverage)
3. Experience based techniques (Error guessing and Exploratory testing)
Test Environments strategy
Name | Description | Data Setup | Usage |
Development | This environment is local and specific to each developer/tester machine. It is based on the version/branch of source code being developed. Integration points are typically impersonated. | Data and configuration is populated through setup scripts. | Unit, Functional and Acceptance Tests. Test tools e.g. Xunit test tools (Nunit, Junit), Mocking tools. Source code management for version control |
Integration | This environment supports continuous integration of code changes and execution of unit, functional and acceptance tests. Additionally, static code analysis is completed in this environment. | Data and configuration is populated through setup scripts. | Unit, Functional and Acceptance Tests. Static code analysis Continuous Integration tools e.g. Cruise control |
Staging | This environment supports exploratory testing | Populated with post-analysis obfuscated production data | Exploratory testing |
Production | Live environment | New instances will contain standard project reference data. Existing instances will have current data migrated into the environment | Production verification testing |
Test Execution strategy
We will keep in mind the following points:
- Agile testing must be iterative.
- Testers cannot rely on having complete specification.
- Testers should be flexible.
- They need to be independent and independently empowered in order to effective
- Be generalizing specialists.
- Be prepared to work closely with developers.
- Focus on value added activities.
- Be flexible.
- Focus on What and Not How to test.
- Testers should be embedded in agile team.
- Flexible to contribute in any way then can
- Have wide range of skills with one or more specialties
- Shorter feedback cycles
- Focus on sufficient and straightforward situations.
- Focus on exploratory testing.
- Specify the meaning of "Done” i.e. when activities/tasks performed during the system development can be considered complete.
- Define when to continue or stop testing before delivering the system to the customer. Specify which evaluation criteria is to be used (e.g. time, coverage, and quality) and how it will be used.
1. Steps to build the system
2. Steps to execute automated tests
3. Steps to populate environment with reference data
4. Steps to generate test report/code metrics
Test Data Management strategy
Use this section to describe the approach for identifying and managing test data. Consider the following guidelines:
1. System and user acceptance tests – a subset of production data should be used to initialize the test environment.
2. Performance and availability test – full size production files should be used to test the performance and volume aspects of the test.
Test Automation strategy
Adopt a planned approach to developing test automation. Increase the quality of test automation code. Select the test cases for automation based on the following factors:
- Risk
- How long it takes to run the tests manually?
- What is the cost of automating the test?
- How easy are the test cases to automate?
- How many times is the test expected to run in project?
The Test Plan, test scenarios, test cases and bug report should be in a same system as in Bugzilla, Zira. Any agile tool can be used where User stories, Test Plan, Test scenarios, test cases and bug report can be stored in the same place.
Risks and Assumptions
Risks and assumptions raised in Daily stand up meeting (in front of all team members, scrum master and members) should be logged and addressed immediately.
Defect Management strategy
Ideally, defects are only raised and recorded when they are not going to be fixed immediately. In this case, the conditions under which they occur and the severity needs to be accurately recorded so that the defect can be easily reproduced and then fixed.
Defect Classification
Severity | Description |
Critical | Defect causes critical loss of business functionality or a complete loss of service. |
Major | Defect causes major impact to business functionality and there is not an interim workaround available. |
Minor | Defect causes minor impact to business functionality and there is an interim workaround available. |
Trivial | Defect is cosmetic only and usability is not impacted. |
Defect Lifecycle
Step | Description |
Identify Defect | Ensure defect can be reproduced. Raise in defect tracking system. |
Prioritize Defect | Based on severity defect is prioritized in team backlog. |
Analyze Defect | Based on analysis acceptance criteria and implementation details. |
Resolve Defect | Implement changes and/or remediate failing tests. |
Verify Resolution | Execute tests to verify defect is resolved and no regression is seen. |
Close Defect | Close in defect tracking system. |
Specify the shared defect tracking system.
Copyright © Software Testing Space
Note: This example test strategy has been contributed by Varsha Tomar. Varsha has 9 years experience in both manual and automated software testing. Currently, she works with Vinculum Solutions as Senior Test Lead. Her interests include software testing, test automation, training, testing methodologies and exploring testing tools.
Please put any questions that you have in the comments.
Please put any questions that you have in the comments.
Thursday, January 30, 2014
Learn HTML and Style sheets in one hour - Free training
HTML or Hyper Text Markup Language is the language of the web pages and a basic test automation skill.
If you haven't done so, you can learn HTML and CSS/ style sheets using our three free tutorials.
These tutorials cover HTML structure, important tags like links, images,
tables, div and span, tag attributes, SEO (basic search engine optimization) and internal
style sheets. You can view the tutorials here.
HTML Tutorial 1: This tutorial explains the HTML basics to create simple web pages. What is HTML? How to create the structure of a web page with tags like html, head, body and heading tags? How are tags paired? What is the difference between paired tags and single tags? How to use line breaks?
HTML Tutorial 2: This tutorial explains the important HTML tags. How to implement title, lists, links, images, div, span and tables? What are HTML entities? How to work with tag attributes? What are the important attributes of each HTML tag?
HTML Tutorial 3: This tutorial explains basic SEO (Search Engine Optimization). How to make your web pages more visible to search engines with simple steps? This tutorial also explains internal style sheets i.e. style sheets that affect all the elements of your web page. How to apply style to HTML web elements? How to apply more than one style to the same HTML web element?
Already know HTML really well? Try our HTML Quiz.
Saturday, January 25, 2014
Types of Software Testing
Software testing is categorized into various types. This categorization is based on the focus, approach or method used. Let us see the software testing types.
White box testing - This testing needs the knowledge of the code and data structures of the software. It involves code coverage and testing interfaces. It is mostly performed at the unit level. Also known as clear box testing or glass box testing.
Black box testing - This testing does not require the knowledge of the internal code and data structures of the software. It is based on the inputs given by and outputs obtained by the user. It involves testing the requirements and exploratory testing.
Manual testing - This testing is done by human testers using their knowledge, creativity and intellect. The testers may use a few tools but the majority of the testing is done by hand.
Automated testing - The testing is executed by a computer running test automation code. The test automation is designed by a human tester. The test automation code is generated automatically by a tool (record and playback) or written by the tester by hand.
White box testing - This testing needs the knowledge of the code and data structures of the software. It involves code coverage and testing interfaces. It is mostly performed at the unit level. Also known as clear box testing or glass box testing.
Black box testing - This testing does not require the knowledge of the internal code and data structures of the software. It is based on the inputs given by and outputs obtained by the user. It involves testing the requirements and exploratory testing.
Manual testing - This testing is done by human testers using their knowledge, creativity and intellect. The testers may use a few tools but the majority of the testing is done by hand.
Automated testing - The testing is executed by a computer running test automation code. The test automation is designed by a human tester. The test automation code is generated automatically by a tool (record and playback) or written by the tester by hand.
Friday, January 17, 2014
What is quality?
Let us understand the concept of Quality. View the video that explains What is Quality or read on.
Simply put, "quality" is a property or a characteristic of an item, a product, a service or a system. A physical product has properties like dimensions, weight, price or life span. Notice that each of these properties is one of two types, tangible or intangible. Properties like dimensions and weight are tangible. Meaning that they are physical properties that we can measure easily. Properties like price and life span are intangible. Meaning that they are not obvious to our senses or measuring devices. Quality is an intangible property of a product or a system. That is why it is not trivial to estimate it. It is probably impossible to measure it accurately.
Simply put, "quality" is a property or a characteristic of an item, a product, a service or a system. A physical product has properties like dimensions, weight, price or life span. Notice that each of these properties is one of two types, tangible or intangible. Properties like dimensions and weight are tangible. Meaning that they are physical properties that we can measure easily. Properties like price and life span are intangible. Meaning that they are not obvious to our senses or measuring devices. Quality is an intangible property of a product or a system. That is why it is not trivial to estimate it. It is probably impossible to measure it accurately.
Tuesday, January 14, 2014
Software Defect Prevention
As software testers, we focus on defect detection. In this post, let us see different ways to prevent defects in software. Preventing defects is preferred to detecting defects and removing them. The following guidelines may take us out of our comfort zone. However, they help us connect better with other team members (developers, designers and analysts).
Wednesday, January 1, 2014
Software Programming and Software Testing videos
This blog has a YouTube channel now. It is called Software and Testing Training. The goal of this channel is to provide self-paced online training in Programming, Scripting, Software Testing, QA, Automation Testing with Selenium, Performance Testing and Load Testing using JMeter, LoadRunner, test automation with QTP, TestComplete, Database testing with SQL Structured Query Language, Java and other programming languages, JavaScript, VBScript and other scripting languages and other technologies like HTML, CSS and XML used in software applications and software systems.
The objective of Software and Testing Training channel is to make available software development training, testing training, qa training, software testing tutorial, automation videos, automated testing tutorial and quality assurance training with details and examples. So that the material is very clear to the viewer. The training topics range from software development and testing fundamentals to advanced programming concepts, advanced scripting, database queries, advanced test methodologies and test automation.
Software and Testing Training channel has thousands of subscribers looking for software programming and testing online training. You too can benefit from it. In order to avail the latest videos with exciting software development and software testing content, please subscribe to Software and Testing Training channel by clicking on this link.
The objective of Software and Testing Training channel is to make available software development training, testing training, qa training, software testing tutorial, automation videos, automated testing tutorial and quality assurance training with details and examples. So that the material is very clear to the viewer. The training topics range from software development and testing fundamentals to advanced programming concepts, advanced scripting, database queries, advanced test methodologies and test automation.
Software and Testing Training channel has thousands of subscribers looking for software programming and testing online training. You too can benefit from it. In order to avail the latest videos with exciting software development and software testing content, please subscribe to Software and Testing Training channel by clicking on this link.
Subscribe to:
Posts (Atom)