The document discusses verification of software systems through software testing. It begins by outlining typical software development lifecycles and methodologies. It then defines software testing as identifying correctness, completeness, security and quality of software. The document outlines the software testing cycle and introduces testing objectives, limitations, and types of testing. It discusses test planning, cases, automation and documents. Finally, it provides an overview of the Selenium testing tool.
Andreas Grabner maintains that most performance and scalability problems don’t need a large or long running performance test or the expertise of a performance engineering guru. Don’t let anybody tell you that performance is too hard to practice because it actually is not. You can take the initiative and find these often serious defects. Andreas analyzed and spotted the performance and scalability issues in more than 200 applications last year. He shares his performance testing approaches and explores the top problem patterns that you can learn to spot in your apps. By looking at key metrics found in log files and performance monitoring data, you will learn to identify most problems with a single functional test and a simple five-user load test. The problem patterns Andreas explains are applicable to any type of technology and platform. Try out your new skills in your current testing project and take the first step toward becoming a performance diagnostic hero.
Nonfunctional Testing: Examine the Other Side of the CoinTechWell
Creating a highly available, scalable, and high-performing system requires a substantial amount of what we call nonfunctional testing. Developing nonfunctional testing skills is a must for many of today’s quality engineers (QEs). For the past several years, Balaji Arunachalam’s quality team for Intuit Core Services has experienced several highly available and disaster recovery buildup and testing challenges. Their journey includes the evolution of functional QEs into hybrid QEs who are capable of doing both functional and nonfunctional testing. Nonfunctional testing includes capacity, stability, benchmarking, FMEA/RAS, datacenter failover, and scalability testing. Balaji shares nonfunctional testing best practices, learnings, and mistakes they encountered on this journey. If you or your team is ready flip the coin and take a serious look at nonfunctional testing methods, opportunities, challenges, and solutions, this session is for you.
End to End Testing with Quality Enthusiasts: SDET Technologiessdettech
SDET Technologies delivers top notch quality assurance and testing services for various domains across the globe.Consult experts for high end Test automation, performance, security and functional testing services.
Agile testing - Principles and best practicesDr Ganesh Iyer
Slide deck used for delivering one of the popular sessions at PUG Challenge Americas in Boston in 2015. It describes of the basic principles of agile testing and several best practices that we follow in our organization.
Role of Test Automation in Modern Software Delivery PipelinesKasun Kodagoda
This presentation dives into the role of test automation in modern software delivery pipelines and how the expectations on the test automation have changes over time with complex business demands and faster release cycles. And the dive in to details on how Test Automation needs to evolve into Continuous Testing approach to handle the complexities and the speed required in a modern business context.
Selenium RC, Selenium WebDriver and HP LoadRunnerMurageppa-QA
In this Quality Assurance Training session, you will learn about Selenium- Remote Control (RC). Topic covered in this session are:
• Introduction to Selenium RC
• Installing Selenium RC
• Installing Eclipse
• Configuring Selenium RC
• Selenium RC Scripting
For more information, about this quality assurance training, visit this link: https://www.mindsmapped.com/courses/quality-assurance/software-testing-training-with-hands-on-project-on-e-commerce-application/
Andreas Grabner maintains that most performance and scalability problems don’t need a large or long running performance test or the expertise of a performance engineering guru. Don’t let anybody tell you that performance is too hard to practice because it actually is not. You can take the initiative and find these often serious defects. Andreas analyzed and spotted the performance and scalability issues in more than 200 applications last year. He shares his performance testing approaches and explores the top problem patterns that you can learn to spot in your apps. By looking at key metrics found in log files and performance monitoring data, you will learn to identify most problems with a single functional test and a simple five-user load test. The problem patterns Andreas explains are applicable to any type of technology and platform. Try out your new skills in your current testing project and take the first step toward becoming a performance diagnostic hero.
Nonfunctional Testing: Examine the Other Side of the CoinTechWell
Creating a highly available, scalable, and high-performing system requires a substantial amount of what we call nonfunctional testing. Developing nonfunctional testing skills is a must for many of today’s quality engineers (QEs). For the past several years, Balaji Arunachalam’s quality team for Intuit Core Services has experienced several highly available and disaster recovery buildup and testing challenges. Their journey includes the evolution of functional QEs into hybrid QEs who are capable of doing both functional and nonfunctional testing. Nonfunctional testing includes capacity, stability, benchmarking, FMEA/RAS, datacenter failover, and scalability testing. Balaji shares nonfunctional testing best practices, learnings, and mistakes they encountered on this journey. If you or your team is ready flip the coin and take a serious look at nonfunctional testing methods, opportunities, challenges, and solutions, this session is for you.
End to End Testing with Quality Enthusiasts: SDET Technologiessdettech
SDET Technologies delivers top notch quality assurance and testing services for various domains across the globe.Consult experts for high end Test automation, performance, security and functional testing services.
Agile testing - Principles and best practicesDr Ganesh Iyer
Slide deck used for delivering one of the popular sessions at PUG Challenge Americas in Boston in 2015. It describes of the basic principles of agile testing and several best practices that we follow in our organization.
Role of Test Automation in Modern Software Delivery PipelinesKasun Kodagoda
This presentation dives into the role of test automation in modern software delivery pipelines and how the expectations on the test automation have changes over time with complex business demands and faster release cycles. And the dive in to details on how Test Automation needs to evolve into Continuous Testing approach to handle the complexities and the speed required in a modern business context.
Selenium RC, Selenium WebDriver and HP LoadRunnerMurageppa-QA
In this Quality Assurance Training session, you will learn about Selenium- Remote Control (RC). Topic covered in this session are:
• Introduction to Selenium RC
• Installing Selenium RC
• Installing Eclipse
• Configuring Selenium RC
• Selenium RC Scripting
For more information, about this quality assurance training, visit this link: https://www.mindsmapped.com/courses/quality-assurance/software-testing-training-with-hands-on-project-on-e-commerce-application/
(** Test Automation Masters Program: https://www.edureka.co/masters-program/automation-testing-engineer-training **)
This Edureka PPT on "Software Testing Tools" will help you understand how tools make testing software and applications easier and effective. The following are the topics covered in the session:
Introduction to Software Testing
Software Testing Tools
Benefits of Software Testing Tools
Features of Good Testing Tool
How to select the right Testing Tool
Types of Software Testing Tools
Selenium playlist: https://goo.gl/NmuzXE
Selenium Blog playlist: http://bit.ly/2B7C3QR
Software Testing Blog series: http://bit.ly/2UXwdJm
Agile testing for embedded software developmentTom Stiehm
A large part of the success of agile adoptions is due to the automated testing approach used in agile projects. Because many of these techniques were pioneered in the development of web applications it can be hard to see how these techniques can be leveraged for a project where the software being built is for an embedded application. Discover ways to leverage agile testing techniques for embedded systems. Whether you are building a medical device, embedded controller, or Internet of Things device learn how to leverage these testing practices to create fully automated tests that fit into a DevOps build pipeline and help your team create higher quality, more reliable software. Test automation is the best way to maintain and execute a comprehensive suite of regression tests that allows you to take back control of your testing process while increasing test coverage. Learn how to be in control of your test process by stepping up your test automation to the next level.
Embedded development and Internet of Things development is often done on platforms that lack modern software development and test automation tools. The more esoteric or the smaller the target audience, the less likely tool vendors are to create products that directly support the deployment environment. This can make getting started with test automation using older tools that are not as actively supported by vendors can be a challenge that has to be overcome by a team that wants to move toward a Continuous Deployment process.
This session is aimed at people that are trying to adopt agile and continuous delivery with embedded technology, but might be worried that it can’t work in their particular environment due to their industry, technology stack, culture, or regulatory environment.
Why do we need to have software testing happen in a continuous manner? This deck explains the importance of Continuous Integration and a case study of 24x7 Testing.
Static Analysis Techniques For Testing Application Security - Houston Tech FestDenim Group
Static Analysis of software refers to examining source code and other software artifacts without executing them. This presentation looks at how these techniques can be used to identify security defects in applications. Approaches examined will range from simple keyword search methods used to identify calls to banned functions through more sophisticated data flow analysis used to identify more complicated issues such as injection flaws. In addition, a demonstration will be given of two freely-available static analysis tools: FXCop and the beta version of Microsoft’s XSSDetect tool. Finally, some approaches will be presented on how organizations can start using static analysis tools as part of their development and quality assurance processes.
Decoupled System Interface Testing at FedExTechWell
If you work in a large-scale environment, you know how difficult it is to have all the systems “code complete” and ready for testing at the same time. In order to fully test end-to-end scenarios, you must be able to validate results in numerous systems. But what if all those systems are not available for you to begin testing? Chris Reites describes “decoupled testing,” an enterprise-level solution for managing interface data for capture, injection, simulation, and comparison all along your testing paths. Decoupled testing provides the ability to validate and independently test systems without having to rely on end-to-end testing. This is accomplished by capturing intermediate interface transactions at pre-determined, critical points during processing and comparing them against previously captured or generated expected results. Chris shares a case study on how this approach has benefited FedEx on critical customer-facing systems.
Today we need everything reliable and accelerated, so to attain prompt results we are using varied automation testing tools. An automation tool is a piece of software that is run by little human interaction. Different testing tools are used for automation/manual testing, unit testing, performance, web, mobile, etc., more to that we have some open source testing tools as well.
(** Test Automation Masters Program: https://www.edureka.co/masters-program/automation-testing-engineer-training **)
This Edureka PPT on "Software Testing Tools" will help you understand how tools make testing software and applications easier and effective. The following are the topics covered in the session:
Introduction to Software Testing
Software Testing Tools
Benefits of Software Testing Tools
Features of Good Testing Tool
How to select the right Testing Tool
Types of Software Testing Tools
Selenium playlist: https://goo.gl/NmuzXE
Selenium Blog playlist: http://bit.ly/2B7C3QR
Software Testing Blog series: http://bit.ly/2UXwdJm
Agile testing for embedded software developmentTom Stiehm
A large part of the success of agile adoptions is due to the automated testing approach used in agile projects. Because many of these techniques were pioneered in the development of web applications it can be hard to see how these techniques can be leveraged for a project where the software being built is for an embedded application. Discover ways to leverage agile testing techniques for embedded systems. Whether you are building a medical device, embedded controller, or Internet of Things device learn how to leverage these testing practices to create fully automated tests that fit into a DevOps build pipeline and help your team create higher quality, more reliable software. Test automation is the best way to maintain and execute a comprehensive suite of regression tests that allows you to take back control of your testing process while increasing test coverage. Learn how to be in control of your test process by stepping up your test automation to the next level.
Embedded development and Internet of Things development is often done on platforms that lack modern software development and test automation tools. The more esoteric or the smaller the target audience, the less likely tool vendors are to create products that directly support the deployment environment. This can make getting started with test automation using older tools that are not as actively supported by vendors can be a challenge that has to be overcome by a team that wants to move toward a Continuous Deployment process.
This session is aimed at people that are trying to adopt agile and continuous delivery with embedded technology, but might be worried that it can’t work in their particular environment due to their industry, technology stack, culture, or regulatory environment.
Why do we need to have software testing happen in a continuous manner? This deck explains the importance of Continuous Integration and a case study of 24x7 Testing.
Static Analysis Techniques For Testing Application Security - Houston Tech FestDenim Group
Static Analysis of software refers to examining source code and other software artifacts without executing them. This presentation looks at how these techniques can be used to identify security defects in applications. Approaches examined will range from simple keyword search methods used to identify calls to banned functions through more sophisticated data flow analysis used to identify more complicated issues such as injection flaws. In addition, a demonstration will be given of two freely-available static analysis tools: FXCop and the beta version of Microsoft’s XSSDetect tool. Finally, some approaches will be presented on how organizations can start using static analysis tools as part of their development and quality assurance processes.
Decoupled System Interface Testing at FedExTechWell
If you work in a large-scale environment, you know how difficult it is to have all the systems “code complete” and ready for testing at the same time. In order to fully test end-to-end scenarios, you must be able to validate results in numerous systems. But what if all those systems are not available for you to begin testing? Chris Reites describes “decoupled testing,” an enterprise-level solution for managing interface data for capture, injection, simulation, and comparison all along your testing paths. Decoupled testing provides the ability to validate and independently test systems without having to rely on end-to-end testing. This is accomplished by capturing intermediate interface transactions at pre-determined, critical points during processing and comparing them against previously captured or generated expected results. Chris shares a case study on how this approach has benefited FedEx on critical customer-facing systems.
Today we need everything reliable and accelerated, so to attain prompt results we are using varied automation testing tools. An automation tool is a piece of software that is run by little human interaction. Different testing tools are used for automation/manual testing, unit testing, performance, web, mobile, etc., more to that we have some open source testing tools as well.
Is your company thinking about using Selenium to implement test automation in a joint development and operations environment? If your company has already started using Selenium, have you experienced execution or integration challenges? The path to a well-oiled and successful Selenium test automation program comes down to using the right techniques and development standards that incorporate modularity and flexibility. Jin Reck describes how to design effective web test automation development, and shares common challenges and solutions when implementing an automated testing framework in the real world. Jin shows how to incorporate Selenium with continuous integration platforms and discusses techniques, adjustments, lessons learned, and best practices from successful implementations. Leave with a better understanding of how to design and employ Selenium to create robust and reliable automated tests that increase the efficiency and productivity of test teams and make for a capable and successful testing program.
5 Steps to Jump Start Your Test AutomationSauce Labs
With the acceleration of software creation and delivery, test activities must align to the new tempo. Developers need immediate feedback to be efficient and correct defects as those are introduced. The path to achieving this vision is to build a reliable and scalable continuous test solution.
All beginnings are hard. Having a well-defined plan outlining the approach for your organization to create test automation is key to ensure long term success. Join Diego Molina, Senior Software Engineer at Sauce Labs as he discusses:
The importance of setting up the team correctly from the start
Choosing the right Testing Framework for your organization
Identifying the right scenarios and workflows to test
Learning to avoid common pitfalls at the beginning of the transformation journey
This ppt is done by my dear classmate Sap, almost each ppt I have uploaded is copied from net and other sources.I hope this will b a little useful for students..
QA (Quality Assurance) is very critical at Atlogys. Our apps go through rigorous rounds of QA, Regression, Integration testing. We follow a deep rooted and detailed process for efficient QA testing so we may have less iterations and give error free releases. This is a presentation by our QA lead - Yamini Dobhal on the fundamentals and best practices of QA testing.
In this session you will learn:
Software Testing Tool – Overview
Advantage- Automation
Disadvantage - Automation
Grouping of Automation Tool
Functional Tool
Source Code Testing Tool
Performance Tool
Test Management Tool
Security Testing Tool
For more information: https://www.mindsmapped.com/courses/quality-assurance/qa-software-testing-training-for-beginners/
2. SOFTWARE DEVELOPMENT LIFECYCLES
(PHASES OF SOFTWARE PROJECT)
Development methodologies
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
Requirements
Deployment and
Maintenance
Implementation
(developing or coding)
Design
Testing (verification)
• Waterfall
3. CMC Limited
• Software Testing is the process used to help to identify the correctness, completeness, security,
and quality of developed computer software, matching the specification and execution in its
intended environment.
DEFINITION OF SOFTWARE TESTING
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
4. CMC Limited
• Software Testing is the process used to help to identify the correctness, completeness, security,
and quality of developed computer software, matching the specification and execution in its
intended environment.
DEFINITION OF SOFTWARE TESTING
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
5. TEST CYCLE
Software testing is maintain through a chain of cycle
• Requirements Analysis
• Design phase
• Test Planning
• Test Development
• Test Execution
• Test Reporting
• Retesting the Defects
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
6. INTRODUCTION TO TESTING
• Debugging and testing are not the same thing!
• Testing is a systematic attempt to break a program.
• Correct, bug-free programs by construction are the goal but until that is possible
(if ever!) we have testing.
• Testing is a process of executing a program with the intent of finding an error.
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
7. CMC Limited
TESTING OBJECTIVES
• Uncover as many as errors in the software as possible in a given timeline, and make sure get fixed
• Demonstrate a given software product matching its requirement specifications.
• Validate the quality of a software testing using the minimum cost and efforts.
• Generate high quality test cases, perform effective tests, and issue correct and helpful problem reports.
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
8. LIMITATIONS OF TESTING
• Programs take input in a variety of ways: mouse, keyboard,
• Must test valid and invalid inputs.
• There are an infinite amount of sequences of inputs to be tested.
• To test all possible inputs is impractical or Impossible
• To test all possible paths is impractical or impossible
• Too Many Possible User Environments
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
9. WHEN TO START / END TESTING
When to start
• In the early stage of testing life cycle it reduces the errors.
• The goal of Software Tester is to find bugs, find them as early as possible, and make sure being fixed.
When to end
• It is difficult to determine.
• There are common factors in deciding when to stop testing:
Deadlines (release deadlines, testing deadlines.)
Test cases completed with certain percentages passed
Test budget depleted
Coverage of code/functionality/requirements reaches a specified point
The rate at which Bugs can be found is too small
Beta or Alpha Testing period ends
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
11. Severity
Factor that shows how bad the defect is and the impact it has on the product
Priority
Based upon input from users regarding which defects are most important to them, and
be fixed first.
SEVERITY VS PRIORITY
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
12. SEVERITY LEVELS
• Critical
• Major / High
• Average / Medium
• Minor / low
• Cosmetic defects
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
13. SOFTWARE TESTING ACTIVITIES
- Test Planning
- a need for test schedule for a test process and its activities
- test requirements and items
- test strategy and supporting tools
- Test Design and Specification
- Conduct software design based on well-defined test generation methods.
- Specify test cases to achieve a targeted test coverage.
- Test Set up:
- Testing Tools and Environment Set-up
- Test Suite Set-up
- Test Operation and Execution
- Run test cases manually or automatically
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
14. SOFTWARE TESTING ACTIVITIES
- Test Result Analysis and Reporting
Report software testing results and conduct test result analysis
- Problem Reporting
Report program errors using a systematic solution.
- Test Management and Measurement
Manage software testing activities, control testing schedule, measure testing complexity and cost
- Test Automation
- Define and develop software test tools
- Adopt and use software test tools
- Write software test scripts and facility
- Test Configuration Management
- Manage and maintain different versions of software test suites, test environment and tools, and
documents for various product versions.
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
15. TEST DOCUMENTS
• Test plan
• Quality objectives, resource needs, schedules, assignments, methods, etc.
• Test cases
• Inputs and expected outputs.
• Bug reports
• E.g., the Bugzilla web-based bug tracker.
• Test tools and automation
• Metrics, statistics, and summaries
• Number of unresolved bugs, (time to repair a bug, etc.)
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
16. GOOD TEST PLANS
• Developed and Reviewed early.
• Clear, Complete and Specific
• Staff knows what to expect and when to expect it.
• Realistic quality levels for goals
• Includes time for planning
• Can be monitored and updated
• Includes user responsibilities
• Based on past experience
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
17. TEST CASES, SUITES, SCRIPTS AND SCENARIOS
Test Case
Is a set of conditions or variables under which a tester will determine if a requirement or use case upon
an application is partially or fully satisfied.
Test Script
A test script is a short program written in a programming language used to test part of the
functionality of a software system.
Test Suite
The most common term for a collection of test cases is a test suite.
Test Scenario
Scenario testing is a software testing activity. It uses scenario tests, or simply scenarios, which are
based on a hypothetical story to help a person think through a complex problem or system.
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
18. GOOD TEST CASES
• Have high probability of finding a new
defect.
• Repeatable and predictable.
• Traceable to requirements or design
documents
• Execution and tracking can be automated
• Do not mislead
• Feasible
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
Purpose to Find Defects
19. WHY AUTOMATION?
When to Automate?
-Stable Application
-Manual Efforts are high
-Regression comes frequently
-We have plenty of time for
testing
When not to Automate?
- Application changes frequently
- Testing time is not defined or agreed
- Budget does not allow us
Automation Tools
- QTP
- Cucumber
- Soap UI
- Selenium
- Jmeter
- LoadRunner
- SilkTest etc.
Benefits
- One Time effort
- Saves Time
- Saves Money
- Better Outputs
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
21. • Selenium 1.0 - Selenium RC or Remote Control
• support for several languages (Java, Javascript, Ruby, PHP, Python, Perl and C#)
• Selenium IDE (Integrated Development Environment)
• Selenium-Grid 1.0
SELENIUM’S TOOL SUITE
* Via appium, Selendroid,
ios-driver and WP driver.
WEB, NATIVE, AND HYBRID APPLICATIONS
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
22. 1. Selenium IDE (Integrated Development Environment)
• Is a prototyping tool for building test scripts
• A Firefox Add-on provides easy-to-use interface for recording user actions,
editing and running automated tests.
• Exports user actions as a reusable script in one of many programming
languages that can be later executed
• Can be downloaded from seleniumhq.org
SELENIUM IDE
Advantages:
• No programming skills required
• Easy record and playback
• Step by step debugger
• Play tests on any browser
• Export tests as WebDriver tests
• Extensible
Disadvantages:
• Based on SeleniumCore
• No code reuse
• No iterations and conditional statements
• No exception handling
• No error recovery
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
23. SELENIUM IDE
Disadvantages:
• Based on SeleniumCore
• No code reuse
• No iterations and conditional statements
• No exception handling
• No error recovery
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
24. SELENIUM ELEMENT LOCATORS
• 1. ID
• 2. Name
• 3. LinkText
• 4. TagName
• 5. Partial Link Text
• 6. CSS
• 7. xPath (Absolute and Relative)
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
25. • storeText ( locator, variableName )
• From getText ( locator ) command
• storeLocation (variableName)
• From getLocation() command
• assertText(locator, pattern)
from getText(locator)command
• assertLocation(pattern)
from getLocation() command
• verifyText
• waitForText
• verifyLocation
• waitForLocation
• 1. open (url)
• 2. click (locator)
• 3. type (locator, value)
• 4. select (locator, optionLocator)
SELENIUM COMMANDS
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
26. Practical Example with Presentation
Requirements:
Java JDK
IntelliJ IDE
Junit 4 – an unit testing framework
Selenium - tool for automatic testing
Apache Maven – for building the tests and creating the reports
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
27. ВИ БЛАГОДАРАМ ЗА ВНИМАНИЕТО
ПРАШАЊА? / QUESTIONS?
КРАЈ / THE END
THANK YOU FOR YOUR ATTENTION
Verification of Software Systems | Kiril Delovski | delovski.office@gmail.com
https://www.facebook.com/groups/SoftwareTestingCommunityMacedonia/