Posts

Software Testing Concepts - Keywords and Links

Accessibility Testing ,  Acceptance Tests , Acceptance Test Driven Development (ATDD) , Accuracy,  Actual Result , Adaptability Testing ,  Ad Hoc Testing , Agile Testing, ALM Tools, Alpha Testing, Audit, Audit Trail, Baseline Testing, Benchmark Testing, Beta Testing, Big Bang Testing, Black Box Testing, Bottom Up Testing, Boundary Testing, Boundary Value Analysis, Branch Coverage, Branch Testing, Breadth Testing, Bugs, Capability Maturity Model (CMM), Capacity Testing, Charter,  Cloud Testing , Code Complete, Code Coverage, Code Inspection, Code Walk-through, Compatibility Testing, Compliance Testing, Component Based Testing, Concurrency Testing, Configuration Testing, Conformance Testing,  Context Driven Testing , Conversion Testing, Cyclomatic Complexity, Data Driven Testing, Data-Flow Coverage, Debugging, Decision Table, Defects, Defects Detection, Defects Prediction Technique, Defects Prevention, Dependency Testing, Deployment Testing,  Depth Testing,  Design Specification, Documen

Dynamic Analysis - Tools for Improving Engineering Process

Dynamic Analysis Tools Dynamic analysis is the testing and evaluation of a program by executing data in real-time. The objective is to find errors in a program while it is running, rather than by repeatedly examining the code offline. Core activities involved in Dynamic analysis: Code coverage Hotspot analysis and Memory profiling Multi-threaded correctness Debugging Advantages: N/A Features of Dynamic Analysis tools that need to be considered before picking it: N/A Some Popular Open Source Dynamic Analysis Tools: Cobertura (Java, Code Coverage) EMMA (Java, Code Coverage) JCoverage (Java, Code Coverage) Valgrind (Hotspot analysis and Memory profiling) Eclipse TPTP (Memory profiling) List of other dynamic analysis tools - http://en.wikipedia.org/wiki/Dynamic_program_analysis#Examples_of_Tools http://en.wikipedia.org/wiki/List_of_performance_analysis_tools

Static Analysis - Tools for Improving Engineering Process

Static Analysis Tools Static program analysis is the analysis of computer software that is performed without actually executing programs built from that software (analysis performed on executing programs is known as dynamic analysis). In most cases the analysis is performed on some version of the source code and in the other cases some form of the object code. The term is usually applied to the analysis performed by an automated tool, with human analysis being called program understanding, program comprehension or code review. Core activities involved in Static analysis: N/A Advantages: If there are anti-patterns in your code, you can be warned about it. There are certain metrics (such as McCabe's Cyclomatic Complexity) that tell useful things about source code. You can also get great stuff like call-graphs, and class diagrams from static analysis. Those are wonderful if you are attacking a new code base Many classes of memory leaks

Build Automation - Tools for Improving Engineering Process

Build Tools Build automation involves scripting or automating the process of compiling computer source code into binary code.   These tools are particularly useful for continuous integration (CI) builds where frequent calls to the compile process are required and incremental build processing is needed. Core activities involved in build automation: Compiling source code into binary code Packaging of binary code Running of tests Deployment of binary code to test environments / production environment Creation of documents or release notes Advantages: Accelerate compile and link processing Eliminate redundant tasks Have history of build and releases in order to investigate issues Features of build tools that need to be considered before picking it: Frequent / Scheduled Builds Support for Source Code Management system Incremental Build Processing Reporting on build’s status Generation of release notes and other documentations Some Popular Ope

Continuous Integration (CI) - Tools for Improving Engineering Process

CI is one of the modern software development practices for applying quality controls in small pieces.  CI involves automatically building and testing an application at frequent intervals on a dedicated integration server.  Developers regularly commit small updates and are notified rapidly if their changes cause the build to fail. Core activities involved in CI: Maintaining a code repository Committing the code to the baseline everyday Automating the build process Deploying the build to test environment Making the build self-testing Reporting the build status to the team Advantages: Reduces the risk of integration issues appearing late in the project Improve communication between team members Reduce the time needed to prepare a release Most fundamental feature of CI tool is the automatic build cycle.  The CI tool, either at a scheduled time or whenever any changes are detected in the source code repository, fetches the source code latest version

Latest Software Testing Trends

Mobility Application Testing §          Over the last few years, the volume of smartphone usages has increased considerably.  There are plethora of mobile handsets which run million of applications embedded in it.  Some of the application today are using power of cloud to communicate with the ERP system Testing as a Service (TaaS) §          This model involves the on-demand test execution of well-defined suites of test material, generally on outsourced basis.  The execution can be performed either on client site or remotely from the outsourced providers test lab / facilities. Analytics / BI (Business Intelligence) Testing §          Identifying issues related to data inconsistency, data quality, data security, failures in the extract, transform and load (ETL) process, performance related issues, accuracy of business flows and fitness for use from an end user perspective. Developers Converting As Testers §          Tester needs to be strong in both technical skills as well as indus

Yes, Processor is a Bottleneck. What’s next?

A processor bottleneck occurs when one or more processes consume the majority of the processor time.  This forces threads that are ready to be executed to wait in a queue for processor time. We identify if processor is bottleneck by investigating the processor utilization (Processor \ % Processor Time or System \ % Processor Time) and threads waiting in queue (System \ Processor Queue Length).  Please see here for more information. Once we have found that there is a bottleneck in terms of processor, we need to proceed ahead with further analysis.  Following are few of the questions in general without in context of some specific application, which I think we need to find answers for them and act accordingly. 1.        Is processor bottleneck due to lack of physical memory in the system? A memory bottleneck can sometimes look like a processor or disk bottleneck.  If the system does not have enough physical memory to store the code and data that are needed, the processor spends subs