Testare Software
Software Testing – Flash Object Automation using Selenium
By admin | 1 comment
1If you work in web application testing, you probably know that Selenium is one of the best tool for automating web applications. Though it can be used to test various aspects of web application, sometime you need to find your way around when using Selenium, one such situation is testing flash component using Selenium. Developers use Flash to beautify their websites, but it makes test automation a challenging task because Selenium can not read or record any actions on flash objects.
There are two main issues that needs to be addressed while automating web applications involving flash objects -
- Verifying a certain value is set or it exists or not or in simple terms you need to ‘get’ certain properties of the object and compare it against your benchmarks
- Performing actions on an object or ’set’ certain values.
Integration Testing: Why? What? & How?
By admin
Introduction:
As we covered in various articles in the Testing series there are various levels of testing:
Unit Testing, Integration Testing, System Testing
Each level of testing builds on the previous level.
“Unit testing” focuses on testing a unit of the code.
“Integration testing” is the next level of testing. This ‘level of testing’ focuses on testing the integration of “units of code” or components.
How does Integration Testing fit into the Software Development Life Cycle?
Software Quality Management
By admin | 2 comments
2This article gives an overview of Software Quality Management and various processes that are a part of Software Quality Management. Software Quality is a highly overused term and it may mean different things to different people. You will learn What is Software Quality Management?, What does it take to Manage Software Quality?, Quality Planning, Quality Assurance, Quality Control, Importance of Documentation and What is Defect Tracking?
The definition of the ISO 8204 for quality:
“Totality of characteristics of an entity that bears on its ability to satisfy stated and implied needs.”
This means that the Software product delivered should be as per the requirements defined. We now examine a few more terms used in association with Software Quality.
Quality Planning:
In the Planning Process we determine the standards that are relevant for the Software Product, the Organization and the means to achieve them.
Life Cycle of Testing Process
By admin | 2 comments
2This article explains about Differant steps in Life Cycle of Testing Process. in Each phase of the development process will have a specific input and a specific output. Once the project is confirmed to start, the phases of the development of project can be divided into the following phases:
- Software requirements phase.
- Software Design
- Implementation
- Testing
- Maintenance
In the whole development process, testing consumes highest amount of time. But most of the developers oversee that and testing phase is generally neglected. As a consequence, erroneous software is released. The testing team should be involved right from the requirements stage itself.
The various phases involved in testing, with regard to the software development life cycle are:
1. Requirements stage
2. Test Plan
3. Test Design.
4. Design Reviews
5. Code Reviews
6. Test Cases preparation.
7. Test Execution
8. Test Reports.
9. Bugs Reporting
10. Reworking on patches.
11. Release to production.
Best Practices in Automated Testing
By admin | 3 comments
3This article talks about many interesting things like what’s the Case for Automated Testing, Why Automate the Testing Process?, Using Testing Effectively, Reducing Testing Costs, Replicating testing across different platforms, Greater Application Coverage, Results Reporting, Understanding the Testing Process, Typical Testing Steps, Identifying Tests Requiring Automation, Task Automation and Test Set-Up and Who Should Be Testing?.
The Case for Automated Testing
Today, rigorous application testing is a critical part of virtually all software development projects. As more organizations develop mission – critical systems to support their business activities, the need is greatly increased for testing methods that support business objectives. It is necessary to ensure that these systems are reliable, built according to specification and have the ability to support business processes. Many internal and external factors are forcing organizations to ensure a high level of software quality and reliability.
SQL Unit Testing Tools
By admin
http://spunit.sourceforge.net/
Description: SPUnit is an application of the popular xUnit framework concept to enable unit testing of SQL Server stored procedures. SPUnit is (loosely) based on the xUnit family of Unit Test Frameworks. It is intended for testing MS SQL Server stored procedures using actual stored procedures. The idea was to make it really painless to test the code in stored procedures, and facilitate test-first programming of stored procs. It is a port inspired by JUnit, a testing framework for Java, developed by Kent Beck and Erich Gamma, and also, CPPUnit — a port of JUnit — developed by Michael Feathers.
Requirement : Windows NT/2000
TSQLUnit
http://tsqlunit.sourceforge.net
Description: TSQLUnit is a framework to write tests for applications written in Transact-SQL. TSQLUnit is a framework to write tests for applications written in Transact-SQL. It follows the tradition of the “xUnit” framework that is available for almost all programming languages. TSQLUnit is open source, licensed under the LGPL license, which means that it can be used freely even in commercial programs subject to certain restrictions. See the cookbook for an introduction of how to use it.
Requirement: Python
utPLSQL
http://utplsql.sourceforge.net/
Description: utPLSQL is a unit testing framework for programmers using Oracle’s PL/SQL language.
Requirement: OS Independent
utPLSQL is a unit testing framework for programmers using Oracle’s PL/SQL language. Developed by Steven Feuerstein, author of many books on the subject, it allows the automated testing of packages, functions and procedures. For background on the project and the reasons why this sort of unit testing is a good idea, visit the utPLSQL site of the O’Reilly and Associates Oracle Resource Center.
Challenges in Testing Web Based Applications
By admin
In this tutorial you will learn about Challenges in Testing Web Based Applications Introduction, Why testing Web Applications is different? Factors effecting Testing of Web Applications, Why technology platforms affect testing? Challenges in Testing Web Based Web Applications, Summary.
Introduction:
Web based Applications are increasingly becoming more feature rich, important and also the most popular means for developing commercial systems. Most companies opt for developing web based software wherever possible. This helps in catering to large number of end users. The deployment of the apps (once the infrastructure is in place) is fairly easy.
The web based applications are powerful and have the ability to provide feature rich content to a wide audience spread across the globe at an economical cost.
Hence it is a daunting task to test these applications and with more and more features testing these apps is becoming even more complex.
In this article we will study the challenges faced when testing these applications
Why testing Web Applications is different?
Testing web applications is different because of many factors scenarios affecting the performance and user experience.
Web applications can typically cater to a large and a diverse audience. Web Applications can also be exposed to wide range of security threats. Web applications may open up illegal points of entry to the databases and other systems holding sensitive information.
To ensure that the web application works reliably and correctly under different situations these factors need to be accounted for and tested.
Hence a lot of effort needs to put in for Test Planning and Test Design.
Test Cases should be written covering the different scenarios not only of functional usage but also technical considerations such as Network speeds, Screen Resolution, etc.
For example an application may work fine on Broad Band internet users but may perform miserably for users with dial up internet connections.
Web Applications are known to give errors on slow networks, whereas they perform well on high speed connections.
Web pages don’t render correctly for certain situations but work okay with others.
Images may take longer to download for slower networks and the end user perception of the application may not be good.
Auditing Software Testing Process
By admin
Auditing Software Testing Process
In this tutorial you will learn about Auditing Software Testing Process – Introduction, Types of Testing Process Audits, Audit to verify compliance, Audit for process improvement/problem solving,
Audit for Root Cause Analysis, Internal Audits, External Audits, Why Audit Software Testing Process? How to Audit, What can be audited? and Summary.
Introduction:
To ensure transparency and reliability of the IT systems it may be necessary to audit the Software Development Processes including the most important aspect – Software Testing Process.
Auditing is an important activity in organizations. In the context of testing it helps us ensure that the Testing processes are followed as defined.
Types of Testing Process Audits
There can be various reasons to conduct Audits. The Audits may serve aim to achieve certain definite goals. Based on that we can classify them as follows:
Audit to verify compliance: In this type of auditing the prime motivation is to judge if the process complies with a standards. In these scenarios, the actual testing process is compared with the documented process. For example ISO Standards require us to define our Software testing process. The audit will try to verify if we actually conducted the testing as documented
Audit for process improvement/problem solving:
In this type of audit the motivation is to audit and trace the various steps in the process and try to weed out process problems. For instance it is observed that too many software defects escaped detection even though the testing process was apparently followed. So the audit is done as a preliminary step to collect facts and analyze them.
Audit for Root Cause Analysis
In this type of audit the motivation is to audit the testing process is to find a Root Cause of a specific problem. For example the customers discovered a huge problem with the software. So we retrace our testing steps to find out what went wrong in this specific case.
Internal Audits
Typically the internal audits are initiated from within the organizations
External Audits
External Audits are done by and initiated by external agencies
Why Audit Software Testing Process?
Auditing Test Process helps the management understand if the process is being followed as specified. Typically Testing audit may be done for one or more of the following factors:
• To ensure continued reliability and integrity of the process
• To verify compliance of standards (ISO, CMM, etc)
• To solve process related problems
• To find the root cause of a specific problem
• To detect or prevent Fraud
• To improve the Testing process
Auditing of the Testing process may also be done if the Software Product is a mission critical one such as used for Medical Life Support Systems
This is done to prevent any loop holes or bugs in the system
How to Audit
Typically the Audit of the Testing Process will include the following steps:
• reviewing the Testing process as documented in the Quality Manual
This helps the auditor understand the process as defined.
• Reviewing the deliverable documents at each step
• Document reviewed include
…………… Test Strategy
…………… Test Plans
…………… Test Cases
…………… Test Logs
…………… Defects Tracked
…………… Test Coverage Matrix
…………… any other relevant records
Each of the above document provides a certain level of traceability that the process was followed and the necessary steps were taken
• Interviewing the Project Team at various levels – PM, Coordinator, Tester
Interviewing the Project Team members gives an understanding of the thought process prevalent in those conducting the Testing Process.
This can provide valuable insights over an above what was actually documented
ISACA – ww.isaca.org provides guidelines and standards for Auditing Information Systems & Software Development Lifecycle
CISA stands for Certified Information Systems Auditor
Similarly independent agencies may verify the Test Processes and SDLC for ensuring compliance with FDA ( Food and Drug Administration)
What can be audited?
Testing for Agile Software Development
By admin
In this tutorial you will learn about Testing for Agile Software Development – Background, Understanding Agile Software Development, How is Testing approach different in an Agile Development Scenario? What to test? Typical bugs found when doing agile testing? Steps Taken to Effectively Test in Agile Development Methodology, Ensuring software test coverage and Summary
Background:
To understand the Testing Process in an Agile Development Methodology, it is important to understand the Agile Development paradigm.
Agile Development paradigm is not very new. Although the Agile Software Development Manifesto came into existence in February 2001, the concepts existed long before that and were expressed in different ways. Spiral Development Methodology is one such example.
Understanding Agile Software Development:
The Agile Software Development primarily focuses on an iterative method of development and delivery.
The developers and end users communicate closely and the software is built. A working piece of software is delivered in a short span of time and based on the feedback more features and capabilities are added.
The focus is on satisfying the customer by delivering working software quickly with minimum features and then improvising on it based on the feedback. The customer is thus closely involved in the Software Design and Development Process.
The delivery timelines are short and the new code is built on the previous one.
Despite this, high quality of the product cannot be comprised.
This creates a different set of challenges for Software Testing.
How is Testing approach different in an Agile Development Scenario?
The Testing Strategy and Approach in Agile Development could be very different from traditional bureaucratic methods. In fact it could vary with project needs and the project team.
In many scenarios, it may make sense to not have a separate testing team.
The above statement should be understood carefully. By not having a testing team we do not consider testing to be any less important. In fact testing can done more effectively in short turn around times, by people who know the system and its objectives very well.
For example in certain teams Business Analysts could be doing a few rounds of testing each time the software version is released. Business Analysts understand the Business Requirements of the Software and test it to verify if it meets the requirements.
Developers may test the software. They tend to understand the system better and can verify the test results in a better way. Testing for AGILE Software Development requires innovative thinking and the right mix of people should be chosen for doing the testing.
What to test?
Given the relatively short turn around times in this methodology it is important that the team is clear on what needs to be tested. Even though close interaction and innovation is advocated rather than processes, sufficient emphasis is given to the testing effort.
While each team may have its own group dynamics based on the context, each code has to be unit tested. The developers do the unit testing to ensure that the software unit is functioning correctly.
Since the development itself is iterative it is possible that the next release of code was built by modifying the previous one. Hence Regression Testing gains significant importance in these situations.
The team tests if the newly added functionality works correctly and that the previously released functionality still works as expected.
Test Automation also gains importance due to short delivery timelines. Test Automation may prove effective in ensuring that everything that needs to be tested was covered.
It is not necessary that costly tools be purchased to automate testing. Test Automation can be achieved in a relatively cost effective way by utilizing the various open source tools or by creating in-house scripts. These scripts can run one or more test cases to exercise a unit of code and verify the results or to test several modules.
This would vary with the complexity of the Project and the experience of the Team
Typical bugs found when doing agile testing?
Although nothing is typical about any Agile Development Project and each project may have its own set of complexities, by the very nature of the paradigm bugs may be introduced in the system when a piece of code is modified/enhanced/changed by one or more Developers.
Whenever a piece of code is changed it is possible that bugs have been introduced to it or previously working code is now broken. New bugs/defects can be introduced at every change or old bugs/defects may be reopened.
Steps Taken to Effectively Test in Agile Development Methodology:
As a wise person once said there is no substitute to hard work.
The only way one can effectively test is by ensuring Sufficient Test Coverage and Testing Effort Automated or otherwise.
The challenge could be lack of documentation, but the advantage could be close communication between team members thereby resulting in greater clarity of thought and understanding of the system.
Each Time Code is changed Regression Testing is done. Test Coverage is ensured by having Automated Scripts and the right mix/combination of People executing the Test Cases.
Exploratory Testing may also be encouraged. Exploratory Tests are not pre-designed or pre-defined. The Tests are designed and executed immediately. Similarly ad hoc testing may also be encouraged. Ad-hoc testing is done based on the tester’s experience and skills.
While automated Test Cases will ensure that the Test Cases scripted are executed as defined, the team may not have enough time to design and script all the test cases.
Ensuring software test coverage
To ensure that delivered product meets the end user’s requirements it is important that sufficient testing is done and all scenarios are tested.
Sufficient Test Coverage in an Agile Development Scenario may be tricky but with close cooperation and the right team dynamics it may not be impossible.
The objectives of the Project should be clear to the entire team. Many teams advocate Test Driven Development. At every stage the Software is tested if it meets the Requirements. Every Requirement is translated to a Test Case and Software is validated/ verified. While the Processes and Documentation are not stressed upon sufficient steps are taken to ensure that the software is delivered as per the User Expectations. This implies that each Software delivery should be tested thoroughly before it is released.
The timelines being short requires that the person testing the software has sufficient knowledge about the system and its objectives
Summary:
In this article we studied Software Testing Methods and its challenges for Agile Software Development.
More details about Agile Software Development Concepts can be found at
http://agilemanifesto.org/principles.html
Software Testing and SCRUM
By admin
If you’re a professional software tester, or work in quality assurance, I consider you to be (like me) a “conventional software tester.” Increasingly, conventional software testers are finding themselves on teams using the Scrum development process. For testers unfamiliar with iterative lifecycles, this can be a real challenge. Having been on a variety of projects using Scrum as a conventional software tester, I’ll share three stories that describe different approaches for testers.
What Is Scrum?
According to the Scrum web site, “Scrum is an agile, lightweight process that can be used to manage and control software and product development using iterative, incremental practices.” The best place to start learning about Scrum is the About page on the Scrum web site. It is a good idea to learn as much about Scrum as possible as a tester, particularly the principles and theory behind it. To understand the terminology in this article, I’ll summarize some aspects of Scrum.
Scrum is a software management process that uses an iterative lifecycle and that focuses on communication, particularly feedback loops. Each iteration, called a Sprint, lasts about four weeks. A Sprint is a block of time in which development of software is completed. Ideally, a complete vertical slice of the application is delivered at the end of each Sprint. When each “slice” is put together, you have the complete product. A Sprint is a longer feedback loop in which the software developed in the last iteration is demonstrated to project sponsors and end users.
Short feedback loops also occur daily. These daily Scrum meetings last for 15 minutes, during which team members describe what they’re working on and raise issues they might be encountering. The Scrum Master (the person who manages the administration of the project) runs the Scrum meetings.
Work to be done over the life of a project (a project contains several Sprints) is summed up in a Product Backlog. The Product Backlog contains a list of features needed for the project; this is the big picture for the project. Each Sprint also has a Sprint Backlog containing the tasks to meet a certain number of features in the Product Backlog. This describes the work for a particular Sprint. These documents are often written at a high level. Details can be filled in depending on practices of the team. How to execute tasks to meet the goals of the project is left to the team in Scrum, so it’s common to see Scrum teams using Extreme Programming or other methodologies within Scrum.
For the tester, the most important things to note about Scrum are its iterative lifecycle and frequent communication. Both can require some adjustment on the part of the tester, who can be relied on to do all of the following:
* Test within each iteration, rather than at the end of a development lifecycle
* Decide what to test when a product is still unfinished
* Collaborate with team members rather than working in isolation
* Participate in daily status meetings that are a maximum of 15 minutes long
* Seek product information individually through testing, and work with other team members to figure out what to test, rather than testing from requirements documents

software-testing.ro
Software Testers United
Sa socializam
Comentarii recente