This document provides an introduction to software testing for beginners. It discusses what software testing is, why it's important, and the roles and skills of software testers. It also provides an overview of common testing techniques like test planning, case development, defect tracking, and automation. The goal is to help beginners gain practical knowledge about software testing processes in the industry.
This document provides an overview and introduction to software testing for beginners. It discusses what software testing is, why it's important, and what testers do. Some key points covered include:
- The goal of testing is to find bugs early and ensure quality by designing and executing test cases that cover functionality, security, databases, and user interfaces.
- A good tester has skills like communication, organization, troubleshooting, and being methodical and objective in their work.
- Testing occurs at all stages of the software development life cycle from initial specifications through coding, testing, deployment and maintenance.
The document provides a summary of Hariprasad Naidu's professional experience and qualifications. He has over 7 years of experience in software testing, including manual testing, automation testing using Selenium, and experience in the telecom and insurance domains. He has expertise in test frameworks, defect tracking tools, SQL, Java, and Agile methodologies. He is currently working as a QA Team Lead for a project involving registration and transfers at Ness Technologies in Hyderabad.
Make a career in software testing: MobilePro - Mobile Testing Professional Pr...CleanSoft Academy
This document provides an overview of the MobilePro Mobile Testing Professional Program. The program prepares graduates to become skilled mobile testers through 12 courses covering topics like software engineering, testing fundamentals, mobile applications, and an industry orientation. The program aims to develop both technical skills and "soft" skills so graduates are confident and able to integrate into professional roles with minimal support. There is a strong focus on hands-on learning and applying concepts to real-world examples and situations. The program content and structure is designed to meet industry needs and expectations for mobile testing professionals.
Shashikumar is a software test engineer with 1.7 years of experience testing applications at Sandisk India Device Design Centre. He has experience testing USB flash drives, firmware, and mobile applications. His skills include manual and automation testing, test case development, compatibility and regression testing using tools like Crystal Disk Mark and an oscilloscope. He has a B.E. in ECE and training in software testing.
Currently I am associated with 'Computer Storage Services India Pvt Ltd', Gurgaon(a South African MNC) as a Software Test Engineer from august 2014 till date. I have extensive experience of working as a Manual Tester. I have been responsible for functional testing for the Windows & Mac based utilities and an ERP Package.
I am also responsible for the project co-ordination of the ERP package from our head office, South Africa and plays an extensive role in Business Development in India.
This document provides an overview of software testing, including definitions of key terms, types of testing (manual vs automation), testing methods (black-box, white-box, and grey-box), testing levels (unit, integration, system, etc.), documentation used in testing (test plans, scenarios, cases), and estimation techniques (functional point analysis, test point analysis, Mark-II method). The intended audience is software testing professionals looking to better understand testing frameworks, methods, and processes.
Agile testing is a software testing practice that follows the principles of agile software development. It involves all members of the project team, with special expertise contributed by testers. Testing is not a separate phase and is interwoven with all development phases such as requirements, design, coding, and test case generation. Testing takes place simultaneously through the development life cycle. The key principles of agile testing include testing moving the project forward, testing not being a separate phase, everyone testing, shortening feedback loops, keeping code clean, using lightweight documentation, and leveraging test artifacts for both manual and automated testing.
Satheesh Kumar is a senior software tester with over 6 years of experience testing mobile applications and devices. He has expertise in manual and automation testing of Android, Windows, and other mobile platforms. Some of his past projects include testing Samsung Galaxy smartphones, live streaming applications, kids mode features, and camera/camcorder functionality on Samsung devices. He is proficient in various testing tools and methodologies.
This document provides an overview and introduction to software testing for beginners. It discusses what software testing is, why it's important, and what testers do. Some key points covered include:
- The goal of testing is to find bugs early and ensure quality by designing and executing test cases that cover functionality, security, databases, and user interfaces.
- A good tester has skills like communication, organization, troubleshooting, and being methodical and objective in their work.
- Testing occurs at all stages of the software development life cycle from initial specifications through coding, testing, deployment and maintenance.
The document provides a summary of Hariprasad Naidu's professional experience and qualifications. He has over 7 years of experience in software testing, including manual testing, automation testing using Selenium, and experience in the telecom and insurance domains. He has expertise in test frameworks, defect tracking tools, SQL, Java, and Agile methodologies. He is currently working as a QA Team Lead for a project involving registration and transfers at Ness Technologies in Hyderabad.
Make a career in software testing: MobilePro - Mobile Testing Professional Pr...CleanSoft Academy
This document provides an overview of the MobilePro Mobile Testing Professional Program. The program prepares graduates to become skilled mobile testers through 12 courses covering topics like software engineering, testing fundamentals, mobile applications, and an industry orientation. The program aims to develop both technical skills and "soft" skills so graduates are confident and able to integrate into professional roles with minimal support. There is a strong focus on hands-on learning and applying concepts to real-world examples and situations. The program content and structure is designed to meet industry needs and expectations for mobile testing professionals.
Shashikumar is a software test engineer with 1.7 years of experience testing applications at Sandisk India Device Design Centre. He has experience testing USB flash drives, firmware, and mobile applications. His skills include manual and automation testing, test case development, compatibility and regression testing using tools like Crystal Disk Mark and an oscilloscope. He has a B.E. in ECE and training in software testing.
Currently I am associated with 'Computer Storage Services India Pvt Ltd', Gurgaon(a South African MNC) as a Software Test Engineer from august 2014 till date. I have extensive experience of working as a Manual Tester. I have been responsible for functional testing for the Windows & Mac based utilities and an ERP Package.
I am also responsible for the project co-ordination of the ERP package from our head office, South Africa and plays an extensive role in Business Development in India.
This document provides an overview of software testing, including definitions of key terms, types of testing (manual vs automation), testing methods (black-box, white-box, and grey-box), testing levels (unit, integration, system, etc.), documentation used in testing (test plans, scenarios, cases), and estimation techniques (functional point analysis, test point analysis, Mark-II method). The intended audience is software testing professionals looking to better understand testing frameworks, methods, and processes.
Agile testing is a software testing practice that follows the principles of agile software development. It involves all members of the project team, with special expertise contributed by testers. Testing is not a separate phase and is interwoven with all development phases such as requirements, design, coding, and test case generation. Testing takes place simultaneously through the development life cycle. The key principles of agile testing include testing moving the project forward, testing not being a separate phase, everyone testing, shortening feedback loops, keeping code clean, using lightweight documentation, and leveraging test artifacts for both manual and automated testing.
Satheesh Kumar is a senior software tester with over 6 years of experience testing mobile applications and devices. He has expertise in manual and automation testing of Android, Windows, and other mobile platforms. Some of his past projects include testing Samsung Galaxy smartphones, live streaming applications, kids mode features, and camera/camcorder functionality on Samsung devices. He is proficient in various testing tools and methodologies.
Kiran Tiwari is a Software Testing Engineer with 2 years of experience in manual testing, performance testing, Selenium, and web-based testing. She has experience in all phases of the testing lifecycle including test planning, design, execution, and reporting. She is proficient with tools like JIRA, Selenium, Eclipse, SQL, and Microsoft Office. She holds a Bachelor's degree in Computer Science and is Agile certified. She is currently working as a Testing Engineer at Syntel on an insurance platform project involving Java applications.
This document provides an overview of software testing and the software development life cycle. It discusses the importance of testing in finding bugs and ensuring quality. The document outlines traditional and commonly used software development life cycles, emphasizing the inclusion of testing at all phases for improved defect detection and cost reduction. Key aspects of requirements analysis, design, development, and maintenance are defined. Principles of testing such as defining expected outputs and testing invalid conditions are also covered.
This cover letter and resume is from K Madhu Krishna Raju who is seeking a new position. He has 2 years of experience working as a Computer System Validation engineer at Gland Pharma Limited in Hyderabad. In this role, he facilitated quality systems in compliance with regulations and industry standards. He is proficient in computer validation techniques and has experience validating manufacturing equipment, utilities, and packaging systems. He holds an M.S. in Electronics and Systems Design and has technical skills in programming, PLCs, SCADA, and computer validation best practices. He is looking for a new career opportunity where he can further develop his skills and contribute to an organization.
Kumari Meenu is a software tester seeking a new position and provides her contact information and professional profile. She has experience in various roles testing software for GE Healthcare including test analysis, authoring test scripts, regression testing, and working with tools like HP Quality Center and Siebel CRM. Her skills include experience with the SDLC, testing methodologies, SQL, JavaScript, automation testing, and she is ISTQB foundation level certified.
Himanshu Patel is a Software Test Engineer with over 2 years of experience testing web and mobile applications. He has expertise in test automation using Selenium and manual testing. Some of the key projects he has worked on include testing an interactive workforce application for AT&T, testing a technician appointment rescheduling application for AT&T, and mobile application testing for 21st Century Fox. He is proficient with test automation frameworks, SQL, core Java, and bug tracking tools like JIRA.
The document provides details of Sunil Deva's work experience as a Senior Test Analyst spanning over 11+ years. It summarizes his extensive experience in testing life cycles, methodologies and tools. Key skills listed include experience in test planning, automation, both manual and automated testing across different platforms, databases, programming languages and agile methodologies. His roles involved coordinating testing teams, resolving issues, creating test specifications and ensuring deliverables. A wide range of software testing skills and tools used are also highlighted.
Swetha Nelluru has over 4 years of experience in information technology and software quality assurance testing. She has expertise in manual testing techniques like regression, functional, integration, and smoke testing. She is proficient with testing tools like Quality Center and has experience testing web and client-server applications. She has worked on several projects in domains like healthcare and manufacturing.
This document summarizes a dissertation on the development of the Solidcore Memory Protection Exploitation Suite (SMPES). SMPES is a penetration testing framework designed to uncover vulnerabilities in the Solidcore Systems product called "Solidifier", which uses whitelisting technology and memory protection features to prevent malware execution. The dissertation involved research on exploitation techniques, developing exploit code samples, and designing SMPES to automate targeted testing of Solidifier's memory protection capabilities. The goal was to test Solidifier before release to help strengthen its security and find issues that could potentially be exploited by attackers.
This document summarizes the software testing services offered by Thought Frameworks Inc. They provide manual, automated, and performance testing services across various industries including education, healthcare, retail, banking, and finance. Their testing methodology is structured and customizable to clients' needs. They aim to identify defects early and reduce defects throughout the software development lifecycle.
The document summarizes the findings of a study on software testing market trends, service providers, and success factors. Some key findings include:
- Most companies see software testing as important and are optimizing their testing activities, often by increasing outsourcing to external testing specialists. Collaboration with external providers can improve testing flexibility, quality, and cost-efficiency.
- When selecting external testing partners, companies prioritize factors like the ability to achieve objectives, results-oriented pricing models, and linguistic capabilities for global projects.
- SQS is a leading independent testing specialist that offers blended service delivery and transparent performance-based billing. Their competencies align well with what companies are looking for in external testing providers.
This presentation from CleanSoft Academy helps graduates to make a career choice in the discipline of software testing. A must read for all those graduates who are not sure what career to pursue after graduation.
The document is a resume for an automation test engineer with over 2 years of experience. It summarizes the candidate's objective to find a challenging QA-Test Automation position, professional experience including current and previous roles, technical skills with various testing tools and languages, academic credentials, and details of projects worked on involving designing and implementing automation test frameworks.
The document provides details about Hitendra Kumar Chaudhary's professional experience and qualifications. In 3 sentences:
Hitendra has over 28 years of experience in administration, industrial relations, and human resource management. He is currently working as the Manager of Administration and Industrial Relations at Nirala India, a real estate development company. Prior to this, he held several managerial roles involving administration, security, and human resources at other organizations such as Modi Industries and Flowmore Limited.
Arunkumar Muthusamy is a Quality Assurance/Technical/Test Manager with over 10 years of experience in test management and product testing. He has extensive experience testing networking and video streaming products from Cisco, Proximus, and Konica Minolta. Some of his responsibilities include test planning, requirement analysis, automation testing, defect management, and ensuring quality product delivery. He is proficient in test methodologies like Agile and Scrum, as well as various testing tools and techniques including performance, security, and automation testing.
This document provides an overview of software testing, including definitions of key terms like testing, quality assurance, and quality control. It describes different types of testing like manual and automated testing. It also outlines various testing methods such as black-box, white-box, and grey-box testing. Finally, it discusses testing at different levels from unit to acceptance testing and the importance of documentation in testing.
The document outlines Life Sciences Software Outsourcing Services provided by ScienceSoft, including life sciences software product development, testing, customization, and support services delivered using a dedicated team with both IT and scientific expertise. It describes ScienceSoft's services, customers and testimonials, and approaches to service delivery including through fixed price, time and material, and offshore development center models or ongoing support contracts. The presentation promotes ScienceSoft's domain expertise and experience in the life sciences industry to help clients speed product development and reduce costs.
SQA Solution’s software test automation services combines the speed of software test automation with low cost. We have automated testing for applications running on every major platform, using a wide range of well-known tools as well as custom-developed test automation solutions.
This article discusses how certification benefits individuals' careers in quality professions. It presents stories from seven individuals who work or previously worked in quality engineering and risk management at Teleflex Inc., a global medical device company. They discuss pursuing ASQ certification for personal and professional development. Certification provided advantages over non-certified competitors when applying for new positions and increased opportunities for advancement. All found certification to be a rewarding experience that improved their skills and careers in quality.
BDD focuses on providing a shared process and tools to promote communication between software developers and business analysts. It uses examples written in a readable language to illustrate desired system behaviors. BDD emerged from test-driven development, which uses automated tests to drive development. A key BDD practice is specification by example, which involves collaboratively writing examples to illustrate requirements and then automating these examples as tests.
Shoaib Kamal is a QA Analyst/Lead with over 8 years of experience in testing software applications. He has extensive experience testing applications in the banking, insurance and financial domains. Some of his skills include test planning, case authoring, defect management, and working with testing tools such as HP ALM, Selenium and JMeter. He is looking for a suitable position that allows him to add value to an organization through his software and communication skills.
Three key points from the document:
1. The document discusses aging and vision loss, arguing that we should reframe aging as a time of opportunity to maintain ability rather than a decline. It notes that many vision conditions like macular degeneration are treatable if caught early.
2. Over 50,000 Canadians will lose their sight each year due to conditions like macular degeneration and over 5.5 million Canadians already live with eye diseases that could cause vision loss. Access to treatments is important to maintain independence.
3. New research on microRNAs may help doctors determine in advance if someone will develop wet age-related macular degeneration, the leading cause of vision loss in older adults. This
The candidate has over 12 years of experience in IT systems and business processes. They transformed a pen and paper organization into an automated one, improving productivity by 40%. They also improved employee performance reviews and customer satisfaction levels. They are seeking a new challenge to further develop their experience in business consulting, customer service, and project management.
Kiran Tiwari is a Software Testing Engineer with 2 years of experience in manual testing, performance testing, Selenium, and web-based testing. She has experience in all phases of the testing lifecycle including test planning, design, execution, and reporting. She is proficient with tools like JIRA, Selenium, Eclipse, SQL, and Microsoft Office. She holds a Bachelor's degree in Computer Science and is Agile certified. She is currently working as a Testing Engineer at Syntel on an insurance platform project involving Java applications.
This document provides an overview of software testing and the software development life cycle. It discusses the importance of testing in finding bugs and ensuring quality. The document outlines traditional and commonly used software development life cycles, emphasizing the inclusion of testing at all phases for improved defect detection and cost reduction. Key aspects of requirements analysis, design, development, and maintenance are defined. Principles of testing such as defining expected outputs and testing invalid conditions are also covered.
This cover letter and resume is from K Madhu Krishna Raju who is seeking a new position. He has 2 years of experience working as a Computer System Validation engineer at Gland Pharma Limited in Hyderabad. In this role, he facilitated quality systems in compliance with regulations and industry standards. He is proficient in computer validation techniques and has experience validating manufacturing equipment, utilities, and packaging systems. He holds an M.S. in Electronics and Systems Design and has technical skills in programming, PLCs, SCADA, and computer validation best practices. He is looking for a new career opportunity where he can further develop his skills and contribute to an organization.
Kumari Meenu is a software tester seeking a new position and provides her contact information and professional profile. She has experience in various roles testing software for GE Healthcare including test analysis, authoring test scripts, regression testing, and working with tools like HP Quality Center and Siebel CRM. Her skills include experience with the SDLC, testing methodologies, SQL, JavaScript, automation testing, and she is ISTQB foundation level certified.
Himanshu Patel is a Software Test Engineer with over 2 years of experience testing web and mobile applications. He has expertise in test automation using Selenium and manual testing. Some of the key projects he has worked on include testing an interactive workforce application for AT&T, testing a technician appointment rescheduling application for AT&T, and mobile application testing for 21st Century Fox. He is proficient with test automation frameworks, SQL, core Java, and bug tracking tools like JIRA.
The document provides details of Sunil Deva's work experience as a Senior Test Analyst spanning over 11+ years. It summarizes his extensive experience in testing life cycles, methodologies and tools. Key skills listed include experience in test planning, automation, both manual and automated testing across different platforms, databases, programming languages and agile methodologies. His roles involved coordinating testing teams, resolving issues, creating test specifications and ensuring deliverables. A wide range of software testing skills and tools used are also highlighted.
Swetha Nelluru has over 4 years of experience in information technology and software quality assurance testing. She has expertise in manual testing techniques like regression, functional, integration, and smoke testing. She is proficient with testing tools like Quality Center and has experience testing web and client-server applications. She has worked on several projects in domains like healthcare and manufacturing.
This document summarizes a dissertation on the development of the Solidcore Memory Protection Exploitation Suite (SMPES). SMPES is a penetration testing framework designed to uncover vulnerabilities in the Solidcore Systems product called "Solidifier", which uses whitelisting technology and memory protection features to prevent malware execution. The dissertation involved research on exploitation techniques, developing exploit code samples, and designing SMPES to automate targeted testing of Solidifier's memory protection capabilities. The goal was to test Solidifier before release to help strengthen its security and find issues that could potentially be exploited by attackers.
This document summarizes the software testing services offered by Thought Frameworks Inc. They provide manual, automated, and performance testing services across various industries including education, healthcare, retail, banking, and finance. Their testing methodology is structured and customizable to clients' needs. They aim to identify defects early and reduce defects throughout the software development lifecycle.
The document summarizes the findings of a study on software testing market trends, service providers, and success factors. Some key findings include:
- Most companies see software testing as important and are optimizing their testing activities, often by increasing outsourcing to external testing specialists. Collaboration with external providers can improve testing flexibility, quality, and cost-efficiency.
- When selecting external testing partners, companies prioritize factors like the ability to achieve objectives, results-oriented pricing models, and linguistic capabilities for global projects.
- SQS is a leading independent testing specialist that offers blended service delivery and transparent performance-based billing. Their competencies align well with what companies are looking for in external testing providers.
This presentation from CleanSoft Academy helps graduates to make a career choice in the discipline of software testing. A must read for all those graduates who are not sure what career to pursue after graduation.
The document is a resume for an automation test engineer with over 2 years of experience. It summarizes the candidate's objective to find a challenging QA-Test Automation position, professional experience including current and previous roles, technical skills with various testing tools and languages, academic credentials, and details of projects worked on involving designing and implementing automation test frameworks.
The document provides details about Hitendra Kumar Chaudhary's professional experience and qualifications. In 3 sentences:
Hitendra has over 28 years of experience in administration, industrial relations, and human resource management. He is currently working as the Manager of Administration and Industrial Relations at Nirala India, a real estate development company. Prior to this, he held several managerial roles involving administration, security, and human resources at other organizations such as Modi Industries and Flowmore Limited.
Arunkumar Muthusamy is a Quality Assurance/Technical/Test Manager with over 10 years of experience in test management and product testing. He has extensive experience testing networking and video streaming products from Cisco, Proximus, and Konica Minolta. Some of his responsibilities include test planning, requirement analysis, automation testing, defect management, and ensuring quality product delivery. He is proficient in test methodologies like Agile and Scrum, as well as various testing tools and techniques including performance, security, and automation testing.
This document provides an overview of software testing, including definitions of key terms like testing, quality assurance, and quality control. It describes different types of testing like manual and automated testing. It also outlines various testing methods such as black-box, white-box, and grey-box testing. Finally, it discusses testing at different levels from unit to acceptance testing and the importance of documentation in testing.
The document outlines Life Sciences Software Outsourcing Services provided by ScienceSoft, including life sciences software product development, testing, customization, and support services delivered using a dedicated team with both IT and scientific expertise. It describes ScienceSoft's services, customers and testimonials, and approaches to service delivery including through fixed price, time and material, and offshore development center models or ongoing support contracts. The presentation promotes ScienceSoft's domain expertise and experience in the life sciences industry to help clients speed product development and reduce costs.
SQA Solution’s software test automation services combines the speed of software test automation with low cost. We have automated testing for applications running on every major platform, using a wide range of well-known tools as well as custom-developed test automation solutions.
This article discusses how certification benefits individuals' careers in quality professions. It presents stories from seven individuals who work or previously worked in quality engineering and risk management at Teleflex Inc., a global medical device company. They discuss pursuing ASQ certification for personal and professional development. Certification provided advantages over non-certified competitors when applying for new positions and increased opportunities for advancement. All found certification to be a rewarding experience that improved their skills and careers in quality.
BDD focuses on providing a shared process and tools to promote communication between software developers and business analysts. It uses examples written in a readable language to illustrate desired system behaviors. BDD emerged from test-driven development, which uses automated tests to drive development. A key BDD practice is specification by example, which involves collaboratively writing examples to illustrate requirements and then automating these examples as tests.
Shoaib Kamal is a QA Analyst/Lead with over 8 years of experience in testing software applications. He has extensive experience testing applications in the banking, insurance and financial domains. Some of his skills include test planning, case authoring, defect management, and working with testing tools such as HP ALM, Selenium and JMeter. He is looking for a suitable position that allows him to add value to an organization through his software and communication skills.
Three key points from the document:
1. The document discusses aging and vision loss, arguing that we should reframe aging as a time of opportunity to maintain ability rather than a decline. It notes that many vision conditions like macular degeneration are treatable if caught early.
2. Over 50,000 Canadians will lose their sight each year due to conditions like macular degeneration and over 5.5 million Canadians already live with eye diseases that could cause vision loss. Access to treatments is important to maintain independence.
3. New research on microRNAs may help doctors determine in advance if someone will develop wet age-related macular degeneration, the leading cause of vision loss in older adults. This
The candidate has over 12 years of experience in IT systems and business processes. They transformed a pen and paper organization into an automated one, improving productivity by 40%. They also improved employee performance reviews and customer satisfaction levels. They are seeking a new challenge to further develop their experience in business consulting, customer service, and project management.
El documento describe la realidad nacional de Ecuador. Ecuador tiene una población de más de 16 millones de habitantes y su capital es Quito. La economía de Ecuador se basa en la exportación de petróleo, flores, banano, cacao y camarón. El país también tiene una gran biodiversidad de recursos naturales debido a sus cuatro regiones geográficas distintas. Bajo la presidencia de Rafael Correa, Ecuador ha evolucionado en educación, tecnología e industria.
Ramanan J is a mechanical engineer with over 7 years of experience in mechanical maintenance. He currently works as an Equipment Engineer at Flextronics India, and has previously worked as an Associate Engineer in Mechanical Maintenance at Nokia India. He has strong skills in maintenance, continuous improvement activities like TPM and Kaizen, and ensuring production targets are met.
El documento describe la provincia de Chacas en el departamento de Ancash, Perú. Chacas se ubica al noreste de este departamento andino y cuenta con una población que ha ido creciendo desde 1941. La provincia alberga varios sitios arqueológicos importantes y está rodeada por las majestuosas cordilleras nevadas de los Andes centrales del Perú.
http://www.geminicloud.com
Gemini Cloud to dział firmy Gemini Business Solutions obecnej na rynku IT od 1995. Świadczymy usługi konsultingowe, wdrożeniowe i integracyjne w zakresie rozwiązań technologii Cloud Computing (Infrastructure-as-a-Service, Platform-as-a-Service, Software-as-a-Service).
Od 2010 roku współpracujemy z firmą Salesforce.com, której jesteśmy zarejestrowanym partnerem. To partnerstwo pozwala nam na dostarczanie wiodących i najbardziej innowacyjnych rozwiązań w obszarze technologii Cloud Computing.
Pomagamy naszym klientom w zakresie rozwiązań SalesCloud, ServiceCloud, aplikacji stworzonych na platformie Force.com oraz rozwiązań firm trzecich dostępnych na platformie AppExchange. Oferujemy pełne wsparcie od analizy przedwdrożeniowej, poprzez integrację i uruchomienie systemu, aż do utrzymania systemu produkcyjnego.
Salesforce.com to światowy lider rozwiązań CRM oraz Cloud Computing. Aplikacje dostępne są w modelu „Software as a Service” (SaaS). Do ich działania nie potrzeba serwerów, ani instalowania oprogramowania. Wystarczy przeglądarka internetowa. Oprogramowanie działa w wielu wersjach językowych, dostępna jest również od pewnego czasu polska wersja systemu Salesforce.
Sales Cloud jest w systemie Salesforce.com aplikacją dedykowaną do obsługi procesów sprzedaży i około-sprzedażowych. Dzięki niej pracownicy działu sprzedaży są znacznie bardziej produktywni. Mogą zająć się tym czym powinni: sprzedażą!
System gromadzi w jednym miejscu wszystkie potrzebne narzędzia, aby ułatwić i zautomatyzować pracę przedstawicieli handlowych i innych pracowników działu handlowego.
Service Cloud jest w systemie Salesforce.com aplikacją dedykowaną do procesów obsługi klienta. Dzięki niej obsługa klienta jest nowoczesna i znacznie bardziej produktywna.
Użytkownicy systemu mają pełny zestaw informacji w jednym miejscu. Pozwala to obsługę klienta „w czasie rzeczywistym”.
Diabetes is a complex disease that affects many Canadians. It can lead to serious complications like strokes, heart attacks, kidney failure, and amputations. Advances in technology are helping people with diabetes better manage their condition through tools like insulin pumps and glucose monitors. Researchers are working on developing an artificial pancreas to more precisely deliver insulin. Dessi Zaharieva is a MMA fighter and type 1 diabetic who manages her condition through diet, exercise and medical devices while also pursuing research to help find better treatments for diabetes.
The document provides information about RapidScale's Partner Experience team. It introduces Drake Lerma and Chris Moreira, who are members of the Partner Experience team. It describes their roles and backgrounds. The team is dedicated to developing partnerships with agents and delivering the best partner experience through a personalized approach. The document also includes information about RapidScale's cloud services and products.
This document provides an overview of software testing for beginners. It discusses what software testing is, why it's important, and the roles and skills of testers. It also covers the software development and testing lifecycles, common errors, test planning, case development techniques, defect tracking, and types of test reports. The goal is to help beginners gain practical knowledge about software testing processes in real work environments.
This document provides an overview of software testing for beginners. It discusses what software testing is, why it's important, and the roles and skills of testers. It also covers the software development and testing lifecycles, common errors, test planning, case development techniques, defect tracking, and types of test reports. The goal is to help beginners gain practical knowledge about software testing processes in real work environments.
This document provides an overview of software testing and is intended for beginners. It discusses key topics such as the software development life cycle, types of testing, test planning and case development, defect tracking, test automation, and certifications. The document is presented over multiple pages and sections covering these essential software testing concepts and processes at a high level to introduce new testers to the field.
This document provides guidance for software testing projects at the California Institute of Technology's Information Management Systems & Services (IMSS). It outlines the philosophy, goals, roles and responsibilities for testing. The testing strategy describes the stages of the testing lifecycle including preparation, unit testing, integration testing, system testing and user acceptance testing. Sample test strategies are provided for upgrading Oracle software and testing a data warehouse. The document also describes testing processes, procedures, documentation requirements and the testing environment.
Aress have been developing mobile apps for many years with the breadth of our expertise extending to other OS (BlackBerry and Symbian), communications protocols (Bluetooth, GPRS and Near Field Communication) and messaging services (SMS, MMS).
Dedicated Testing Team Available for Hire.
Best Suitable Engagement Model as per your Requirement
1. Project to Project
2. Per Hour Basis
3. Per Accepted Bug Basis
The document discusses an approach to automating software testing with limited resources by splitting responsibilities between developers and testers. Developers would create a testing framework with an intuitive API that abstracts away technical details. Testers would then leverage this framework to create test cases without having to learn programming. This allows each role to focus on their existing skills while still achieving the goal of automated testing. The approach is meant to address the challenge of demand for test automation exceeding the available skilled workforce by dividing the work in a collaborative manner.
In this presentation, we have mentioned 5 stages of the Software Development Life Cycle. To know all the details about the same, read out the blog on https://www.engineermaster.in/
This document discusses effective techniques for applying test-driven development (TDD) to complex embedded systems. Key points:
- TDD improves quality by catching defects early and focusing developers on requirements and design. This cuts costs and time-to-market compared to finding issues late in integration.
- For complex embedded systems, TDD requires architecting for testability with modular components having well-defined interfaces. Scenario modeling helps design testable architecture.
- Large test suites require organization and automation to avoid maintenance burdens and allow full regression via a single build. Tests should be independent of each other.
The document discusses several topics related to software engineering including:
- The challenges facing software including larger problems, lack of training, and increasing demands.
- Software engineering aims to provide systematic and disciplined approaches to address issues like cost overruns and project failures.
- Key activities in software engineering processes include specification, development, validation, and evolution.
- Different types of software like embedded systems, information systems, and sensor-based systems have varying requirements.
Cucumber is a testing tool that supports Behavior Driven Development (BDD). It allows defining application behaviors using plain English in feature files. Cucumber reads these feature files and matches the steps to code in step definition files. It supports testing various frameworks like Selenium and has advantages over other BDD tools like acting as documentation and allowing involvement of non-programmers. This document discusses setting up a Cucumber environment with Selenium and Java on Windows, which requires installing Java, Eclipse IDE and Maven build tool.
This document provides an overview of basic concepts in software engineering. It discusses that computer science focuses on theory while software engineering focuses on practical development and delivery. The software process involves activities like specification, development, validation and evolution. Process models represent the software process from different perspectives. Roughly 60% of costs are development costs and 40% are testing costs, with evolution costs often exceeding development costs. Structured approaches to software development include models, rules, recommendations and process guidance. CASE tools provide automated support for software process activities. Good software should have required functionality and be maintainable, dependable, usable and efficient. Professional responsibilities include behaving ethically and upholding principles like confidentiality, competence, intellectual property rights and avoiding computer misuse
Agile & DevOps - It's all about project successAdam Stephensen
The document provides information on DevOps practices and tools from Microsoft. It discusses how DevOps enables continuous delivery of value through integrating people, processes, and tools. Benefits of DevOps include more frequent and stable releases, lower change failure rates, and empowered development teams. The document provides examples of DevOps scenarios and recommends discussing solutions and migration plans with Microsoft.
This resume summarizes Pawan Kumar's qualifications and experience as a software tester. He has 2 years of experience as an automation tester using tools like Selenium, QTP, and SoapUI. He has expertise in test automation, manual testing, defect tracking, and working in agile environments. Some of Pawan's projects include testing insurance and banking applications for Disney and Darden Restaurants.
Thought Frameworks has a reputation of outstanding Software Testing services, providing Smart Test Automation, Performance & Functional capabilities with hands-on open & commercial testing tools.
We are working from a position of strength for consumers like Cision, CellTrust, Chegg, Scantron, Verisign, Infusion,12Twenty to name a few, operating across the US, UK & Israel. With a focus on Education, Healthcare, Media,Telecom, Banking, Insurance & Retail Sector.
We will continue to do many of the things we've always done well. But we are making the significant approach to new situations by bringing fresh insight with extremely experienced QA professionals for premium quality.
Simplify your QA processes and find innovative ways to grow your business.
Benefits of Agile Software Development for Senior ManagementDavid Updike
This is a presentation to Senior and Executive Managers which is used to explain how Agile Software Development processes and practices benefit them, their organization and their customers.
This document discusses productivity improvement initiatives in the software industry. It examines challenges in measuring software productivity, including why it should be measured, who should collect data, and what should be measured. Some key factors that affect productivity are identified, such as product characteristics, the development process, and work environment settings. Approaches like Lean are presented as ways to eliminate waste and improve flow. A case study example demonstrates specific measures taken by a company to enhance productivity, such as process optimization and testing improvements. The conclusion is that understanding software productivity factors can help organizations implement effective initiatives to reduce costs and improve quality.
Top 10 Practices for Software Testing in 2023.pptxOprim Solutions
we’ll look at the essential techniques for effective software testing. Understanding the best practices in software testing can assist QA specialists and executives in making better decisions. This also makes the testing procedure more efficient. As well as the creation of high-quality software products that match consumer expectations.
"Test Craftmanship: Crafting Continuously Evolving Test Strategy for Testing Micro Services" by Mayur Chitnis, Software Testing Specialist, Amdocs at #ATAGTR2021.
#ATAGTR2021 was the 6th Edition of Global Testing Retreat.
The video recording of the session is now available on the following link: https://www.youtube.com/watch?v=Ud54lj9jO70
To know more about #ATAGTR2021, please visit:https://www.youtube.com/watch?v=CzOLNti4V70
How to Add Chatter in the odoo 17 ERP ModuleCeline George
In Odoo, the chatter is like a chat tool that helps you work together on records. You can leave notes and track things, making it easier to talk with your team and partners. Inside chatter, all communication history, activity, and changes will be displayed.
বাংলাদেশের অর্থনৈতিক সমীক্ষা ২০২৪ [Bangladesh Economic Review 2024 Bangla.pdf] কম্পিউটার , ট্যাব ও স্মার্ট ফোন ভার্সন সহ সম্পূর্ণ বাংলা ই-বুক বা pdf বই " সুচিপত্র ...বুকমার্ক মেনু 🔖 ও হাইপার লিংক মেনু 📝👆 যুক্ত ..
আমাদের সবার জন্য খুব খুব গুরুত্বপূর্ণ একটি বই ..বিসিএস, ব্যাংক, ইউনিভার্সিটি ভর্তি ও যে কোন প্রতিযোগিতা মূলক পরীক্ষার জন্য এর খুব ইম্পরট্যান্ট একটি বিষয় ...তাছাড়া বাংলাদেশের সাম্প্রতিক যে কোন ডাটা বা তথ্য এই বইতে পাবেন ...
তাই একজন নাগরিক হিসাবে এই তথ্য গুলো আপনার জানা প্রয়োজন ...।
বিসিএস ও ব্যাংক এর লিখিত পরীক্ষা ...+এছাড়া মাধ্যমিক ও উচ্চমাধ্যমিকের স্টুডেন্টদের জন্য অনেক কাজে আসবে ...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Dr. Vinod Kumar Kanvaria
Exploiting Artificial Intelligence for Empowering Researchers and Faculty,
International FDP on Fundamentals of Research in Social Sciences
at Integral University, Lucknow, 06.06.2024
By Dr. Vinod Kumar Kanvaria
How to Build a Module in Odoo 17 Using the Scaffold MethodCeline George
Odoo provides an option for creating a module by using a single line command. By using this command the user can make a whole structure of a module. It is very easy for a beginner to make a module. There is no need to make each file manually. This slide will show how to create a module using the scaffold method.
This presentation was provided by Steph Pollock of The American Psychological Association’s Journals Program, and Damita Snow, of The American Society of Civil Engineers (ASCE), for the initial session of NISO's 2024 Training Series "DEIA in the Scholarly Landscape." Session One: 'Setting Expectations: a DEIA Primer,' was held June 6, 2024.
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...PECB
Denis is a dynamic and results-driven Chief Information Officer (CIO) with a distinguished career spanning information systems analysis and technical project management. With a proven track record of spearheading the design and delivery of cutting-edge Information Management solutions, he has consistently elevated business operations, streamlined reporting functions, and maximized process efficiency.
Certified as an ISO/IEC 27001: Information Security Management Systems (ISMS) Lead Implementer, Data Protection Officer, and Cyber Risks Analyst, Denis brings a heightened focus on data security, privacy, and cyber resilience to every endeavor.
His expertise extends across a diverse spectrum of reporting, database, and web development applications, underpinned by an exceptional grasp of data storage and virtualization technologies. His proficiency in application testing, database administration, and data cleansing ensures seamless execution of complex projects.
What sets Denis apart is his comprehensive understanding of Business and Systems Analysis technologies, honed through involvement in all phases of the Software Development Lifecycle (SDLC). From meticulous requirements gathering to precise analysis, innovative design, rigorous development, thorough testing, and successful implementation, he has consistently delivered exceptional results.
Throughout his career, he has taken on multifaceted roles, from leading technical project management teams to owning solutions that drive operational excellence. His conscientious and proactive approach is unwavering, whether he is working independently or collaboratively within a team. His ability to connect with colleagues on a personal level underscores his commitment to fostering a harmonious and productive workplace environment.
Date: May 29, 2024
Tags: Information Security, ISO/IEC 27001, ISO/IEC 42001, Artificial Intelligence, GDPR
-------------------------------------------------------------------------------
Find out more about ISO training and certification services
Training: ISO/IEC 27001 Information Security Management System - EN | PECB
ISO/IEC 42001 Artificial Intelligence Management System - EN | PECB
General Data Protection Regulation (GDPR) - Training Courses - EN | PECB
Webinars: https://pecb.com/webinars
Article: https://pecb.com/article
-------------------------------------------------------------------------------
For more information about PECB:
Website: https://pecb.com/
LinkedIn: https://www.linkedin.com/company/pecb/
Facebook: https://www.facebook.com/PECBInternational/
Slideshare: http://www.slideshare.net/PECBCERTIFICATION
Main Java[All of the Base Concepts}.docxadhitya5119
This is part 1 of my Java Learning Journey. This Contains Custom methods, classes, constructors, packages, multithreading , try- catch block, finally block and more.
How to Manage Your Lost Opportunities in Odoo 17 CRMCeline George
Odoo 17 CRM allows us to track why we lose sales opportunities with "Lost Reasons." This helps analyze our sales process and identify areas for improvement. Here's how to configure lost reasons in Odoo 17 CRM
A workshop hosted by the South African Journal of Science aimed at postgraduate students and early career researchers with little or no experience in writing and publishing journal articles.
South African Journal of Science: Writing with integrity workshop (2024)
Testing by padamini c
1.
2. Beginners Guide To Software Testing
Symbiosys Technologies 2
FOREWORD
Beginners Guide To Software Testing introduces a practical approach to testing software. It
bridges the gap between theoretical knowledge and real world implementation. This article helps
you gain an insight to Software Testing - understand technical aspects and the processes followed
in a real working environment.
Who will benefit?
Beginners. For those of you who wish to mould your theoretical software engineering knowledge
into practical approach to working in the real world.
Those who wish to take up Software Testing as a profession.
Developers! This is an era where you need to be an “All rounder”. It is advantageous for
developers to posses testing capabilities to test the application before hand. This will help reduce
overhead on the testing team.
Already a Tester! You can refresh all your testing basics and techniques and gear up for
Certifications in Software Testing
An earnest suggestion: No matter which profession you choose, it is advisable that you posses
the following skills:
- Good communication skills – oratory and writing
- Fluency in English
- Good Typing skills
By the time you finish reading this article, you will be aware of all the techniques and processes
that improves your efficiency, skills and confidence to jump start into the field of Software
Testing.
3. Beginners Guide To Software Testing
Symbiosys Technologies 3
About Symbiosys Technologies
Symbiosys Technologies is a software solutions and product development company that caters to
diverse industry verticals. Founded in 2001, Symbiosys Technologies has over 100 employees
with expertise in diverse technologies, servicing and providing solutions to enterprises worldwide.
We offer comprehensive solutions in different areas, viz., Software
Design/Development/Documentation, QA/Testing Services, Software Maintenance/Support,
Systems Integration, Re-engineering, Multimedia Solutions, Web Designing/Development,
Internet/Intranet applications, Database Solutions, e-Commerce and Offshore Services.
Constant dedication and effort by our development, testing and designing teams have helped us
cross many mile stones in this highly competitive and most sought after field. Within a short span
we have been able to work with some of the Fortune 500 companies with excellent results.
Our client list includes Google (Developing Google Internal Systems, Testing Google
Search Appliance), Hitachi Data Systems, Hitachi America Limited, Sphereo Inc,
Tekdynamics Inc and Cambridge Systems Inc.
Our Key differentiators
• Standards and best practices adapted
• Structured coordination
• Highly experienced and proficient development team
• Highly competent and trained testing team
• Conformance to requirements
• Safety and Security assurance
Beginners Guide To Software Testing is our sincere effort to educate and create awareness
among people, the growing importance of software quality. With the advent of globalization and
increase in market demand for software with good quality, we see the need for all Software
Engineers to know more about Software Testing.
We believe that this article helps serve our motto – “Adding Values to Lives Around Us”.
4. Beginners Guide To Software Testing
Symbiosys Technologies 4
Table Of Contents
1. OVERVIEW.................................................................................................................................... 6
1.1. THE BIG PICTURE .................................................................................................................. 6
1.2. WHAT IS SOFTWARE? WHY SHOULD IT BE TESTED? ............................................................................. 6
1.3. WHAT IS QUALITY? HOW IMPORTANT IS IT? ..................................................................................... 7
1.4. WHAT EXCATLY DOES A SOFTWARE TESTER DO? ................................................................................. 7
1.5. WHAT MAKES A GOOD TESTER?.................................................................................................... 8
1.6. GUIDELINES FOR NEW TESTERS.................................................................................................... 8
2. INTRODUCTION ............................................................................................................................ 10
2.1. SOFTWARE LIFE CYCLE ........................................................................................................... 10
2.1.1. VARIOUS LIFE CYCLE MODELS........................................................................................ 11
2.2. SOFTWARE TESTING LIFE CYCLE ................................................................................................ 11
2.3. WHAT IS A BUG? WHY DO BUGS OCCUR? ...................................................................................... 12
2.4. BUG LIFE CYCLE................................................................................................................... 13
2.5. COST OF FIXING BUGS ............................................................................................................ 14
2.6. WHEN CAN TESTING BE STOPPED/REDUCED?................................................................................... 14
3. SOFTWARE TESTING LEVELS, TYPES, TERMS AND DEFINITIONS ..................................................................... 15
3.1. TESTING LEVELS AND TYPES ...................................................................................................... 15
3.2. TESTING TERMS ................................................................................................................... 17
4. MOST COMMON SOFTWARE ERRORS .................................................................................................... 18
5. THE TEST PLANNING PROCESS........................................................................................................... 19
5.1. WHAT IS A TEST STRATEGY? WHAT ARE ITS COMPONENTS?................................................................. 19
5.2. TEST PLANNING – SAMPLE STRUCTURE ......................................................................................... 19
5.3. MAJOR TEST PLANNING TASKS ................................................................................................... 20
6. TEST CASE DEVELOPMENT................................................................................................................ 21
6.1. GENERAL GUIDELINES ............................................................................................................ 21
6.2. TEST CASE – SAMPLE STRUCTURE............................................................................................... 21
6.3. TEST CASE DESIGN TECHNIQUES ............................................................................................... 21
6.3.1. SPECIFICATION DERIVED TESTS ...................................................................................... 22
6.3.2. EQUIVALENCE PARTITIONING.......................................................................................... 22
6.3.3. BOUNDARY VALUE ANALYSIS .......................................................................................... 22
6.3.4. STATE TRANSITION TESTING .......................................................................................... 22
6.3.5. BRANCH TESTING....................................................................................................... 22
6.3.6. CONDITION TESTING................................................................................................... 22
6.3.7. DATA DEFINITION – USE TESTING.................................................................................... 22
6.3.8. INTERNAL BOUNDARY VALUE TESTING ................................................................................ 23
6.3.9. ERROR GUESSING ...................................................................................................... 23
5. Beginners Guide To Software Testing
Symbiosys Technologies 5
6.4. USE CASES ........................................................................................................................ 23
7. DEFECT TRACKING ........................................................................................................................ 24
7.1. WHAT IS A DEFECT?.............................................................................................................. 24
7.2. WHAT ARE THE DEFECT CATEGORIES?........................................................................................... 24
7.3. HOW IS A DEFECT REPORTED? ................................................................................................... 24
7.4. HOW DESCRIPTIVE SHOULD YOUR BUG/DEFECT REPORT BE?.................................................................. 25
7.5. WHAT DOES THE TESTER DO WHEN THE DEFECT IS FIXED? ................................................................... 25
8. TYPES OF TEST REPORTS ................................................................................................................. 26
8.1. TEST ITEM TRANSMITTAL REPORT ................................................................................................ 26
8.2. TEST LOG........................................................................................................................... 26
8.3. TEST INCIDENT REPORT........................................................................................................... 26
8.4. TEST SUMMARY REPORT........................................................................................................... 26
9. SOFTWARE TEST AUTOMATION........................................................................................................... 27
9.1. FACTORS DETERMINING TEST AUTOMATION..................................................................................... 27
9.2. APPROACHES TO AUTOMATION ................................................................................................... 27
9.3. CHOOSING THE RIGHT TOOL...................................................................................................... 28
9.4. TOP TEN CHALLENGES OF SOFTWARE TEST AUTOMATION ...................................................................... 28
10. INTRODUCTION TO SOFTWARE STANDARDS .......................................................................................... 29
10.1. CMM.............................................................................................................................. 29
10.2. SIX SIGMA ....................................................................................................................... 29
10.3. ISO ............................................................................................................................... 29
11. SOFTWARE TESTING CERTIFICATIONS ................................................................................................. 30
12. FACTS ABOUT SOFTWARE ENGINEERING .............................................................................................. 30
13. REFERENCES ............................................................................................................................. 31
14. INTERNET LINKS......................................................................................................................... 31
6. Beginners Guide To Software Testing
Symbiosys Technologies 6
1. Overview
The Big Picture
All software problems can be termed as bugs. A software bug usually occurs when the software
does not do what it is intended to do or does something that it is not intended to do. Flaws in
specifications, design, code or other reasons can cause these bugs. Identifying and fixing bugs in
the early stages of the software is very important as the cost of fixing bugs grows over time. So,
the goal of a software tester is to find bugs and find them as early as possible and make sure
they are fixed.
Testing is context-based and risk-driven. It requires a methodical and disciplined approach to
finding bugs. A good software tester needs to build credibility and possess the attitude to be
explorative, troubleshooting, relentless, creative, diplomatic and persuasive.
As against the perception that testing starts only after the completion of coding phase, it actually
begins even before the first line of code can be written. In the life cycle of the conventional
software product, testing begins at the stage when the specifications are written, i.e. from testing
the product specifications or product spec. Finding bugs at this stage can save huge amounts of
time and money.
Once the specifications are well understood, you are required to design and execute the test
cases. Selecting the appropriate technique that reduces the number of tests that cover a feature
is one of the most important things that you need to take into consideration while designing
these test cases. Test cases need to be designed to cover all aspects of the software, i.e.
security, database, functionality (critical and general) and the user interface. Bugs originate when
the test cases are executed.
As a tester you might have to perform testing under different circumstances, i.e. the application
could be in the initial stages or undergoing rapid changes, you have less than enough time to
test, the product might be developed using a life cycle model that does not support much of
formal testing or retesting. Further, testing using different operating systems, browsers and the
configurations are to be taken care of.
Reporting a bug may be the most important and sometimes the most difficult task that you as a
software tester will perform. By using various tools and clearly communicating to the developer,
you can ensure that the bugs you find are fixed.
Using automated tools to execute tests, run scripts and tracking bugs improves efficiency and
effectiveness of your tests. Also, keeping pace with the latest developments in the field will
augment your career as a software test engineer.
What is software? Why should it be tested?
Software is a series of instructions for the computer that perform a particular task, called a
program; the two major categories of software are system software and application software.
System software is made up of control programs. Application software is any program that
processes data for the user (spreadsheet, word processor, payroll, etc.).
A software product should only be released after it has gone through a proper process of
development, testing and bug fixing. Testing looks at areas such as performance, stability and
error handling by setting up test scenarios under controlled conditions and assessing the results.
This is why exactly any software has to be tested. It is important to note that software is mainly
tested to see that it meets the customers’ needs and that it conforms to the standards. It is a
usual norm that software is considered of good quality if it meets the user requirements.
7. Beginners Guide To Software Testing
Symbiosys Technologies 7
What is Quality? How important is it?
Quality can briefly be defined as “a degree of excellence”. High quality software usually conforms
to the user requirements. A customer’s idea of quality may cover a breadth of features -
conformance to specifications, good performance on platform(s)/configurations, completely
meets operational requirements (even if not specified!), compatibility to all the end-user
equipment, no negative impact on existing end-user base at introduction time.
Quality software saves good amount of time and money. Because software will have fewer
defects, this saves time during testing and maintenance phases. Greater reliability contributes to
an immeasurable increase in customer satisfaction as well as lower maintenance costs. Because
maintenance represents a large portion of all software costs, the overall cost of the project will
most likely be lower than similar projects.
Following are two cases that demonstrate the importance of software quality:
Ariane 5 crash June 4, 1996
- Maiden flight of the European Ariane 5 launcher crashed about 40 seconds after takeoff
- Loss was about half a billion dollars
- Explosion was the result of a software error
- Uncaught exception due to floating-point error: conversion from a 64-bit integer to a
16-bit signed integer applied to a larger than expected number
- Module was re-used without proper testing from Ariane 4
- Error was not supposed to happen with Ariane 4
- No exception handler
Mars Climate Orbiter - September 23, 1999
- Mars Climate Orbiter, disappeared as it began to orbit Mars.
- Cost about $US 125-million
- Failure due to error in a transfer of information between a team in Colorado and a team in
California
- One team used English units (e.g., inches, feet and pounds) while the other used metric units
for a key spacecraft operation.
What exactly does a software tester do?
Apart from exposing faults (“bugs”) in a software product confirming that the program meets the
program specification, as a test engineer you need to create test cases, procedures, scripts and
generate data. You execute test procedures and scripts, analyze standards and evaluate results
of system/integration/regression testing. You also...
• Speed up development process by identifying bugs at an early stage (e.g. specifications
stage)
• Reduce the organization's risk of legal liability
• Maximize the value of the software
• Assure successful launch of the product, save money, time and reputation of the company
by discovering bugs and design flaws at an early stage before failures occur in production,
or in the field
• Promote continual improvement
8. Beginners Guide To Software Testing
Symbiosys Technologies 8
What makes a good tester?
As software engineering is now being considered as a technical engineering profession, it is
important that the software test engineer’s posses certain traits with a relentless attitude to
make them stand out. Here are a few.
• Know the technology. Knowledge of the technology in which the application is developed is
an added advantage to any tester. It helps design better and powerful test cases basing on the
weakness or flaws of the technology. Good testers know what it supports and what it doesn’t, so
concentrating on these lines will help them break the application quickly.
• Perfectionist and a realist. Being a perfectionist will help testers spot the problem and
being a realist helps know at the end of the day which problems are really important problems.
You will know which ones require a fix and which ones don’t.
• Tactful, diplomatic and persuasive. Good software testers are tactful and know how to
break the news to the developers. They are diplomatic while convincing the developers of the
bugs and persuade them when necessary and have their bug(s) fixed. It is important to be
critical of the issue and not let the person who developed the application be taken aback of the
findings.
• An explorer. A bit of creativity and an attitude to take risk helps the testers venture into
unknown situations and find bugs that otherwise will be looked over.
• Troubleshoot. Troubleshooting and figuring out why something doesn’t work helps testers
be confident and clear in communicating the defects to the developers.
• Posses people skills and tenacity. Testers can face a lot of resistance from programmers.
Being socially smart and diplomatic doesn't mean being indecisive. The best testers are both-
socially adept and tenacious where it matters.
• Organized. Best testers very well realize that they too can make mistakes and don’t take
chances. They are very well organized and have checklists, use files, facts and figures to support
their findings that can be used as an evidence and double-check their findings.
• Objective and accurate. They are very objective and know what they report and so convey
impartial and meaningful information that keeps politics and emotions out of message. Reporting
inaccurate information is losing a little credibility. Good testers make sure their findings are
accurate and reproducible.
• Defects are valuable. Good testers learn from them. Each defect is an opportunity to learn
and improve. A defect found early substantially costs less when compared to the one found at a
later stage. Defects can cause serious problems if not managed properly. Learning from defects
helps – prevention of future problems, track improvements, improve prediction and estimation.
Guidelines for new testers
• Testing can’t show that bugs don’t exist. An important reason for testing is to prevent
defects. You can perform your tests, find and report bugs, but at no point can you guarantee that
there are no bugs.
• It is impossible to test a program completely. Unfortunately this is not possible even
with the simplest program because – the number of inputs is very large, number of outputs is
very large, number of paths through the software is very large, and the specification is subjective
to frequent changes.
• You can’t guarantee quality. As a software tester, you cannot test everything and are not
responsible for the quality of the product. The main way that a tester can fail is to fail to report
accurately a defect you have observed. It is important to remember that we seldom have little
control over quality.
• Target environment and intended end user. Anticipating and testing the application in
the environment user is expected to use is one of the major factors that should be considered.
Also, considering if the application is a single user system or multi user system is important for
demonstrating the ability for immediate readiness when necessary. The error case of Disney’s
9. Beginners Guide To Software Testing
Symbiosys Technologies 9
Lion King illustrates this. Disney Company released it first multimedia CD-ROM game for children,
The Lion King Animated Storybook. It was highly promoted and the sales were huge. Soon there
were reports that buyers were unable to get the software to work. It worked on a few systems –
likely the ones that the Disney programmers used to create the game – but not on the most
common systems that the general public used.
• No application is 100% bug free. It is more reasonable to recognize there are priorities,
which may leave some less critical problems unsolved or unidentified. Simple case is the Intel
Pentium bug. Enter the following equation into your PC’s calculator: (4195835 / 3145727) *
3145727 – 4195835. If the answer is zero, your computer is just fine. If you get anything else,
you have an old Intel Pentium CPU with a floating-point division bug.
• Be the customer. Try to use the system as a lay user. To get a glimpse of this, get a person
who has no idea of the application to use it for a while and you will be amazed to see the number
of problems the person seem to come across. As you can see, there is no procedure involved.
Doing this could actually cause the system to encounter an array of unexpected tests –
repetition, stress, load, race etc.
• Build your credibility. Credibility is like quality that includes reliability, knowledge,
consistency, reputation, trust, attitude and attention to detail. It is not instant but should be built
over time and gives voice to the testers in the organization. Your keys to build credibility –
identify your strengths and weaknesses, build good relations, demonstrate competency, be
willing to admit mistakes, re-assess and adjust.
• Test what you observe. It is very important that you test what you can observe and have
access to. Writing creative test cases can help only when you have the opportunity to observe the
results. So, assume nothing.
• Not all bugs you find will be fixed. Deciding which bugs will be fixed and which won’t is a
risk-based decision. Several reasons why your bug might not be fixed is when there is no enough
time, the bug is dismissed for a new feature, fixing it might be very risky or it may not be worth
it because it occurs infrequently or has a work around where the user can prevent or avoid the
bug. Making a wrong decision can be disastrous.
• Review competitive products. Gaining a good insight into various products of the same
kind and getting to know their functionality and general behavior will help you design different
test cases and to understand the strengths and weaknesses of your application. This will also
enable you to add value and suggest new features and enhancements to your product.
• Follow standards and processes. As a tester, your need to conform to the standards and
guidelines set by the organization. These standards pertain to reporting hierarchy, coding,
documentation, testing, reporting bugs, using automated tools etc.
10. Beginners Guide To Software Testing
Symbiosys Technologies 10
2. Introduction
Software Life Cycle
The software life cycle typically includes the following: requirements analysis, design, coding,
testing, installation and maintenance. In between, there can be a requirement to provide
Operations and support activities for the product.
Requirements Analysis. Software organizations provide solutions to customer requirements by
developing appropriate software that best suits their specifications. Thus, the life of software
starts with origin of requirements. Very often, these requirements are vague, emergent and
always subject to change.
Analysis is performed to - To conduct in depth analysis of the proposed project, To evaluate for
technical feasibility, To discover how to partition the system, To identify which areas of the
requirements need to be elaborated from the customer, To identify the impact of changes to the
requirements, To identify which requirements should be allocated to which components.
Design and Specifications. The outcome of requirements analysis is the requirements
specification. Using this, the overall design for the intended software is developed.
Activities in this phase - Perform Architectural Design for the software, Design Database (If
applicable), Design User Interfaces, Select or Develop Algorithms (If Applicable), Perform
Detailed Design.
Coding. The development process tends to run iteratively through these phases rather than
linearly; several models (spiral, waterfall etc.) have been proposed to describe this process.
Activities in this phase - Create Test Data, Create Source, Generate Object Code, Create
Operating Documentation, Plan Integration, Perform Integration
Testing. The process of using the developed system with the intent to find errors.
Defects/flaws/bugs found at this stage will be sent back to the developer for a fix and have to be
re-tested. This phase is iterative as long as the bugs are fixed to meet the requirements.
Activities in this phase - Plan Verification and Validation, Execute Verification and validation
Tasks, Collect and Analyze Metric Data, Plan Testing, Develop Test Requirements, Execute Tests
Installation. The so developed and tested software will finally need to be installed at the client
place. Careful planning has to be done to avoid problems to the user after installation is done.
Activities in this phase - Plan Installation, Distribution of Software, Installation of Software,
Accept Software in Operational Environment.
Operation and Support. Support activities are usually performed by the organization that
developed the software. Both the parties usually decide on these activities before the system is
developed.
Activities in this phase - Operate the System, Provide Technical Assistance and Consulting,
Maintain Support Request Log.
Maintenance. The process does not stop once it is completely implemented and installed at user
place; this phase undertakes development of new features, enhancements etc.
Activities in this phase - Reapplying Software Life Cycle.
11. Beginners Guide To Software Testing
Symbiosys Technologies 11
Various Life Cycle Models
The way you approach a particular application for testing greatly depends on the life cycle model
it follows. This is because, each life cycle model places emphasis on different aspects of the
software i.e. certain models provide good scope and time for testing whereas some others don’t.
So, the number of test cases developed, features covered, time spent on each issue depends on
the life cycle model the application follows.
No matter what the life cycle model is, every application undergoes the same phases described
above as its life cycle.
Following are a few software life cycle models, their advantages and disadvantages.
Waterfall Model Prototyping Model Spiral Model
Strengths:
•Emphasizes completion of
one phase before moving
on
•Emphasises early
planning, customer input,
and design
•Emphasises testing as an
integral part of the life
cycle
•Provides quality gates at
each life cycle phase
Weakness:
•Depends on capturing
and freezing requirements
early in the life cycle
•Depends on separating
requirements from design
• Feedback is only from
testing phase to any
previous stage
•Not feasible in some
organizations
• Emphasises products
rather than processes
Strengths:
•Requirements can be
set earlier and more
reliably
•Requirements can be
communicated more
clearly and completely
between developers and
clients
•Requirements and
design options can be
investigated quickly and
with low cost
•More requirements and
design faults are caught
early
Weakness:
•Requires a prototyping
tool and expertise in
using it – a cost for the
development
organisation
•The prototype may
become the production
system
Strengths:
• It promotes reuse of existing software
in early stages of development.
• Allows quality objectives to be
formulated during development.
• Provides preparation for eventual
evolution of the software product.
• Eliminates errors and unattractive
alternatives early.
• It balances resource expenditure.
• Doesn’t involve separate approaches
for software development and software
maintenance.
• Provides a viable framework for
integrated Hardware-software system
development.
Weakness:
• This process needs or usually
associated with Rapid Application
Development, which is very difficult
practically.
• The process is more difficult to
manage and needs a very different
approach as opposed to the waterfall
model (Waterfall model has
management techniques like GANTT
charts to assess)
Software Testing Life Cycle
Software Testing Life Cycle consist of six (generic) phases: 1) Planning, 2) Analysis, 3) Design, 4)
Construction, 5) Testing Cycles, 6) Final Testing and Implementation and 7) Post
Implementation. Each phase in the life cycle is described with the respective activities.
Planning. Planning High Level Test plan, QA plan (quality goals), identify – reporting procedures,
problem classification, acceptance criteria, databases for testing, measurement criteria (defect
quantities/severity level and defect origin), project metrics and finally begin the schedule for
project testing. Also, plan to maintain all test cases (manual or automated) in a database.
12. Beginners Guide To Software Testing
Symbiosys Technologies 12
Analysis. Involves activities that - develop functional validation based on Business Requirements
(writing test cases basing on these details), develop test case format (time estimates and priority
assignments), develop test cycles (matrices and timelines), identify test cases to be automated
(if applicable), define area of stress and performance testing, plan the test cycles required for the
project and regression testing, define procedures for data maintenance (backup, restore,
validation), review documentation.
Design. Activities in the design phase - Revise test plan based on changes, revise test cycle
matrices and timelines, verify that test plan and cases are in a database or requisite, continue to
write test cases and add new ones based on changes, develop Risk Assessment Criteria, formalize
details for Stress and Performance testing, finalize test cycles (number of test case per cycle
based on time estimates per test case and priority), finalize the Test Plan, (estimate resources to
support development in unit testing).
Construction (Unit Testing Phase). Complete all plans, complete Test Cycle matrices and
timelines, complete all test cases (manual), begin Stress and Performance testing, test the
automated testing system and fix bugs, (support development in unit testing), run QA acceptance
test suite to certify software is ready to turn over to QA.
Test Cycle(s) / Bug Fixes (Re-Testing/System Testing Phase). Run the test cases (front and
back end), bug reporting, verification, revise/add test cases as required.
Final Testing and Implementation (Code Freeze Phase). Execution of all front end test cases -
manual and automated, execution of all back end test cases - manual and automated, execute all
Stress and Performance tests, provide on-going defect tracking metrics, provide on-going
complexity and design metrics, update estimates for test cases and test plans, document test
cycles, regression testing, and update accordingly.
Post Implementation. Post implementation evaluation meeting can be conducted to review
entire project. Activities in this phase - Prepare final Defect Report and associated metrics,
identify strategies to prevent similar problems in future project, automation team - 1) Review
test cases to evaluate other cases to be automated for regression testing, 2) Clean up automated
test cases and variables, and 3) Review process of integrating results from automated testing in
with results from manual testing.
What is a bug? Why do bugs occur?
A software bug may be defined as a coding error that causes an unexpected defect, fault, flaw, or
imperfection in a computer program. In other words, if a program does not perform as intended,
it is most likely a bug.
There are bugs in software due to unclear or constantly changing requirements, software
complexity, programming errors, timelines, errors in bug tracking, communication gap,
documentation errors, deviation from standards etc.
• Unclear software requirements are due to miscommunication as to what the software should
or shouldn’t do. In many occasions, the customer may not be completely clear as to how the
product should ultimately function. This is especially true when the software is a developed for a
completely new product. Such cases usually lead to a lot of misinterpretations from any or both
sides.
• Constantly changing software requirements cause a lot of confusion and pressure both on the
development and testing teams. Often, a new feature added or existing feature removed can be
linked to the other modules or components in the software. Overlooking such issues causes bugs.
• Also, fixing a bug in one part/component of the software might arise another in a different or
same component. Lack of foresight in anticipating such issues can cause serious problems and
increase in bug count. This is one of the major issues because of which bugs occur since
13. Beginners Guide To Software Testing
Symbiosys Technologies 13
developers are very often subject to pressure related to timelines; frequently changing
requirements, increase in the number of bugs etc.
• Designing and re-designing, UI interfaces, integration of modules, database management all
these add to the complexity of the software and the system as a whole.
• Fundamental problems with software design and architecture can cause problems in
programming. Developed software is prone to error as programmers can make mistakes too. As
a tester you can check for, data reference/declaration errors, control flow errors, parameter
errors, input/output errors etc.
• Rescheduling of resources, re-doing or discarding already completed work, changes in
hardware/software requirements can affect the software too. Assigning a new developer to the
project in midway can cause bugs. This is possible if proper coding standards have not been
followed, improper code documentation, ineffective knowledge transfer etc. Discarding a portion
of the existing code might just leave its trail behind in other parts of the software; overlooking or
not eliminating such code can cause bugs. Serious bugs can especially occur with larger projects,
as it gets tougher to identify the problem area.
• Programmers usually tend to rush as the deadline approaches closer. This is the time when
most of the bugs occur. It is possible that you will be able to spot bugs of all types and severity.
• Complexity in keeping track of all the bugs can again cause bugs by itself. This gets harder
when a bug has a very complex life cycle i.e. when the number of times it has been closed, re-
opened, not accepted, ignored etc goes on increasing.
Bug Life Cycle
Bug Life Cycle starts with an unintentional software bug/behavior and ends when the assigned
developer fixes the bug. A bug when found should be communicated and assigned to a developer
that can fix it. Once fixed, the problem area should be re-tested. Also, confirmation should be
made to verify if the fix did not create problems elsewhere. In most of the cases, the life cycle
gets very complicated and difficult to track making it imperative to have a bug/defect tracking
system in place.
See Chapter 7 – Defect Tracking
Following are the different phases of a Bug Life Cycle:
Open: A bug is in Open state when a tester identifies a problem area
Accepted: The bug is then assigned to a developer for a fix. The developer then accepts if valid.
Not Accepted/Won’t fix: If the developer considers the bug as low level or does not accept it
as a bug, thus pushing it into Not Accepted/Won’t fix state.
Such bugs will be assigned to the project manager who will decide if the bug needs a fix. If it
needs, then assigns it back to the developer, and if it doesn’t, then assigns it back to the tester
who will have to close the bug.
Pending: A bug accepted by the developer may not be fixed immediately. In such cases, it can
be put under Pending state.
Fixed: Programmer will fix the bug and resolves it as Fixed.
Close: The fixed bug will be assigned to the tester who will put it in the Close state.
Re-Open: Fixed bugs can be re-opened by the testers in case the fix produces problems
elsewhere.
14. Beginners Guide To Software Testing
Symbiosys Technologies 14
The image below clearly shows the Bug Life Cycle and how a bug can be tracked using Bug
Tracking Tools (BTT)
Cost of fixing bugs
Costs are logarithmic; they increase in size tenfold as the time increases. A bug found and fixed
during the early stages – requirements or product spec stage can be fixed by a brief interaction
with the concerned and might cost next to nothing.
During coding, a swiftly spotted mistake may take only very less effort to fix. During integration
testing, it costs the paperwork of a bug report and a formally documented fix, as well as the
delay and expense of a re-test.
During system testing it costs even more time and may delay delivery. Finally, during operations
it may cause anything from a nuisance to a system failure, possibly with catastrophic
consequences in a safety-critical system such
as an aircraft or an emergency service.
When can testing be stopped/reduced?
It is difficult to determine when exactly to stop testing. Here are a few common factors that help
you decide when you can stop or reduce testing:
• Deadlines (release deadlines, testing deadlines, etc.)
• Test cases completed with certain percentage passed
15. Beginners Guide To Software Testing
Symbiosys Technologies 15
• Test budget depleted
• Coverage of code/functionality/requirements reaches a specified point
• Bug rate falls below a certain level
• Beta or alpha testing period ends
3. Software Testing Levels, Types, Terms and Definitions
Testing Levels and Types
There are basically three levels of testing i.e. Unit Testing, Integration Testing and System
Testing. Various types of testing come under these levels.
Unit Testing
To verify a single program or a section of a single program
Integration Testing
To verify interaction between system components
Prerequisite: unit testing completed on all components that compose a system
System Testing
To verify and validate behaviors of the entire system against the original system objectives
Software testing is a process that identifies the correctness, completeness, and quality of
software.
Following is a list of various types of software testing and their definitions in a random order:
• Formal Testing: Performed by test engineers
• Informal Testing: Performed by the developers
• Manual Testing: That part of software testing that requires human input, analysis, or
evaluation.
• Automated Testing: Software testing that utilizes a variety of tools to automate the testing
process. Automated testing still requires a skilled quality assurance professional with knowledge
of the automation tools and the software being tested to set up the test cases.
• Black box Testing: Testing software without any knowledge of the back-end of the system,
structure or language of the module being tested. Black box test cases are written from a
definitive source document, such as a specification or requirements document.
• White box Testing: Testing in which the software tester has knowledge of the back-end,
structure and language of the software, or at least its purpose.
• Unit Testing: Unit testing is the process of testing a particular complied program, i.e., a
window, a report, an interface, etc. independently as a stand-alone component/program. The
types and degrees of unit tests can vary among modified and newly created programs. Unit
testing is mostly performed by the programmers who are also responsible for the creation of the
necessary unit test data.
• Incremental Testing: Incremental testing is partial testing of an incomplete product. The
goal of incremental testing is to provide an early feedback to software developers.
• System Testing: System testing is a form of black box testing. The purpose of system
testing is to validate an application's accuracy and completeness in performing the functions as
designed.
• Integration Testing: Testing two or more modules or functions together with the intent of
finding interface defects between the modules/functions.
• System Integration Testing: Testing of software components that have been distributed
across multiple platforms (e.g., client, web server, application server, and database server) to
produce failures caused by system integration defects (i.e. defects involving distribution and
back-office integration).
16. Beginners Guide To Software Testing
Symbiosys Technologies 16
• Functional Testing: Verifying that a module functions as stated in the specification and
establishing confidence that a program does what it is supposed to do.
• End-to-end Testing: Similar to system testing - testing a complete application in a situation
that mimics real world use, such as interacting with a database, using network communication, or
interacting with other hardware, application, or system.
• Sanity Testing: Sanity testing is performed whenever cursory testing is sufficient to prove
the application is functioning according to specifications. This level of testing is a subset of
regression testing. It normally includes testing basic GUI functionality to demonstrate
connectivity to the database, application servers, printers, etc.
• Regression Testing: Testing with the intent of determining if bug fixes have been successful
and have not created any new problems.
• Acceptance Testing: Testing the system with the intent of confirming readiness of the
product and customer acceptance. Also known as User Acceptance Testing.
• Adhoc Testing: Testing without a formal test plan or outside of a test plan. With some
projects this type of testing is carried out as an addition to formal testing. Sometimes, if testing
occurs very late in the development cycle, this will be the only kind of testing that can be
performed – usually done by skilled testers. Sometimes ad hoc testing is referred to as
exploratory testing.
• Configuration Testing: Testing to determine how well the product works with a broad range
of hardware/peripheral equipment configurations as well as on different operating systems and
software.
• Load Testing: Testing with the intent of determining how well the product handles
competition for system resources. The competition may come in the form of network traffic, CPU
utilization or memory allocation.
• Stress Testing: Testing done to evaluate the behavior when the system is pushed beyond the
breaking point. The goal is to expose the weak links and to determine if the system manages to
recover gracefully.
• Performance Testing: Testing with the intent of determining how efficiently a product
handles a variety of events. Automated test tools geared specifically to test and fine-tune
performance are used most often for this type of testing.
• Usability Testing: Usability testing is testing for 'user-friendliness'. A way to evaluate and
measure how users interact with a software product or site. Tasks are given to users and
observations are made.
• Installation Testing: Testing with the intent of determining if the product is compatible with
a variety of platforms and how easily it installs.
• Recovery/Error Testing: Testing how well a system recovers from crashes, hardware
failures, or other catastrophic problems.
• Security Testing: Testing of database and network software in order to keep company data
and resources secure from mistaken/accidental users, hackers, and other malevolent attackers.
• Penetration Testing: Penetration testing is testing how well the system is protected against
unauthorized internal or external access, or willful damage. This type of testing usually requires
sophisticated testing techniques.
• Compatibility Testing: Testing used to determine whether other system software
components such as browsers, utilities, and competing software will conflict with the software
being tested.
• Exploratory Testing: Any testing in which the tester dynamically changes what they're
doing for test execution, based on information they learn as they're executing their tests.
• Comparison Testing: Testing that compares software weaknesses and strengths to those of
competitors' products.
• Alpha Testing: Testing after code is mostly complete or contains most of the functionality
and prior to reaching customers. Sometimes a selected group of users are involved. More often
this testing will be performed in-house or by an outside testing firm in close cooperation with the
software engineering department.
17. Beginners Guide To Software Testing
Symbiosys Technologies 17
• Beta Testing: Testing after the product is code complete. Betas are often widely distributed
or even distributed to the public at large.
• Gamma Testing: Gamma testing is testing of software that has all the required features, but
it did not go through all the in-house quality checks.
• Mutation Testing: A method to determine to test thoroughness by measuring the extent to
which the test cases can discriminate the program from slight variants of the program.
• Independent Verification and Validation (IV&V): The process of exercising software with
the intent of ensuring that the software system meets its requirements and user expectations
and doesn't fail in an unacceptable manner. The individual or group doing this work is not part of
the group or organization that developed the software.
• Pilot Testing: Testing that involves the users just before actual release to ensure that users
become familiar with the release contents and ultimately accept it. Typically involves many users,
is conducted over a short period of time and is tightly controlled. (See beta testing)
• Parallel/Audit Testing: Testing where the user reconciles the output of the new system to
the output of the current system to verify the new system performs the operations correctly.
• Glass Box/Open Box Testing: Glass box testing is the same as white box testing. It is a
testing approach that examines the application's program structure, and derives test cases from
the application's program logic.
• Closed Box Testing: Closed box testing is same as black box testing. A type of testing that
considers only the functionality of the application.
• Bottom-up Testing: Bottom-up testing is a technique for integration testing. A test engineer
creates and uses test drivers for components that have not yet been developed, because, with
bottom-up testing, low-level components are tested first. The objective of bottom-up testing is to
call low-level components first, for testing purposes.
• Smoke Testing: A random test conducted before the delivery and after complete testing.
Testing Terms
• Bug: A software bug may be defined as a coding error that causes an unexpected defect,
fault or flaw. In other words, if a program does not perform as intended, it is most likely a bug.
• Error: A mismatch between the program and its specification is an error in the program.
• Defect: Defect is the variance from a desired product attribute (it can be a wrong, missing or
extra data). It can be of two types – Defect from the product or a variance from customer/user
expectations. It is a flaw in the software system and has no impact until it affects the
user/customer and operational system. 90% of all the defects can be caused by process
problems.
• Failure: A defect that causes an error in operation or negatively impacts a user/ customer.
• Quality Assurance: Is oriented towards preventing defects. Quality Assurance ensures all
parties concerned with the project adhere to the process and procedures, standards and
templates and test readiness reviews.
• Quality Control: quality control or quality engineering is a set of measures taken to ensure
that defective products or services are not produced, and that the design meets performance
requirements.
• Verification: Verification ensures the product is designed to deliver all functionality to the
customer; it typically involves reviews and meetings to evaluate documents, plans, code,
requirements and specifications; this can be done with checklists, issues lists, walkthroughs and
inspection meetings.
• Validation: Validation ensures that functionality, as defined in requirements, is the intended
behavior of the product; validation typically involves actual testing and takes place after
verifications are completed.
18. Beginners Guide To Software Testing
Symbiosys Technologies 18
4. Most common software errors
Following are the most common software errors that aid you in software testing. This helps you
to identify errors systematically and increases the efficiency and productivity of software testing.
Types of errors with examples
• User Interface Errors: Missing/Wrong Functions, Doesn’t do what the user expects, Missing
information, Misleading, Confusing information, Wrong content in Help text, Inappropriate error
messages. Performance issues - Poor responsiveness, Can't redirect output, Inappropriate use of
key board
• Error Handling: Inadequate - protection against corrupted data, tests of user input, version
control; Ignores – overflow, data comparison, Error recovery – aborting errors, recovery from
hardware problems.
• Boundary related errors: Boundaries in loop, space, time, memory, mishandling of cases
outside boundary.
• Calculation errors: Bad Logic, Bad Arithmetic, Outdated constants, Calculation errors,
Incorrect conversion from one data representation to another, Wrong formula, Incorrect
approximation.
• Initial and Later states: Failure to - set data item to zero, to initialize a loop-control
variable, or re-initialize a pointer, to clear a string or flag, Incorrect initialization.
• Control flow errors: Wrong returning state assumed, Exception handling based exits, Stack
underflow/overflow, Failure to block or un-block interrupts, Comparison sometimes yields wrong
result, Missing/wrong default, Data Type errors.
• Errors in Handling or Interpreting Data: Un-terminated null strings, Overwriting a file
after an error exit or user abort.
• Race Conditions: Assumption that one event or task finished before another begins,
Resource races, Tasks starts before its prerequisites are met, Messages cross or don't arrive in
the order sent.
• Load Conditions: Required resources are not available, No available large memory area, Low
priority tasks not put off, Doesn't erase old files from mass storage, Doesn't return unused
memory.
• Hardware: Wrong Device, Device unavailable, Underutilizing device intelligence,
Misunderstood status or return code, Wrong operation or instruction codes.
• Source, Version and ID Control: No Title or version ID, Failure to update multiple copies of
data or program files.
• Testing Errors: Failure to notice/report a problem, Failure to use the most promising test
case, Corrupted data files, Misinterpreted specifications or documentation, Failure to make it clear
how to reproduce the problem, Failure to check for unresolved problems just before release,
Failure to verify fixes, Failure to provide summary report.
19. Beginners Guide To Software Testing
Symbiosys Technologies 19
5. The Test Planning Process
What is a Test Strategy? What are its Components?
Test Policy - A document characterizing the organization’s philosophy towards software testing.
Test Strategy - A high-level document defining the test phases to be performed and the testing
within those phases for a programme. It defines the process to be followed in each project. This
sets the standards for the processes, documents, activities etc. that should be followed for each
project.
For example, if a product is given for testing, you should decide if it is better to use black-box
testing or white-box testing and if you decide to use both, when will you apply each and to which
part of the software? All these details need to be specified in the Test Strategy.
Project Test Plan - a document defining the test phases to be performed and the testing within
those phases for a particular project.
A Test Strategy should cover more than one project and should address the following issues: An
approach to testing high risk areas first, Planning for testing, How to improve the process based
on previous testing, Environments/data used, Test management - Configuration management,
Problem management, What Metrics are followed, Will the tests be automated and if so which
tools will be used, What are the Testing Stages and Testing Methods, Post Testing Review
process, Templates.
Test planning needs to start as soon as the project requirements are known. The first document
that needs to be produced then is the Test Strategy/Testing Approach that sets the high level
approach for testing and covers all the other elements mentioned above.
Test Planning – Sample Structure
Once the approach is understood, a detailed test plan can be written. Usually, this test plan can
be written in different styles. Test plans can completely differ from project to project in the same
organization.
IEEE SOFTWARE TEST DOCUMENTATION Std 829-1998 - TEST PLAN
Purpose
To describe the scope, approach, resources, and schedule of the testing activities. To identify the
items being tested, the features to be tested, the testing tasks to be performed, the personnel
responsible for each task, and the risks associated with this plan.
OUTLINE
A test plan shall have the following structure:
• Test plan identifier. A unique identifier assign to the test plan.
• Introduction: Summarized the software items and features to be tested and the need for
them to be included.
• Test items: Identify the test items, their transmittal media which impact their
• Features to be tested
• Features not to be tested
• Approach
• Item pass/fail criteria
• Suspension criteria and resumption requirements
• Test deliverables
20. Beginners Guide To Software Testing
Symbiosys Technologies 20
• Testing tasks
• Environmental needs
• Responsibilities
• Staffing and training needs
• Schedule
• Risks and contingencies
• Approvals
Major Test Planning Tasks
Like any other process in software testing, the major tasks in test planning are to – Develop Test
Strategy, Critical Success Factors, Define Test Objectives, Identify Needed Test Resources, Plan
Test Environment, Define Test Procedures, Identify Functions To Be Tested, Identify Interfaces
With Other Systems or Components, Write Test Scripts, Define Test Cases, Design Test Data,
Build Test Matrix, Determine Test Schedules, Assemble Information, Finalize the Plan
21. Beginners Guide To Software Testing
Symbiosys Technologies 21
6. Test Case Development
A test case is a detailed procedure that fully tests a feature or an aspect of a feature. While the
test plan describes what to test, a test case describes how to perform a particular test. You need
to develop test cases for each test listed in the test plan.
General Guidelines
As a tester, the best way to determine the compliance of the software to requirements is by
designing effective test cases that provide a thorough test of a unit. Various test case design
techniques enable the testers to develop effective test cases. Besides, implementing the design
techniques, every tester needs to keep in mind general guidelines that will aid in test case
design:
a. The purpose of each test case is to run the test in the simplest way possible. [Suitable
techniques - Specification derived tests, Equivalence partitioning]
b. Concentrate initially on positive testing i.e. the test case should show that the software does
what it is intended to do. [Suitable techniques - Specification derived tests, Equivalence
partitioning, State-transition testing]
c. Existing test cases should be enhanced and further test cases should be designed to show
that the software does not do anything that it is not specified to do i.e. Negative Testing [Suitable
techniques - Error guessing, Boundary value analysis, Internal boundary value testing, State-
transition testing]
d. Where appropriate, test cases should be designed to address issues such as performance,
safety requirements and security requirements [Suitable techniques - Specification derived tests]
e. Further test cases can then be added to the unit test specification to achieve specific test
coverage objectives. Once coverage tests have been designed, the test procedure can be
developed and the tests executed [Suitable techniques - Branch testing, Condition testing, Data
definition-use testing, State-transition testing]
Test Case – Sample Structure
The manner in which a test case is depicted varies between organizations. Anyhow, many test
case templates are in the form of a table, for example, a 5-column table with fields:
Test Case
ID
Test Case
Description
Test Dependency/
Setup
Input Data Requirements/
Steps
Expected
Results
Pass/Fail
Test Case Design Techniques
The test case design techniques are broadly grouped into two categories: Black box techniques,
White box techniques and other techniques that do not fall under either category.
Black Box (Functional) White Box (Structural) Other
- Specification derived tests
- Equivalence partitioning
- Boundary Value Analysis
- State-Transition Testing
- Branch Testing
- Condition Testing
- Data Definition - Use Testing
- Internal boundary value testing
- Error guessing
22. Beginners Guide To Software Testing
Symbiosys Technologies 22
Specification Derived Tests
As the name suggests, test cases are designed by walking through the relevant specifications. It
is a positive test case design technique.
Equivalence Partitioning
Equivalence partitioning is the process of taking all of the possible test values and placing them
into classes (partitions or groups). Test cases should be designed to test one value from each
class. Thereby, it uses fewest test cases to cover the maximum input requirements.
For example, if a program accepts integer values only from 1 to 10. The possible test cases for
such a program would be the range of all integers. In such a program, all integers upto to 0 and
above 10 will cause an error. So, it is reasonable to assume that if 11 will fail, all values above it
will fail and vice versa.
If an input condition is a range of values, let one valid equivalence class be the range (0 or 10 in
this example). Let the values below and above the range be two respective invalid equivalence
values (i.e. -1 and 11). Therefore, the above three partition values can be used as test cases for
the above example.
Boundary Value Analysis
This is a selection technique where the test data are chosen to lie along the boundaries of the
input domain or the output range. This technique is often called as stress testing and
incorporates a degree of negative testing in the test design by anticipating that errors will occur
at or around the partition boundaries.
For example, a field is required to accept amounts of money between $0 and $10. As a tester,
you need to check if it means upto and including $10 and $9.99 and if $10 is acceptable. So, the
boundary values are $0, $0.01, $9.99 and $10.
Now, the following tests can be executed. A negative value should be rejected, 0 should be
accepted (this is on the boundary), $0.01 and $9.99 should be accepted, null and $10 should be
rejected. In this way, it uses the same concept of partitions as equivalence partitioning.
State Transition Testing
As the name suggests, test cases are designed to test the transition between the states by
creating the events that cause the transition.
Branch Testing
In branch testing, test cases are designed to exercise control flow branches or decision points in a
unit. This is usually aimed at achieving a target level of Decision Coverage. Branch Coverage,
need to test both branches of IF and ELSE. All branches and compound conditions (e.g. loops and
array handling) within the branch should be exercised at least once.
Condition Testing
The object of condition testing is to design test cases to show that the individual components of
logical conditions and combinations of the individual components are correct. Test cases are
designed to test the individual elements of logical expressions, both within branch conditions and
within other expressions in a unit.
Data Definition – Use Testing
Data definition-use testing designs test cases to test pairs of data definitions and uses. Data
definition is anywhere that the value of a data item is set. Data use is anywhere that a data item
23. Beginners Guide To Software Testing
Symbiosys Technologies 23
is read or used. The objective is to create test cases that will drive execution through paths
between specific definitions and uses.
Internal Boundary Value Testing
In many cases, partitions and their boundaries can be identified from a functional specification for
a unit, as described under equivalence partitioning and boundary value analysis above. However,
a unit may also have internal boundary values that can only be identified from a structural
specification.
Error Guessing
It is a test case design technique where the testers use their experience to guess the possible
errors that might occur and design test cases accordingly to uncover them.
Using any or a combination of the above described test case design techniques; you can develop
effective test cases.
What is a Use Case?
A use case describes the system’s behavior under various conditions as it responds to a request
from one of the users. The user initiates an interaction with the system to accomplish some goal.
Different sequences of behavior, or scenarios, can unfold, depending on the particular requests
made and conditions surrounding the requests. The use case collects together those different
scenarios.
Use cases are popular largely because they tell coherent stories about how the system will
behave in use. The users of the system get to see just what this new system will be and get to
react early.
24. Beginners Guide To Software Testing
Symbiosys Technologies 24
7. Defect Tracking
What is a defect?
As discussed earlier, defect is the variance from a desired product attribute (it can be a wrong,
missing or extra data). It can be of two types – Defect from the product or a variance from
customer/user expectations. It is a flaw in the software system and has no impact until it affects
the user/customer and operational system.
What are the defect categories?
With the knowledge of testing so far gained, you can now be able to categorize the defects you
have found. Defects can be categorized into different types basing on the core issues they
address. Some defects address security or database issues while others may refer to functionality
or UI issues.
Security Defects: Application security defects generally involve improper handling of data sent
from the user to the application. These defects are the most severe and given highest priority for
a fix.
Examples:
- Authentication: Accepting an invalid username/password
- Authorization: Accessibility to pages though permission not given
Data Quality/Database Defects: Deals with improper handling of data in the database.
Examples:
- Values not deleted/inserted into the database properly
- Improper/wrong/null values inserted in place of the actual values
Critical Functionality Defects: The occurrence of these bugs hampers the crucial functionality
of the application.
Examples:
- Exceptions
Functionality Defects: These defects affect the functionality of the application.
Examples:
- All Javascript errors
- Buttons like Save, Delete, Cancel not performing their intended functions
- A missing functionality (or) a feature not functioning the way it is intended to
- Continuous execution of loops
User Interface Defects: As the name suggests, the bugs deal with problems related to UI are
usually considered less severe.
Examples:
- Improper error/warning/UI messages
- Spelling mistakes
- Alignment problems
How is a defect reported?
25. Beginners Guide To Software Testing
Symbiosys Technologies 25
Once the test cases are developed using the appropriate techniques, they are executed which is
when the bugs occur. It is very important that these bugs be reported as soon as possible
because, the earlier you report a bug, the more time remains in the schedule to get it fixed.
Simple example is that you report a wrong functionality documented in the Help file a few months
before the product release, the chances that it will be fixed are very high. If you report the same
bug few hours before the release, the odds are that it wont be fixed. The bug is still the same
though you report it few months or few hours before the release, but what matters is the time.
It is not just enough to find the bugs; these should also be reported/communicated clearly and
efficiently, not to mention the number of people who will be reading the defect.
Defect tracking tools (also known as bug tracking tools, issue tracking tools or problem
trackers) greatly aid the testers in reporting and tracking the bugs found in software
applications. They provide a means of consolidating a key element of project information in
one place. Project managers can then see which bugs have been fixed, which are
outstanding and how long it is taking to fix defects. Senior management can use reports to
understand the state of the development process.
How descriptive should your bug/defect report be?
You should provide enough detail while reporting the bug keeping in mind the people who will use
it – test lead, developer, project manager, other testers, new testers assigned etc. This means
that the report you will write should be concise, straight and clear. Following are the details your
report should contain:
- Bug Title
- Bug identifier (number, ID, etc.)
- The application name or identifier and version
- The function, module, feature, object, screen, etc. where the bug occurred
- Environment (OS, Browser and its version)
- Bug Type or Category/Severity/Priority
o Bug Category: Security, Database, Functionality (Critical/General), UI
o Bug Severity: Severity with which the bug affects the application – Very High, High,
Medium, Low, Very Low
o Bug Priority: Recommended priority to be given for a fix of this bug – P0, P1, P2, P3,
P4, P5 (P0-Highest, P5-Lowest)
- Bug status (Open, Pending, Fixed, Closed, Re-Open)
- Test case name/number/identifier
- Bug description
- Steps to Reproduce
- Actual Result
- Tester Comments
What does the tester do when the defect is fixed?
Once the reported defect is fixed, the tester needs to re-test to confirm the fix. This is usually
done by executing the possible scenarios where the bug can occur. Once retesting is completed,
the fix can be confirmed and the bug can be closed. This marks the end of the bug life cycle.
26. Beginners Guide To Software Testing
Symbiosys Technologies 26
8. Types of Test Reports
The documents outlined in the IEEE Standard of Software Test Documentation covers test
planning, test specification, and test reporting.
Test reporting covers four document types:
1. A Test Item Transmittal Report identifies the test items being transmitted for testing from
the development to the testing group in the event that a formal beginning of test execution is
desired
Details to be included in the report - Purpose, Outline, Transmittal-Report Identifier, Transmitted
Items, Location, Status, and Approvals.
2. A Test Log is used by the test team to record what occurred during test execution
Details to be included in the report - Purpose, Outline, Test-Log Identifier, Description, Activity
and Event Entries, Execution Description, Procedure Results, Environmental Information,
Anomalous Events, Incident-Report Identifiers
3. A Test Incident report describes any event that occurs during the test execution that
requires further investigation
Details to be included in the report - Purpose, Outline, Test-Incident-Report Identifier, Summary,
Impact
4. A test summary report summarizes the testing activities associated with one or more test-
design specifications
Details to be included in the report - Purpose, Outline, Test-Summary-Report Identifier,
Summary, Variances, Comprehensiveness Assessment, Summary of Results, Summary of
Activities, and Approvals
27. Beginners Guide To Software Testing
Symbiosys Technologies 27
9. Software Test Automation
Automating testing is no different from a programmer using a coding language to write programs
to automate any manual process. One of the problems with testing large systems is that it can
go beyond the scope of small test teams. Because only a small number of testers are available
the coverage and depth of testing provided are inadequate for the task at hand.
Expanding the test team beyond a certain size also becomes problematic with increase in work
over head. Feasible way to avoid this without introducing a loss of quality is through appropriate
use of tools that can expand individual’s capacity enormously while maintaining the focus (depth)
of testing upon the critical elements.
Consider the following factors that help determine the use of automated testing tools:
• Examine your current testing process and determine where it needs to be adjusted for using
automated test tools.
• Be prepared to make changes in the current ways you perform testing.
• Involve people who will be using the tool to help design the automated testing process.
• Create a set of evaluation criteria for functions that you will want to consider when using the
automated test tool. These criteria may include the following:
o Test repeatability
o Criticality/risk of applications
o Operational simplicity
o Ease of automation
o Level of documentation of the function (requirements, etc.)
• Examine your existing set of test cases and test scripts to see which ones are most
applicable for test automation.
• Train people in basic test-planning skills.
Approaches to Automation
There are three broad options in Test Automation:
Full Manual Partial Automation Full Automation
Reliance on manual testing Redundancy possible but
requires duplication of
effort
Reliance on automated
testing
Responsive and flexible Flexible Relatively inflexible
Inconsistent Consistent Very consistent
Low implementation cost - High implementation cost
High repetitive cost Automates repetitive tasks
and high return tasks
Economies of scale in
repetition, regression etc
Required for automation - -
Low skill requirements - High skill requirements
Fully manual testing has the benefit of being relatively cheap and effective. But as quality of
the product improves the additional cost for finding further bugs becomes more expensive. Large
scale manual testing also implies large scale testing teams with the related costs of space,
28. Beginners Guide To Software Testing
Symbiosys Technologies 28
overhead and infrastructure. Manual testing is also far more responsive and flexible than
automated testing but is prone to tester error through fatigue.
Fully automated testing is very consistent and allows the repetitions of similar tests at very
little marginal cost. The setup and purchase costs of such automation are very high however and
maintenance can be equally expensive. Automation is also relatively inflexible and requires
rework in order to adapt to changing requirements.
Partial Automation incorporates automation only where the most benefits can be achieved. The
advantage is that it targets specifically the tasks for automation and thus achieves the most
benefit from them. It also retains a large component of manual testing which maintains the test
teams flexibility and offers redundancy by backing up automation with manual testing. The
disadvantage is that it obviously does not provide as extensive benefits as either extreme
solution.
Choosing the right tool
• Take time to define the tool requirements in terms of technology, process, applications, people
skills, and organization.
• During tool evaluation, prioritize which test types are the most critical to your success and
judge the candidate tools on those criteria.
• Understand the tools and their trade-offs. You may need to use a multi-tool solution to get
higher levels of test-type coverage. For example, you will need to combine the capture/play-
back tool with a load-test tool to cover your performance test cases.
• Involve potential users in the definition of tool requirements and evaluation criteria.
• Build an evaluation scorecard to compare each tool's performance against a common set of
criteria. Rank the criteria in terms of relative importance to the organization.
Top Ten Challenges of Software Test Automation
1. Buying the Wrong Tool
2. Inadequate Test Team Organization
3. Lack of Management Support
4. Incomplete Coverage of Test Types by the selected tool
5. Inadequate Tool Training
6. Difficulty using the tool
7. Lack of a Basic Test Process or Understanding of What to Test
8. Lack of Configuration Management Processes
9. Lack of Tool Compatibility and Interoperability
10. Lack of Tool Availability
29. Beginners Guide To Software Testing
Symbiosys Technologies 29
10. Introduction To Software Standards
Capability Maturity Model - Developed by the software community in 1986 with leadership
from the SEI. The CMM describes the principles and practices underlying software process
maturity. It is intended to help software organizations improve the maturity of their software
processes in terms of an evolutionary path from ad hoc, chaotic processes to mature, disciplined
software processes. The focus is on identifying key process areas and the exemplary practices
that may comprise a disciplined software process.
What makes up the CMM? The CMM is organized into five maturity levels:
• Initial
• Repeatable
• Defined
• Manageable
• Optimizing
Except for Level 1, each maturity level decomposes into several key process areas that indicate
the areas an organization should focus on to improve its software process.
Level 1 - Initial Level: Disciplined process, Standard, Consistent process, Predictable process,
Continuously Improving process
Level 2 – Repeatable: Key practice areas - Requirements management, Software project
planning, Software project tracking & oversight, Software subcontract management, Software
quality assurance, Software configuration management
Level 3 – Defined: Key practice areas - Organization process focus, Organization process
definition, Training program, Integrated software management, Software product engineering,
Intergroup coordination, Peer reviews
Level 4 – Manageable: Key practice areas - Quantitative Process Management, Software Quality
Management
Level 5 – Optimizing: Key practice areas - Defect prevention, Technology change management,
Process change management
Six Sigma
Six Sigma is a quality management program to achieve "six sigma" levels of quality. It was
pioneered by Motorola in the mid-1980s and has spread to many other manufacturing companies,
notably General Electric Corporation (GE).
Six Sigma is a rigorous and disciplined methodology that uses data and statistical analysis to
measure and improve a company's operational performance by identifying and eliminating
"defects" from manufacturing to transactional and from product to service. Commonly defined as
3.4 defects per million opportunities, Six Sigma can be defined and understood at three distinct
levels: metric, methodology and philosophy...
Training Sigma processes are executed by Six Sigma Green Belts and Six Sigma Black Belts, and
are overseen by Six Sigma Master Black Belts.
ISO
30. Beginners Guide To Software Testing
Symbiosys Technologies 30
ISO - International Organization for Standardization is a network of the national standards
institutes of 150 countries, on the basis of one member per country, with a Central Secretariat in
Geneva, Switzerland, that coordinates the system. ISO is a non-governmental organization. ISO
has developed over 13, 000 International Standards on a variety of subjects.
11. Software Testing Certifications
Certification Information for Software QA and Test Engineers
CSQE - ASQ (American Society for Quality)’s program for CSQE (Certified Software Quality
Engineer) - information on requirements, outline of required 'Body of Knowledge', listing of study
references and more.
CSQA/CSTE - QAI (Quality Assurance Institute)'s program for CSQA (Certified Software Quality
Analyst) and CSTE (Certified Software Test Engineer) certifications.
ISEB Software Testing Certifications - The British Computer Society maintains a program of 2
levels of certifications - ISEB Foundation Certificate, Practitioner Certificate.
ISTQB Certified Tester - The International Software Testing Qualifications Board is a part of the
European Organization for Quality - Software Group, based in Germany. The certifications are
based on experience, a training course and test. Two levels are available: Foundation and
Advanced.
12. Facts about Software Engineering
Following are some facts that can help you gain a better insight into the realities of Software
Engineering.
1. The best programmers are up to 28 times better than the worst programmers.
2. New tools/techniques cause an initial LOSS of productivity/quality.
3. The answer to a feasibility study is almost always “yes”.
4. A May 2002 report prepared for the National Institute of Standards and Technologies (NIST)(1)
estimates the annual cost of software defects in the United States as $59.5 billion.
5. Reusable components are three times as hard to build
6. For every 25% increase in problem complexity, there is a 100% increase in solution
complexity.
7. 80% of software work is intellectual. A fair amount of it is creative. Little of it is clerical.
8. Requirements errors are the most expensive to fix during production.
9. Missing requirements are the hardest requirement errors to correct.
10. Error-removal is the most time-consuming phase of the life cycle.
11. Software is usually tested at best at the 55-60% (branch) coverage level.
12. 100% coverage is still far from enough.
13. Rigorous inspections can remove up to 90% of errors before the first test case is run.
14. Maintenance typically consumes 40-80% of software costs. It is probably the most important
life cycle phase of software.
31. Beginners Guide To Software Testing
Symbiosys Technologies 31
15. Enhancements represent roughly 60% of maintenance costs.
16. There is no single best approach to software error removal.
13. References
- Software Engineering - Roger S Pressman
- Software Testing - Ron Patton
- Effective Methods of Software Testing - William E. Perry
- Articles by James A Whittaker
14. Internet Links
Following is a of list Internet links that might be useful for further reference:
www.riceconsulting.com
www.softwareqatest.com
www.stickyminds.com
www.software-engineer.org
http://testingfaqs.org
www.ieee.org
http://www.sei.cmu.edu/cmm/
http://www.isixsigma.com/
www.iso.org
Defect Tracking Tools
http://testingfaqs.org/t-track.html List of defect tracking tools. Both commercial and freeware
tools are included.
Hyperlinks for Certifications
CSQE - http://www.asq.org/cert/types/csqe/index.html
CSQA/CSTE - http://www.softwarecertifications.com/
ISEB Software Testing Certifications -
http://www.bcs.org/BCS/Products/Qualifications/ISEB/Areas/SoftTest/
ISTQB Certified Tester - http://www.isqi.org/isqi/eng/cert/ct/